net.hydromatic.clapham.graph
Class Grammar

java.lang.Object
  extended by net.hydromatic.clapham.graph.Grammar

public class Grammar
extends Object

TODO:

Since:
Aug 26, 2008
Author:
jhyde
 

Nested Class Summary
static class Grammar.Direction
           
 
Field Summary
 List<Symbol> nonterminals
           
 Map<Symbol,Graph> ruleMap
           
 Map<String,Symbol> symbolMap
           
 List<Symbol> terminals
           
static boolean TRACE
           
 
Constructor Summary
Grammar()
           
 
Method Summary
 void checkSubAlts(Node alt)
           
 Node find(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(PrintStream out)
           
 boolean setOptimizeGraph()
           
 void setOptimizeGraph(boolean value)
           
 void terminalToNt(String name)
          Converts the terminal with a given name to a non-terminal.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

symbolMap

public final Map<String,Symbol> symbolMap

ruleMap

public final Map<Symbol,Graph> ruleMap

TRACE

public static boolean TRACE

terminals

public final List<Symbol> terminals

nonterminals

public final List<Symbol> nonterminals
Constructor Detail

Grammar

public Grammar()
Method Detail

setOptimizeGraph

public void setOptimizeGraph(boolean value)

setOptimizeGraph

public boolean setOptimizeGraph()

optimize

public void optimize()
calls all methods which optimize the graphs


checkSubAlts

public void checkSubAlts(Node alt)

makeEpsilon

public void makeEpsilon(Graph g)

makeFirstAlt

public void makeFirstAlt(Graph g)

makeAlternative

public void makeAlternative(Graph g1,
                            Graph g2)

makeSequence

public void makeSequence(Graph g1,
                         Graph g2)

makeIteration

public void makeIteration(Graph g)

makeOption

public void makeOption(Graph g)

find

public Node find(String name)
Finds a terminal or non-terminal with a given name.

Parameters:
name - Name of symbol
Returns:
terminal or non-terminal

terminalToNt

public void terminalToNt(String name)
Converts the terminal with a given name to a non-terminal.

Parameters:
name - Name of non-terminal.

printNodes

public void printNodes(PrintStream out)

SourceForge.net_Logo