xtc.parser
Class DuplicateProductionFolder

java.lang.Object
  extended by xtc.tree.Visitor
      extended by xtc.parser.GrammarVisitor
          extended by xtc.parser.DuplicateProductionFolder

public class DuplicateProductionFolder
extends GrammarVisitor

Visitor to fold duplicate productions into a single production.

This visitor assumes that the entire grammar is contained in a single module.

Version:
$Revision: 1.36 $
Author:
Robert Grimm

Field Summary
protected  java.util.Map<NonTerminal,NonTerminal> folded
          The map of from folded nonterminals to replacement nonterminals.
 
Fields inherited from class xtc.parser.GrammarVisitor
analyzer, isBound, isLastElement, isPredicate, isRepeatedOnce, isTopLevel, isVoided, needsSequence, runtime, transformInPlace
 
Constructor Summary
DuplicateProductionFolder(Runtime runtime, Analyzer analyzer)
          Create a new duplicate production folder.
 
Method Summary
 java.lang.Object visit(Module m)
          Visit the specified grammar.
 Element visit(NonTerminal nt)
          Visit the specified nonterminal.
 
Methods inherited from class xtc.parser.GrammarVisitor
visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
 
Methods inherited from class xtc.tree.Visitor
dispatch, equals, hashCode, iterate, map, mapInPlace, unableToVisit, visit
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

folded

protected final java.util.Map<NonTerminal,NonTerminal> folded
The map of from folded nonterminals to replacement nonterminals.

Constructor Detail

DuplicateProductionFolder

public DuplicateProductionFolder(Runtime runtime,
                                 Analyzer analyzer)
Create a new duplicate production folder.

Parameters:
runtime - The runtime.
analyzer - The analyzer utility.
Method Detail

visit

public java.lang.Object visit(Module m)
Visit the specified grammar.

Overrides:
visit in class GrammarVisitor

visit

public Element visit(NonTerminal nt)
Visit the specified nonterminal.



Copyright © 2012. All Rights Reserved.