antlr
Interface GrammarAnalyzer

All Known Subinterfaces:
LLkGrammarAnalyzer
All Known Implementing Classes:
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?".


Field Summary
static int LOOKAHEAD_DEPTH_INIT
           
static int NONDETERMINISTIC
          The epsilon token type is an imaginary type used during analysis.
 

Field Detail

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.

See Also:
Constant Field Values

LOOKAHEAD_DEPTH_INIT

public static final int LOOKAHEAD_DEPTH_INIT
See Also:
Constant Field Values


Copyright 1999-2003 Oliver Zeigermann. All Rights Reserved.