Parsifal Software


Trial Copy

Intro. to Parsing

Users Say...

Special Features

Notation Summary

New 2.01 Features

File Trace

Grammar Trace



Expression evaluator (freeware)

XIDEK interpreter kit (freeware)

Lex/Yacc Comparison

If-else ambiguity

Contact Parsifal


AnaGram Parser Generator: Special Features

These lists cover only a few of the capabilities of AnaGram, so please contact Parsifal Software if you need more specific information.

Features that simplify the writing and maintenance of parsers

  • 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 active simultaneously.
  • 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.

Many Options for Configuring Parsers

  • 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.

Visual, interactive parsing and debugging

  • 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 grammar.
  • 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.

AnaGram parser generator
Copyright ©1993-2002, Parsifal Software.
All Rights Reserved.

Parsifal Software
Links to: Home page | Trial Copy | Syntax Directed Parsing | Glossary