|
Generic Interpreter 1.2 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
This class implements an LR(0) 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(0) parsing is not very practical, since it ignores lookahead information and is easily confused, but it forms a basis around which SLR(1) and LR(1) parsers are constructed.
| Nested Class Summary | |
(package private) static class |
LR0_Grammar.Context
This class implements an LR(0) . |
(package private) static class |
LR0_Grammar.Contexts
This class implements a set of LR(0) . |
| Nested classes inherited from class gi.Grammar |
Grammar.ParseTree, Grammar.Production, Grammar.Semantics |
| Nested classes inherited from class gi.Lexicon |
Lexicon.Alphabet, Lexicon.Concatenation, Lexicon.Exception, Lexicon.Expression, Lexicon.Match, Lexicon.NonMatch, Lexicon.PosixClass, Lexicon.Range, Lexicon.Repetition, Lexicon.Set, Lexicon.Singleton, Lexicon.Stack, Lexicon.UnicodeCategory, Lexicon.Union |
| Field Summary | |
(package private) static Object |
S$
The augmented start symbol. |
(package private) Lexicon.Stack |
states
The states through which this LR(0) parser transitions. |
(package private) Lexicon.Stack |
trees
The parse trees through which this LR(0) parser transitions. |
| 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 |
LR0_Grammar()
Constructs an LR(0) parser around a new empty Grammar. |
protected |
LR0_Grammar(Grammar G)
Constructs an LR(0) parser around an existing Grammar. |
| Method Summary | |
(package private) LR0_Grammar.Contexts |
closure(LR0_Grammar.Contexts C)
Computes the reflexive transitive closure of a set of LR(0) Contexts under empty transition. |
(package private) Lexicon.Set |
expected(LR0_Grammar.Contexts C)
Computes the terminals expected in a set of LR(0) Contexts. |
(package private) LR0_Grammar.Contexts |
initial()
Computes the initial state of the LR(0) DFA. |
(package private) Object |
interpret(LineNumberReader source)
Interprets a source character stream by LR shift-reduce ascent. |
(package private) Grammar.Production |
parse(LR0_Grammar.Contexts C,
Object a)
Computes the Production to use in a reverse rightmost derivation. |
String |
toString()
Returns the string representation of this parser, specifically "LR(0)". |
(package private) LR0_Grammar.Contexts |
transition(LR0_Grammar.Contexts C,
Object X)
Computes a transition from a set of LR(0) Contexts on a symbol. |
| 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 |
| Field Detail |
static final Object S$
The augmented start symbol.
final Lexicon.Stack states
The states through which this LR(0) parser transitions.
final Lexicon.Stack trees
The parse trees through which this LR(0) parser transitions.
| Constructor Detail |
protected LR0_Grammar()
Constructs an LR(0) parser around a new empty Grammar.
protected LR0_Grammar(Grammar G)
Constructs an LR(0) parser around an existing Grammar.
G - the Grammar around which the parser is constructed.| Method Detail |
LR0_Grammar.Contexts closure(LR0_Grammar.Contexts C)
Computes the reflexive transitive closure of a set of LR(0) Contexts under empty transition.
C - the set of LR(0) Contexts whose reflexive transitive closure is computed under empty transition.
from under empty transition.Lexicon.Set expected(LR0_Grammar.Contexts C)
Computes the terminals expected in a set of LR(0) Contexts.
C - the set of LR(0) Contexts.
Context in C.LR0_Grammar.Contexts initial()
Computes the initial state of the LR(0) DFA.
Object interpret(LineNumberReader source)
throws Lexicon.Exception
Interprets a source character stream by LR shift-reduce ascent.
interpret in class Grammarsource - the source character stream.
ParseTree constructed by interpreting source.
Lexicon.Exception - if an I/O, lexical, syntax or semantic error occurs.
Grammar.Production parse(LR0_Grammar.Contexts C,
Object a)
Computes the Production to use in a reverse rightmost derivation.
C - the set of LR(0) Contexts.a - the lookahead terminal.
Production underlying an applicable reduce Context in C; returns null if none.public String toString()
Returns the string representation of this parser, specifically "LR(0)".
LR0_Grammar.Contexts transition(LR0_Grammar.Contexts C,
Object X)
Computes a transition from a set of LR(0) Contexts on a symbol.
C - the set of LR(0) Contexts from which the transition is made.X - the symbol on which the transition is made.
Contexts to which the transition is made.
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||