public class Grammar extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
Grammar.Direction |
Modifier and Type | Field and Description |
---|---|
java.util.List<Symbol> |
nonterminals |
java.util.Map<Symbol,Graph> |
ruleMap |
java.util.Map<java.lang.String,Symbol> |
symbolMap |
java.util.List<Symbol> |
terminals |
static boolean |
TRACE |
Constructor and Description |
---|
Grammar() |
Modifier and Type | Method and Description |
---|---|
void |
checkSubAlts(Node alt) |
Node |
find(java.lang.String name)
Finds a terminal or non-terminal with a given name.
|
void |
makeAlternative(Graph g1,
Graph g2) |
void |
makeEpsilon(Graph g) |
void |
makeFirstAlt(Graph g) |
void |
makeIteration(Graph g) |
void |
makeOption(Graph g) |
void |
makeSequence(Graph g1,
Graph g2) |
void |
optimize()
calls all methods which optimize the graphs
|
void |
printNodes(java.io.PrintStream out) |
boolean |
setOptimizeGraph() |
void |
setOptimizeGraph(boolean value) |
void |
terminalToNt(java.lang.String name)
Converts the terminal with a given name to a non-terminal.
|
public static boolean TRACE
public final java.util.List<Symbol> nonterminals
public Grammar()
public void setOptimizeGraph(boolean value)
public boolean setOptimizeGraph()
public void optimize()
public void checkSubAlts(Node alt)
public void makeEpsilon(Graph g)
public void makeFirstAlt(Graph g)
public void makeAlternative(Graph g1, Graph g2)
public void makeSequence(Graph g1, Graph g2)
public void makeIteration(Graph g)
public void makeOption(Graph g)
public Node find(java.lang.String name)
name
- Name of symbolpublic void terminalToNt(java.lang.String name)
name
- Name of non-terminal.public void printNodes(java.io.PrintStream out)