A node in an XML file generated by gccxml that is meant to be stored
into a shared collection for later processing, i.e. generating a wrapper
or an anchored declaration.
When a_described is a valid class name (i.e. "CLASS_NAME_01") a_description is added into class_descriptions; when a_described is a valid class name with a feature name with a dot in the middle (like "ANOTHER_CLASS.my_feature_12_foo"); adds
a_description is added into feature_descriptions in the latter.
an_id without the type qualifier used by GccXml to mark the
identification labels.
"const", "reference" and "volatile" qualifier are represented in a
CvQualifiedType node adding 'c', 'r' and 'v' to the identifies. i.e.
if "int" has id "_422" a "const int foo" argument type will be of
type CvQualifiedType with it "_422c". The same rule is used - as far
as I know - also for reference and volatile types.
Result is identical to an_id if it does not end with 'c', 'r' and
'v'; otherwise it is a copy of an_id with the last character ('c',
'r' or 'v') removed.
is "-- Th file has been automatically created combining the output file
-- of wrappers_generator #(1)
-- with the differences patches found into #(2)
-- Any change will be lost by the next execution of the tool.
"
Leading and
trailing spaces are removed. Lines starting with "--" are ignored
as comments. Class descriptions are in the form "CLASS_NAME
Description text", feature descriptions are "CLASS_NAME.feature
Description text".
When a_described is a valid class name (i.e. "CLASS_NAME_01") a_description is added into class_descriptions; when a_described is a valid class name with a feature name with a dot in the middle (like "ANOTHER_CLASS.my_feature_12_foo"); adds
a_description is added into feature_descriptions in the latter.
Leading and trailing spaces are removed from a_described; comments -
starting with "--" are skipped; See read_comments for further
informations.
The outer dictionary is indexed by
classname, the inner one by feature name. So to get the description of
feature foo in class BAR you shall invoke
feature_descriptions.at("BAR").at("foo")
Translate a_name content into a proper feature name for the
Gnu-Eiffel language.
"CamelCase" is translated into "camel_case",
"ENOO" is translated into "enoo". Eventual underscores in front of
a_name are removed: "__foo" becomes "foo"; symbols starting with
underscores folloed by a number are prefixed with "a_"; reserved
language names and names of features of class ANY are escaped.
TODO: handle in a fairly
a_name content translated into a proper argument placeholder for
the Gnu-Eiffel language.
"CamelCase" is translated into
"a_camel_case", "ENOO" is translated into "an_enoo". Eventual
underscores in front of a_name are removed: "__foo" becomes
"a_foo". See also eiffel_feature.
A valid, adapted identifier for an Eiffel feature labelled
a_name.
Can be either a_name itself or a new string
containing an adapatation. Reserved words and those of
features belonging to ANY are "escaped", appending a_suffix.
The following "static" definition of the features of ANY
somehow unacceptable in a perfect world. Yet computing it each
and every time would enlarge the memory usage of the program
quite a lot, not counting the runtime requirements. We will do
it when we will cache compilation results.
The following "static" definition of the features of ANY
somehow unacceptable in a perfect world. Yet computing it each
and every time would enlarge the memory usage of the program
quite a lot, not counting the runtime requirements. We will do
it when we will cache compilation results.
This exception occurs when Void is passed as the expression
to inspect ("inspect on STRING only).
This exception also occurs when the inspected value selects no branch (when the keyword "else"
not used, one "when" branch _must_ be selected). Some value which is not one of the inspect
constants, if there is no Else_part