Intro. to Parsing
New 2.01 Features
Expression evaluator (freeware)
XIDEK interpreter kit (freeware)
AnaGram Parser Generator: Special Features
These lists cover only a few of the capabilities of AnaGram, so
Parsifal Software if you need more specific information.
- Character set notation
enables efficient use of Backus-Naur Form
right down to the
character level, so separate lexical scanners are usually unnecessary.
- Symbolic linkage between grammar rules
and semantic actions allows you
to use ordinary variable names to refer to token values in your semantic
actions. No $1, $2, $3... symbols which are easily confused.
- Provision for C or C++ type casts, including even template classes,
to specify data types for tokens
allows AnaGram to create your parser stack automatically.
wrapper statement allows C++ objects to be correctly
passed on the parser stack.
- Keyword notation allows easy
incorporation of reserved words in a grammar.
- Automatic white space and comment suppression can be completely
configured by the user.
- Short form notation for optional or required choices and repetition.
- The entire status of a parser is encapsulated in a single
structure called the parser control block, or pcb. This
makes recursive parsers possible, and it is even
possible to have multiple, simultaneously active instances of a
single parser. It is also possible to have several different parsers
- Semantically determined productions
provide a mechanism to allow semantic as well as syntactic control over parsing decisions.
- Optional error token or automatic resynchronization after syntax errors.
- Parsers can be "event driven", i.e., can function like callback routines.
- Generation of enum statement for unambiguous token identification in supporting code.
- Conflict resolution options include operator precedence declarations.
- "reentrant parser" switch and "extend pcb" statement
support thread-safe parsers.
- Automatic context tracking.
- Automatic line and column number tracking.
- Automatic syntax error diagnoses.
- Coverage analysis to help determine thoroughness of testing.
- The Grammar Trace, a completely
interactive parser, allows you to
step through any portion of your grammar at any level, inspect the
parser stack at any point, and see precisely how your parser
will interpret any input. Grammar Trace now accepts input characters from
the keyboard too.
- File Trace parses a
test file in accordance with a grammar, under complete keyboard
control. Check a grammar against live test files before writing a
line of traditional code.
- Special tools for tracking down
conflicts in a grammar, such as:
- The Conflict Trace, a pre-built Grammar
Trace, can show a
sequence of input tokens that illustrates the conflict.
- Rule and Token Derivation windows show exactly how a conflict
derives from the rules in a grammar.
- Extensive online
tables show how all the pieces of a grammar interact. Pop-up windows
provide further information when you right-click on a table line.
- Synchronization of rules and productions in tables and traces
with your syntax file window so you can see how they relate to your
- Nearly four hundred context sensitive, cross-linked help screens
- and you can have as many as you like present on-screen together!
- Colors, fonts and font sizes under your control so you can view
information the way you want to see it.