We pull file names out of the clang infrastructure to match where
classes are defined. We use the file name to pull comments and find
and process Trick header comments. Up to now clang gave us the realpath
of files and when we looked up comments we already had the realpath and
everything worked. In clang 3.6 in some places we are not getting the
realpath anymore which confuses ICG. Added code to get the realpath of
any file name we use throughout the code.
refs #167
I want Trick to parse and understand ODE header files. The ODE header files
include some typedef constructs ICG was skipping. Added code to handle the
typedefs we did not handle before. Also made a small change the way
TRICK_ICG_EXCLDUE and TRICK_EXCLUDE are used so that they support excluding
individual files as well as directories.
Wrote a python routine called get_value_by_ref_name that takes
a variable name string as an argument. The string is passed to
ref_attributes to find the address and returns a REF2 structure. The REF2
structure is passed to ref_to_value and the type and value of the variable
is returned in a structure. We call vval_<type> to extract the raw value
from the structure and return that to python space.
Made a couple of other bug fixes in the FieldVisior and cpp input file
example found while investigating this issue.
refs #123
Added new doxygen style tags for truning on/off Trick attributes processing,
comment processing, and library dependencies. Here are the tags we recognize
(@|\)trick_parse(everything|attributes|dependencies_only)
(@|\)trick_exclude_typename(class_name)
(@|\)trick_link_dependency(link_name)
refs #114
Found that on the Mac ICG was ignoring all of header files comments in ${TRICK_HOME}/include because it had the relative directory "include" listed as a system path. Comments were only processed if it wasn't in a system directory. Changed the check to use our function that checks to see if a header is in user or Trick code, basically the same check, but it only uses full paths and doesn't get confused with "include".
refs #63
Found that my check for embedded classes was also catching some typedef structures.
This was causing some io_src code not to be generated. Changed the test so that
we can differentiate between embedded classes and the typedefs.
This change fixes#10 and fixes#23.