1
0
mirror of https://github.com/samba-team/samba.git synced 2025-06-23 11:17:06 +03:00
Tim Potter 2b6aeecad7 r4773: Handle arrays of scalar types as function arguments.
Add hf for function return value.

Rename struct field members to be named after the structure name
and element name rather than element name and element type.

Remember which structure or function we are processing and use it
to generate hf fields according to the naming scheme above.
(This used to be commit fd14622d132c3f2dfd837ea7beccd0fc11a6bf3e)
2007-10-10 13:08:53 -05:00
..
2007-10-10 12:57:51 -05:00
2007-10-10 13:08:26 -05:00
2007-10-10 12:57:51 -05:00
2007-10-10 13:08:35 -05:00
2007-10-10 13:05:44 -05:00
2007-10-10 12:59:27 -05:00

This directory contains the source code of the pidl (Perl IDL) 
compiler. 

pidl.pl is the main file of pidl.

Pidl works by building a parse tree from a .pidl file (a simple 
dump of it's internal parse tree) or a .idl file 
(a file format mostly like the IDL file format midl uses). 
The IDL file parser is in idl.yp (a yacc file converted to 
perl code by yapp)

After a parse tree is present, pidl will call one of it's backends 
(which one depends on the options given on the command-line). Here is 
a list of current backends:

client.pm - Generates client call functions in C
dump.pm - Converts the parse tree back to an IDL file
eparser.pm - Generates a parser for the ethereal network sniffer
header.pm - Generates a header file with structures
parser.pm - Generates pull/push functions for parsing 
server.pm - Generates server side implementation in C
template.pm - Generates stubs in C for server implementation
validator.pm  - Validates the parse tree
proxy.pm - Generates proxy object for DCOM (client-side)
stub.pm - Generates stub call handler for DCOM (server-side)

Other files in this directory are:
tables.pl - Generates a table of available interfaces from a list of IDL files 
util.pm - Misc utility functions used by *.pm and pidl.pl

Tips for hacking on pidl:
 - Look at the pidl's parse tree by using the --keep option and looking 
   at the generated .pidl file. 
 - The various backends have a lot in common, if you don't understand how one 
   implements something, look at the others
 - See pidl(1) and the documentation on midl
 - See 'info bison' and yapp(1) for information on the file format of idl.yp