dk.brics.servletvalidator.graph
Class UnboundedAssociateRemover

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

public class UnboundedAssociateRemover
extends AbstractGrammarEntityVisitor

This visitor ensures that all associates are bounded for the particular grammar, that is there are no productions of the for an(bn). This is transformed into an(bm). This transformation is dicussed in [MiMø] appendix B. Unbounded associates are discussed in more detail in [Knuth] Lemma 3. The precondition for the grammar is that the association depth has first been reduced to 1 using the Cycle reducer until there are no more cycles involving more than 1 node in the DGraph.


Field Summary
 
Fields inherited from class dk.brics.servletvalidator.grammar.AbstractGrammarEntityVisitor
marked
 
Constructor Summary
UnboundedAssociateRemover(SplitIndicesFinder s)
           
 
Method Summary
 void apply(Grammar g)
           
 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

UnboundedAssociateRemover

public UnboundedAssociateRemover(SplitIndicesFinder s)
Method Detail

apply

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

out

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


Copyright © 2008 Mathias Schwarz.