3.4 Analyzer Internals
The Semantic analyzer is a complex engine which has been broken
down across several modules. When the Semantic analyzer fails,
start with semantic-analyze-debug-assist, then dive into some
of these files.
- semantic-analyze.el
- The core analyzer for defining the current context. The
current context is an object that contains references to aspects of
the local context including the current prefix, and a tag list
defining what the prefix means.
- semantic-analyze-complete.el
- Provides
semantic-analyze-possible-completions.
- semantic-analyze-debug.el
- The analyzer debugger. Useful when attempting to get everything
configured.
- semantic-analyze-fcn.el
- Various support functions needed by the analyzer.
- semantic-ctxt.el
- Local context parser. Contains overloadable functions used to move
around through different scopes, get local variables, and collect the
current prefix used when doing completion.
- semantic-scope.el
- Calculate scope for a location in a buffer. The scope includes
local variables, and tag lists in scope for various reasons, such as
C++ using statements.
- semanticdb-typecache.el
- The typecache is part of
semanticdb, but is used primarily by
the analyzer to look up datatypes and complex names. The typecache is
bound across source files and builds a master lookup table for data
type names.
- semantic-ia.el
- Interactive Analyzer functions. Simple routines that do completion or
lookups based on the results from the Analyzer. These routines are
meant as examples for application writers, but are quite useful as
they are.
- semantic-ia-sb.el
- Speedbar support for the analyzer, displaying context info, and
completion lists.