       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.
