EDU.purdue.jtb.visitor
Class SemanticChecker

java.lang.Object
  extended by EDU.purdue.jtb.visitor.DepthFirstVisitor
      extended by EDU.purdue.jtb.visitor.SemanticChecker
All Implemented Interfaces:
Visitor

public class SemanticChecker
extends DepthFirstVisitor

Semantic checking phase for JTB checks for the following conditions: - When productions have a return value other than void since JTB automatically alters the return value of all productions in the annotated grammar. - For blocks of Java code within productions since to our knowledge they are generally unnecessary in JTB grammars. - When any productions have a name reserved by an automatically generated JTB class (e.g. Node, NodeList, etc.) - Extraneous parentheses in a production - JavaCode productions must be handled specially, as stated in the JTB Release Notes page.


Constructor Summary
SemanticChecker()
           
 
Method Summary
 void visit(BNFProduction n)
          old Grammar production: f0 -> ResultType() f1 -> f2 -> FormalParameters() f3 -> f4 -> Block() f5 -> f6 -> ExpansionChoices() f7 ->
 void visit(CharacterDescriptor n)
          f0 -> f1 -> [ ]
 void visit(CharacterList n)
          f0 -> [ ] f1 -> f2 -> [ CharacterDescriptor() ( CharacterDescriptor() )* ] f3 ->
 void visit(ComplexRegularExpression n)
          f0 -> ( ComplexRegularExpressionUnit() )*
 void visit(ComplexRegularExpressionChoices n)
          f0 -> ComplexRegularExpression() f1 -> ( ComplexRegularExpression() )*
 void visit(ComplexRegularExpressionUnit n)
          f0 -> | | CharacterList() | ComplexRegularExpressionChoices() [ | | ]
 void visit(Expansion n)
          f0 -> ( ExpansionUnit() )*
 void visit(ExpansionChoices n)
          f0 -> Expansion() f1 -> ( Expansion() )*
 void visit(ExpansionUnit n)
          f0 -> LocalLookahead() | Block() | ExpansionChoices() [ | | ] | ExpansionChoices() | [ PrimaryExpression() ] ExpansionUnitTerm()
 void visit(ExpansionUnitTerm n)
          f0 -> RegularExpression() | Arguments()
 void visit(JavaCCInput n)
          f0 -> JavaCCOptions() f1 -> f2 -> f3 -> f4 -> f5 -> CompilationUnit() f6 -> f7 -> f8 -> f9 -> f10 -> ( Production() )* f11 ->
 void visit(JavaCCOptions n)
          f0 -> [ ( OptionBinding() )* ]
 void visit(JavaCodeProduction n)
          f0 -> f1 -> ResultType() f2 -> f3 -> FormalParameters() f4 -> Block()
 void visit(LexicalStateList n)
          f0 -> | ( )*
 void visit(LocalLookahead n)
          f0 -> f1 -> f2 -> [ ] f3 -> [ ] f4 -> ExpansionChoices() f5 -> [ ] f6 -> [ Expression() ] f7 ->
 void visit(OptionBinding n)
          f0 -> ( | | | ) f1 -> f2 -> ( | BooleanLiteral() | ) f3 ->
 void visit(Production n)
          f0 -> JavaCodeProduction() | RegularExprProduction() | BNFProduction() | TokenManagerDecls()
 void visit(RegExprKind n)
          f0 -> | | |
 void visit(RegExprSpec n)
          f0 -> RegularExpression() f1 -> [ Block() ] f2 -> [ ]
 void visit(RegularExpression n)
          f0 -> | [ [ ] ] ComplexRegularExpressionChoices() | |
 void visit(RegularExprProduction n)
          f0 -> [ LexicalStateList() ] f1 -> RegExprKind() f2 -> [ ] f3 -> f4 -> f5 -> RegExprSpec() f6 -> ( RegExprSpec() )* f7 ->
 void visit(TokenManagerDecls n)
          f0 -> f1 -> f2 -> ClassBodyDeclaration()
 
Methods inherited from class EDU.purdue.jtb.visitor.DepthFirstVisitor
visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SemanticChecker

public SemanticChecker()
Method Detail

visit

public void visit(JavaCCInput n)
f0 -> JavaCCOptions() f1 -> f2 -> f3 -> f4 -> f5 -> CompilationUnit() f6 -> f7 -> f8 -> f9 -> f10 -> ( Production() )* f11 ->

Specified by:
visit in interface Visitor
Overrides:
visit in class DepthFirstVisitor

visit

public void visit(JavaCCOptions n)
f0 -> [ ( OptionBinding() )* ]

Specified by:
visit in interface Visitor
Overrides:
visit in class DepthFirstVisitor

visit

public void visit(OptionBinding n)
f0 -> ( | | | ) f1 -> f2 -> ( | BooleanLiteral() | ) f3 ->

Specified by:
visit in interface Visitor
Overrides:
visit in class DepthFirstVisitor

visit

public void visit(Production n)
f0 -> JavaCodeProduction() | RegularExprProduction() | BNFProduction() | TokenManagerDecls()

Specified by:
visit in interface Visitor
Overrides:
visit in class DepthFirstVisitor

visit

public void visit(JavaCodeProduction n)
f0 -> f1 -> ResultType() f2 -> f3 -> FormalParameters() f4 -> Block()

Specified by:
visit in interface Visitor
Overrides:
visit in class DepthFirstVisitor

visit

public void visit(BNFProduction n)
old Grammar production: f0 -> ResultType() f1 -> f2 -> FormalParameters() f3 -> f4 -> Block() f5 -> f6 -> ExpansionChoices() f7 ->

Specified by:
visit in interface Visitor
Overrides:
visit in class DepthFirstVisitor

visit

public void visit(RegularExprProduction n)
f0 -> [ LexicalStateList() ] f1 -> RegExprKind() f2 -> [ ] f3 -> f4 -> f5 -> RegExprSpec() f6 -> ( RegExprSpec() )* f7 ->

Specified by:
visit in interface Visitor
Overrides:
visit in class DepthFirstVisitor

visit

public void visit(TokenManagerDecls n)
f0 -> f1 -> f2 -> ClassBodyDeclaration()

Specified by:
visit in interface Visitor
Overrides:
visit in class DepthFirstVisitor

visit

public void visit(LexicalStateList n)
f0 -> | ( )*

Specified by:
visit in interface Visitor
Overrides:
visit in class DepthFirstVisitor

visit

public void visit(RegExprKind n)
f0 -> | | |

Specified by:
visit in interface Visitor
Overrides:
visit in class DepthFirstVisitor

visit

public void visit(RegExprSpec n)
f0 -> RegularExpression() f1 -> [ Block() ] f2 -> [ ]

Specified by:
visit in interface Visitor
Overrides:
visit in class DepthFirstVisitor

visit

public void visit(ExpansionChoices n)
f0 -> Expansion() f1 -> ( Expansion() )*

Specified by:
visit in interface Visitor
Overrides:
visit in class DepthFirstVisitor

visit

public void visit(Expansion n)
f0 -> ( ExpansionUnit() )*

Specified by:
visit in interface Visitor
Overrides:
visit in class DepthFirstVisitor

visit

public void visit(ExpansionUnit n)
f0 -> LocalLookahead() | Block() | ExpansionChoices() [ | | ] | ExpansionChoices() | [ PrimaryExpression() ] ExpansionUnitTerm()

Specified by:
visit in interface Visitor
Overrides:
visit in class DepthFirstVisitor

visit

public void visit(ExpansionUnitTerm n)
f0 -> RegularExpression() | Arguments()

Specified by:
visit in interface Visitor
Overrides:
visit in class DepthFirstVisitor

visit

public void visit(LocalLookahead n)
f0 -> f1 -> f2 -> [ ] f3 -> [ ] f4 -> ExpansionChoices() f5 -> [ ] f6 -> [ Expression() ] f7 ->

Specified by:
visit in interface Visitor
Overrides:
visit in class DepthFirstVisitor

visit

public void visit(RegularExpression n)
f0 -> | [ [ ] ] ComplexRegularExpressionChoices() | |

Specified by:
visit in interface Visitor
Overrides:
visit in class DepthFirstVisitor

visit

public void visit(ComplexRegularExpressionChoices n)
f0 -> ComplexRegularExpression() f1 -> ( ComplexRegularExpression() )*

Specified by:
visit in interface Visitor
Overrides:
visit in class DepthFirstVisitor

visit

public void visit(ComplexRegularExpression n)
f0 -> ( ComplexRegularExpressionUnit() )*

Specified by:
visit in interface Visitor
Overrides:
visit in class DepthFirstVisitor

visit

public void visit(ComplexRegularExpressionUnit n)
f0 -> | | CharacterList() | ComplexRegularExpressionChoices() [ | | ]

Specified by:
visit in interface Visitor
Overrides:
visit in class DepthFirstVisitor

visit

public void visit(CharacterList n)
f0 -> [ ] f1 -> f2 -> [ CharacterDescriptor() ( CharacterDescriptor() )* ] f3 ->

Specified by:
visit in interface Visitor
Overrides:
visit in class DepthFirstVisitor

visit

public void visit(CharacterDescriptor n)
f0 -> f1 -> [ ]

Specified by:
visit in interface Visitor
Overrides:
visit in class DepthFirstVisitor