antlr
Interface GrammarAnalyzer
- LLkGrammarAnalyzer
- LLkAnalyzer
public interface GrammarAnalyzer
A GrammarAnalyzer computes lookahead from Grammar (which contains
a grammar symbol table) and can then answer questions about the
grammar.
To access the RuleBlock for a rule name, the grammar symbol table
is consulted.
There should be no distinction between static & dynamic analysis.
In other words, some of the easy analysis can be done statically
and then the part that is hard statically can be deferred to
parse-time. Interestingly, computing LL(k) for k>1 lookahead
statically is O(|T|^k) where T is the grammar vocabulary, but,
is O(k) at run-time (ignoring the large constant associated with
the size of the grammar). In English, the difference can be
described as "find the set of all possible k-sequences of input"
versus "does this specific k-sequence match?".
LOOKAHEAD_DEPTH_INIT
public static final int LOOKAHEAD_DEPTH_INIT
- -1
NONDETERMINISTIC
public static final int NONDETERMINISTIC
The epsilon token type is an imaginary type used
during analysis. It indicates an incomplete look() computation.
Must be kept consistent with Token constants to be between
MIN_USER_TYPE and INVALID_TYPE.