Lexical Analyzer:
Symbol Table - Holds the symbols accepted by the lexical analyzer or parser.
Each symbol may be a terminal or a non-terminal. Terminal symbols are listed first in the table ahead of non-terminals.
Attributes:
- Count - Number of symbols in the table
Child items:
Symbol - Individual symbol accepted by the lexical analyzer or parser.
Attributes:
- Index - Unique symbol identifier in the symbol table
- Name - Name assigned to symbol in the grammar
- Kind - Indicates the type of symbols. (0- nonterminal, 1 - terminal, other types are self evident)
Char Sets - Groups of characters that can trigger one (or more) DFA state transitions.
Attributes:
- Index - Unique identifier for a given character set
- Count - Number of characters in a given character set
Child items:
Char - Specifies the individual character (no array needed)
Attributes:
- Unicode Index - Character code in Unicode (ASCII)
DFA Table - Holds all the DFA states that make up the lexical analyzer.
Attributes:
1. Count - Number of DFA states
2. Initial state
Child Items:
1. DFA State
DFA State - Enumerates each DFA state and the edges that transition from that state.
Attributes:
- Index - Unique identifier (order in the DFA table)
- EdgeCount - Number of edges from the current state to other DFA states
- AcceptSymbol - Is this an accept state?
- -1=false
- Otherwise, it gives the number of the symbol index the state accepts
Child items:
DFA Edge - Transition from one DFA state to another
Attributes:
- Char Set Index - Points to the character set whose input causes the transition. Thus, a single transition may be cause by multiple characters.
- Target - Points to the destination state for the transition