public class Parser extends Object
| Modifier and Type | Class and Description |
|---|---|
static interface |
Parser.ActionHandler
The parser knows how to handle the terminal and non-terminal symbols.
|
| Modifier and Type | Field and Description |
|---|---|
protected int |
pos |
protected Symbol[] |
stack |
protected Parser.ActionHandler |
symbolHandler |
| Constructor and Description |
|---|
Parser(Symbol root,
Parser.ActionHandler symbolHandler) |
| Modifier and Type | Method and Description |
|---|---|
Symbol |
advance(Symbol input)
Recursively replaces the symbol at the top of the stack with its production,
until the top is a terminal.
|
int |
depth()
Returns the depth of the stack.
|
Symbol |
popSymbol()
Pops and returns the top symbol from the stack.
|
void |
processImplicitActions()
Performs any implicit actions at the top the stack, expanding any production
(other than the root) that may be encountered.
|
void |
processTrailingImplicitActions()
Performs any "trailing" implicit actions at the top the stack.
|
void |
pushProduction(Symbol sym)
Pushes the production for the given symbol sym.
|
void |
pushSymbol(Symbol sym)
Pushes sym on to the stack.
|
void |
reset() |
Symbol |
topSymbol()
Returns the top symbol from the stack.
|
protected final Parser.ActionHandler symbolHandler
protected Symbol[] stack
protected int pos
public Parser(Symbol root, Parser.ActionHandler symbolHandler)
public final Symbol advance(Symbol input) throws IOException
input - The symbol to match against the terminal at the top of the
stack.IOExceptionpublic final void processImplicitActions()
throws IOException
IOExceptionpublic final void processTrailingImplicitActions()
throws IOException
IOExceptionpublic final void pushProduction(Symbol sym)
Symbol.ARRAY_END or
Symbol.MAP_END pushes nothing.sym - public Symbol popSymbol()
public Symbol topSymbol()
public void pushSymbol(Symbol sym)
public int depth()
public void reset()
Copyright © 2009–2023 The Apache Software Foundation. All rights reserved.