- Function: int IDL_parse_filename (const char *NAME, const char *CPP_ARGS,
IDL_msg_callback CALLBACK, IDL_tree *TREE, IDL_ns *NS, unsigned long FLAGS,
int MAX_MESSAGE_LEVEL)
Parse an file containing an IDL definition into a parse tree. Returns
IDL_SUCCESS if successful, or IDL_ERROR if there was a parse error. If
-1 is returned, errno will be set accordingly. Usually, if IDL_ERROR is
returned, all one needs to do is exit with a non-zero status, since
libIDL will probably have made the reason for failure explictly known.
- NAME: required, specifies the filename to be parsed.
- CPP_ARGS: optional, if non-NULL, specifies extra arguments to pass to
the C preprocessor. The most common type of string would be in the form
of -I<dir> to include additional directories for file inclusion search,
or defines in the form of -D<define>=<value>.
- CALLBACK: optional, if non-NULL, this function will be called when a
warning or error is generated (see Data Types). If not given,
warnings and errors will be sent to stderr. All errors and warning,
including callbacks, are subject to MAX_MESSAGE_LEVEL as described
below.
- TREE: optional, if non-NULL, points to an IDL_tree * to return the
generated tree which must be freed with IDL_tree_free. If NULL, the
tree is freed and not returned.
- NS: optional, if non-NULL, points to an IDL_ns * to return the namespace
tree which must be freed with IDL_ns_free. If NULL, the tree is freed
and not returned. If TREE is NULL, then NS must also be NULL, since the
namespace is created as the AST is generated.
- FLAGS: optional, specifies extra flags for parsing or 0. The various
flags are described here.
- General Parse Flags
- IDLF_NO_EVAL_CONST: instructs the parser not to evaluate constant expressions.
- IDLF_COMBINE_REOPENED_MODULES: instructs the parser to combine modules
defined later in the IDL code in the first module node in the tree.
- IDLF_PREFIX_FILENAME: instructs the parser to prefix the filename to the
namespace.
- IDLF_IGNORE_FORWARDS: instructs the parser to not try to resolve and
print messages for unresovled forward declarations.
- IDLF_PEDANTIC: instructs the parser to display stricter errors and
warnings.
- IDLF_INHIBIT_TAG_ONLY: only tag inhibited nodes, do not remove them.
Use IDL_tree_remove_inhibits to remove them at a later time.
- IDLF_INHIBIT_INCLUDES: causes libIDL to automatically inhibit IDL trees
in included files.
- Syntax Extension Flags
- IDLF_TYPECODES: understand the ‘TypeCode’ keyword extension.
- IDLF_XPIDL: enable XPIDL syntax.
- IDLF_PROPERTIES: enable support for node properties.
- IDLF_CODEFRAGS: enable support for embedded code fragments.
- MAX_MESSAGE_LEVEL:
This specifies the maximum message level to display. Possible values
are -1 for no messages, IDL_ERROR for errors only, or IDL_WARNING1,
IDL_WARNING2 and IDL_WARNING3. A typical value is IDL_WARNING1, which
will limit verbosity. IDL_WARNINGMAX is defined as the value in which
all messages will be displayed.
- Function: void IDL_tree_walk_in_order (IDL_tree ROOT, IDL_tree_func
FUNC, gpointer DATA)
Walks an IDL_tree, calling FUNC for every node. If the FUNC returns
TRUE for a particular node, that particular node will also be traversed,
if FALSE is returned, that particular node will be skipped, in the
assumption that the function has taken care of it.
- ROOT: required, specifies the IDL_tree to traverse.
- FUNC: required, specifies the callback function (see Data Types).
- DATA: optional, specifies the callback data.
- Function: void IDL_tree_free (IDL_tree TREE)
Frees the memory associated with TREE.
- Function: void IDL_ns_free (IDL_ns NS)
Frees the memory associated with NS.