|
Generic Interpreter 1.3 Private API |
|||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||
java.lang.Objectgi.Lexicon
gi.Grammar
gi.LR0_Grammar
gi.LR1_Grammar
public class LR1_Grammar
This class implements an LR(1) parser around a Grammar. The parser adapts to changes in the underlying Grammar. Semantics in a phrase are evaluated during a bottom-up parse, from left to right after all subtrees rooted in the phrase have been constructed. Attributes throughout the phrase are available during evaluation. LR(1) parsing considers context-specific lookahead terminals to more accurately choose between applicable phrases. LR(1) parsing is the default method used for a Grammar around which no parser has been explicitly constructed, and is the recommended method.
| Nested Class Summary | |
|---|---|
(package private) static class |
LR1_Grammar.Context
This class implements an LR(1) . |
| Nested classes/interfaces inherited from class gi.LR0_Grammar |
|---|
LR0_Grammar.Set<E extends LR0_Grammar.Context> |
| Nested classes/interfaces inherited from class gi.Grammar |
|---|
Grammar.ParseTree, Grammar.Production, Grammar.Semantics |
| Nested classes/interfaces inherited from class gi.Lexicon |
|---|
Lexicon.Alphabet, Lexicon.Concatenation, Lexicon.Exception, Lexicon.Expression, Lexicon.Match, Lexicon.NonMatch, Lexicon.PosixClass, Lexicon.Range, Lexicon.Repetition, Lexicon.Singleton, Lexicon.UnicodeCategory, Lexicon.Union |
| Field Summary |
|---|
| Fields inherited from class gi.LR0_Grammar |
|---|
S$ |
| Fields inherited from class gi.Grammar |
|---|
CONFLICT, FIRST_FOLLOW, P, PARSE_TREE, S, SYNTAX |
| Fields inherited from class gi.Lexicon |
|---|
$, debug, LEXICAL, TERMINALS, VERBOSE |
| Constructor Summary | |
|---|---|
protected |
LR1_Grammar()
Constructs an LR(1) parser around a new empty Grammar. |
protected |
LR1_Grammar(Grammar G)
Constructs an LR(1) parser around an existing Grammar. |
| Method Summary | |
|---|---|
(package private) LR0_Grammar.Set<LR0_Grammar.Context> |
closure(LR0_Grammar.Set<LR0_Grammar.Context> C)
Computes the reflexive transitive closure of a Set of LR(1) Contexts under empty transition. |
(package private) Lexicon.Set<Object> |
expected(LR0_Grammar.Set<LR0_Grammar.Context> C)
Computes the terminals expected in a Set of LR(1) Contexts. |
(package private) LR0_Grammar.Set<LR0_Grammar.Context> |
initial()
Computes the initial state of the LR(1) DFA. |
(package private) Grammar.Production |
parse(LR0_Grammar.Set<LR0_Grammar.Context> C,
Object a)
Computes the Production to use in a reverse rightmost derivation. |
String |
toString()
Returns the string representation of this parser, specifically "LR(1)". |
(package private) LR0_Grammar.Set<LR0_Grammar.Context> |
transition(LR0_Grammar.Set<LR0_Grammar.Context> C,
Object X)
Computes a transition from a Set of LR(1) Contexts on a symbol. |
| Methods inherited from class gi.LR0_Grammar |
|---|
interpret |
| Methods inherited from class gi.Grammar |
|---|
first, first, first, follow, grab, interpret, nonterminal, put, put, terminal |
| Methods inherited from class gi.Lexicon |
|---|
expression, interpret, interpret, interpret, interpret, interpret, interpret, put, word |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
protected LR1_Grammar()
Constructs an LR(1) parser around a new empty Grammar.
protected LR1_Grammar(Grammar G)
Constructs an LR(1) parser around an existing Grammar.
G - the Grammar around which the parser is constructed.| Method Detail |
|---|
LR0_Grammar.Set<LR0_Grammar.Context> transition(LR0_Grammar.Set<LR0_Grammar.Context> C,
Object X)
Computes a transition from a Set of LR(1) Contexts on a symbol.
transition in class LR0_GrammarC - the Set of LR(1) Contexts from which the transition is made.X - the symbol on which the transition is made.
Set of LR(1) Contexts to which the transition is made.LR0_Grammar.Set<LR0_Grammar.Context> closure(LR0_Grammar.Set<LR0_Grammar.Context> C)
Computes the reflexive transitive closure of a Set of LR(1) Contexts under empty transition.
closure in class LR0_GrammarC - the Set of LR(1) Contexts whose reflexive transitive closure is computed under empty transition.
C under empty transition.LR0_Grammar.Set<LR0_Grammar.Context> initial()
Computes the initial state of the LR(1) DFA.
initial in class LR0_Grammar
Grammar.Production parse(LR0_Grammar.Set<LR0_Grammar.Context> C,
Object a)
Computes the Production to use in a reverse rightmost derivation.
parse in class LR0_GrammarC - the Set of LR(1) Contexts.a - the lookahead terminal.
Production underlying an applicable reduce Context in C; returns null if none.Lexicon.Set<Object> expected(LR0_Grammar.Set<LR0_Grammar.Context> C)
Computes the terminals expected in a Set of LR(1) Contexts.
expected in class LR0_GrammarC - the Set of LR(1) Contexts.
Context in C.public String toString()
Returns the string representation of this parser, specifically "LR(1)".
toString in class LR0_Grammar
|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||