Static Public Attributes

antlr.GrammarAnalyzer Interface Reference

Inheritance diagram for antlr.GrammarAnalyzer:
antlr.LLkGrammarAnalyzer antlr.LLkAnalyzer

List of all members.

Static Public Attributes

static final int NONDETERMINISTIC = Integer.MAX_VALUE
static final int LOOKAHEAD_DEPTH_INIT = -1

Detailed Description

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?".


Member Data Documentation

final int antlr.GrammarAnalyzer.NONDETERMINISTIC = Integer.MAX_VALUE [static]

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.

Referenced by antlr.LLkAnalyzer.deterministic(), and antlr.LLkAnalyzer.deterministicImpliedPath().


The documentation for this interface was generated from the following file:
 All Classes Namespaces Files Functions Variables Enumerations Properties