This description is VERY incomplete.
This module uses Data::Flow interface, thus one uses it in
the following fashion:
$c = new C::Scan(attr1 => $value1, attr2 => $value2);
$c->set( attr3 => $value3 );
$value4 = $c->get('attr4');
Attributes are depending on some other attributes. The
only required attribute, i.e., the attribute which should
be set, is filename, which denotes which file to parse.
All other attributes are either optional, or would be
calculated basing on values of required and optional
attributes.
Output attributes
includes Value: reference to a list of included
files.
defines_args Value: reference to hash of macros with
arguments. The values are references to an
array of length 2, the first element is a
reference to the list of arguments, the
second one being the expansion. Newlines
are not unescaped, thus
#define C(x,y) E\
F
will finish with ("C" => [ ["x", "y"],
"E\nF"]).
defines_no_args
Value: reference to hash of macros without
arguments. Newlines are not escaped, thus
#define A B
will finish with ("A" => "B").
fdecls Value: reference to list of declarations of
functions.
inlines Value: reference to list of definitions of
functions.
parsed_fdecls Value: reference to list of parsed
declarations of functions.
A parsed declaration is a reference to a
list of (rt, nm, args, ft, mod). Here rt is
return type of a function, nm is the name,
args is the list of arguments, ft is the
full text of the declaration, and mod is the
modifier (which is always undef).
Each entry in the list args is of the same
form (ty, nm, args, ft, mod), here ty is the
type of an argument, nm is the name (a
generated one if missing in the
declaration), args is undef, and mod is the
string of array modifiers.
typedef_hash Value: a reference to a hash which contains
known typedefs as keys.
typedef_texts Value: a reference to a list which contains
known expansions of typedefs.
typedefs_maybe
Value: a reference to a list of typedefed
names. (Syncronized with typedef_texts).
vdecls Value: a reference to a list of extern
variable declarations.