Interface GrammarAnalyzer

All Known Subinterfaces:
All Known Implementing Classes:

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
          The epsilon token type is an imaginary type used during analysis.

Field Detail


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


public static final int LOOKAHEAD_DEPTH_INIT
See Also:
Constant Field Values

Copyright 1999-2003 Oliver Zeigermann. All Rights Reserved.