dk.brics.servletvalidator
Class NonTerminalReducingVisitor

java.lang.Object
  extended by dk.brics.servletvalidator.grammar.AbstractGrammarEntityVisitor
      extended by dk.brics.servletvalidator.NonTerminalReducingVisitor
All Implemented Interfaces:
GrammarEntityVisitor

public class NonTerminalReducingVisitor
extends AbstractGrammarEntityVisitor

Reduces the number of non terminals by finding nonterminal that are completely identical where all productions are equal and replace them by 1 non terminal. Applying this transformation may create new identical non terminals but in that case the total number of non terminals is strictly smaller.


Field Summary
 
Fields inherited from class dk.brics.servletvalidator.grammar.AbstractGrammarEntityVisitor
marked
 
Constructor Summary
NonTerminalReducingVisitor()
           
 
Method Summary
 void apply(Grammar g)
           
 boolean isChanged()
           
 void out(NonTerminal nonTerminal)
           
 
Methods inherited from class dk.brics.servletvalidator.grammar.AbstractGrammarEntityVisitor
apply, apply, apply, getPath, in, in, in, isMarked, mark, out, out, print, shouldPrettyPrint
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NonTerminalReducingVisitor

public NonTerminalReducingVisitor()
Method Detail

apply

public void apply(Grammar g)
Specified by:
apply in interface GrammarEntityVisitor
Overrides:
apply in class AbstractGrammarEntityVisitor

isChanged

public boolean isChanged()

out

public void out(NonTerminal nonTerminal)
Specified by:
out in interface GrammarEntityVisitor
Overrides:
out in class AbstractGrammarEntityVisitor


Copyright © 2008 Mathias Schwarz.