This section uses two tables to describe how the X-Ref subsystems used by SNiFF+ work.
RAM-based and DB-driven cross reference management is contrasted, first in the context of C/C++, then of Java/all other non-C/C++ languages, respectively.
Note that the tables do not describe user interaction, each column simply outlines what SNiFF+ does at each stage. Each table is followed by a summary of the immediate implications.
RAM-based versus DB-driven cross referencing in C/C++
The following table is divided into three rows, each representing a stage in the cross reference management cycle. These stages are
Summary
How parsing is triggered is described under Extracting symbol information. The table
includes only X-Ref related information.
While the first step in the X-Ref process takes place during parsing, the following steps
can be triggered either on demand immediately after project setup, or using the menu
command: Project > Update Cross Ref Info. If the procedure is not invoked by the user,
it is automatically started when the first Referred-By query is issued after a (re-)parse.
Note that, if source files have been modified, or if structural changes have been made to
projects, both the "Generating" and "Querying" stages are triggered to incrementally
update X-Ref information when you issue your first subsequent Referred-By query.
Stage
RAM-Based
DB-Driven
Parsing
*.lex
files), one for each source file parsed. These files contain fuzzy descriptions of what is referenced where, and are saved to disk to be used as input for later generation of cross reference information.
Generating
lex
files in the context of the symbol table.
lex
files in the context of the symbol table.
Querying
ref
files to memory.
Stage | RAM-Based |
DB-Driven
Parsing and Generating
|
*.ref
files). |
|
Querying
|
ref
files to memory. |
| |