$c = new C::Scan 'filename' => $filename, 'filename_filter' => $filter, 'add_cppflags' => $addflags; $c->set('includeDirs' => [$Config::Config{shrpdir}]); my $fdec = $c->get('parsed_fdecls');
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.
#define C(x,y) E\ Fwill finish with ("C" => [ ["x", "y"], "E\nF"]).
#define A Bwill finish with ("A" => "B").
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.