oscript.visitor
Class ExtensibleVisitor

java.lang.Object
  extended byoscript.visitor.ObjectDepthFirst
      extended byoscript.visitor.ExtensibleVisitor
All Implemented Interfaces:
ObjectVisitor

public class ExtensibleVisitor
extends ObjectDepthFirst


Constructor Summary
ExtensibleVisitor()
           
 
Method Summary
 Value get(java.lang.Class nodeType)
          get node visitor
 Value register(java.lang.Class nodeType, Value fxn)
          register node visitor
 Value remove(java.lang.Class nodeType)
          remove node visitor
 java.lang.Object visit(AdditiveExpression n, java.lang.Object argu)
           f0 -> MultiplicativeExpression() f1 -> ( ( "+" | "-" ) MultiplicativeExpression() )*
 java.lang.Object visit(AllocationExpression n, java.lang.Object argu)
           f0 -> "new" f1 -> PrimaryExpressionWithTrailingFxnCallExpList() f2 -> FunctionCallExpressionList()
 java.lang.Object visit(Arglist n, java.lang.Object argu)
           f0 -> Permissions(false) f1 -> <IDENTIFIER> f2 -> ( "," Permissions(false) <IDENTIFIER> )* f3 -> ( "..." )?
 java.lang.Object visit(ArrayDeclarationPrimaryPrefix n, java.lang.Object argu)
           f0 -> "[" f1 -> ( FunctionCallExpressionListBody() )? f2 -> "]"
 java.lang.Object visit(ArraySubscriptPrimaryPostfix n, java.lang.Object argu)
           f0 -> "[" f1 -> Expression() f2 -> ( ".." Expression() )? f3 -> "]"
 java.lang.Object visit(AssignmentExpression n, java.lang.Object argu)
           f0 -> ConditionalExpression() f1 -> ( ( "=" | "+=" | "-=" | "*=" | "/=" | "%=" | ">>=" | "<<=" | ">>>=" | "&=" | "^=" | "|=" ) ConditionalExpression() )*
 java.lang.Object visit(BitwiseAndExpression n, java.lang.Object argu)
           f0 -> EqualityExpression() f1 -> ( "&" EqualityExpression() )*
 java.lang.Object visit(BitwiseOrExpression n, java.lang.Object argu)
           f0 -> BitwiseXorExpression() f1 -> ( "|" BitwiseXorExpression() )*
 java.lang.Object visit(BitwiseXorExpression n, java.lang.Object argu)
           f0 -> BitwiseAndExpression() f1 -> ( "^" BitwiseAndExpression() )*
 java.lang.Object visit(BreakStatement n, java.lang.Object argu)
           f0 -> "break" f1 -> ";"
 java.lang.Object visit(CalleePrimaryPrefix n, java.lang.Object argu)
           f0 -> "callee"
 java.lang.Object visit(CastExpression n, java.lang.Object argu)
           f0 -> "(" f1 -> PrimaryExpressionNotFunction() f2 -> ")" f3 -> PrimaryExpression()
 java.lang.Object visit(CollectionForLoopStatement n, java.lang.Object argu)
           f0 -> "for" f1 -> "(" f2 -> PreLoopStatement() f3 -> ":" f4 -> Expression() f5 -> ")" f6 -> EvaluationUnit()
 java.lang.Object visit(ConditionalExpression n, java.lang.Object argu)
           f0 -> LogicalOrExpression() f1 -> ( "?" LogicalOrExpression() ":" LogicalOrExpression() )?
 java.lang.Object visit(ConditionalStatement n, java.lang.Object argu)
           f0 -> "if" f1 -> "(" f2 -> Expression() f3 -> ")" f4 -> EvaluationUnit() f5 -> ( "else" EvaluationUnit() )?
 java.lang.Object visit(ContinueStatement n, java.lang.Object argu)
           f0 -> "continue" f1 -> ";"
 java.lang.Object visit(EqualityExpression n, java.lang.Object argu)
           f0 -> RelationalExpression() f1 -> ( ( "==" | "!=" ) RelationalExpression() )*
 java.lang.Object visit(EvalBlock n, java.lang.Object argu)
           f0 -> "eval" f1 -> Expression() f2 -> ";"
 java.lang.Object visit(EvaluationUnit n, java.lang.Object argu)
           f0 -> ScopeBlock() | VariableDeclarationBlock() | FunctionDeclaration() | TryStatement() | ForLoopStatement() | CollectionForLoopStatement() | WhileLoopStatement() | ConditionalStatement() | SynchronizedStatement() | ReturnStatement() | BreakStatement() | ContinueStatement() | ExpressionBlock() | ThrowBlock() | ImportBlock() | MixinBlock() | EvalBlock()
 java.lang.Object visit(ExpressionBlock n, java.lang.Object argu)
           f0 -> Expression() f1 -> ";"
 java.lang.Object visit(Expression n, java.lang.Object argu)
           f0 -> AssignmentExpression() f1 -> ( "," AssignmentExpression() )*
 java.lang.Object visit(ForLoopStatement n, java.lang.Object argu)
           f0 -> "for" f1 -> "(" f2 -> ( PreLoopStatement() )? f3 -> ";" f4 -> ( Expression() )? f5 -> ";" f6 -> ( Expression() )? f7 -> ")" f8 -> EvaluationUnit()
 java.lang.Object visit(FunctionCallExpressionListBody n, java.lang.Object argu)
           f0 -> AssignmentExpression() f1 -> ( "," AssignmentExpression() )*
 java.lang.Object visit(FunctionCallExpressionList n, java.lang.Object argu)
           f0 -> "(" f1 -> ( FunctionCallExpressionListBody() )? f2 -> ")"
 java.lang.Object visit(FunctionCallPrimaryPostfix n, java.lang.Object argu)
           f0 -> FunctionCallExpressionList()
 java.lang.Object visit(FunctionDeclaration n, java.lang.Object argu)
           f0 -> Permissions(true) f1 -> "function" f2 -> <IDENTIFIER> f3 -> "(" f4 -> ( Arglist() )? f5 -> ")" f6 -> ( "extends" PrimaryExpressionWithTrailingFxnCallExpList() FunctionCallExpressionList() )? f7 -> "{" f8 -> Program(true) f9 -> "}"
 java.lang.Object visit(FunctionPrimaryPrefix n, java.lang.Object argu)
           f0 -> "function" f1 -> "(" f2 -> ( Arglist() )? f3 -> ")" f4 -> ( "extends" PrimaryExpressionWithTrailingFxnCallExpList() FunctionCallExpressionList() )? f5 -> "{" f6 -> Program(true) f7 -> "}"
 java.lang.Object visit(IdentifierPrimaryPrefix n, java.lang.Object argu)
           f0 -> <IDENTIFIER>
 java.lang.Object visit(ImportBlock n, java.lang.Object argu)
           f0 -> "import" f1 -> Expression() f2 -> ";"
 java.lang.Object visit(Literal n, java.lang.Object argu)
           f0 -> <INTEGER_LITERAL> | <FLOATING_POINT_LITERAL> | <STRING_LITERAL> | <REGEXP_LITERAL> | "true" | "false" | "null" | "undefined"
 java.lang.Object visit(LogicalAndExpression n, java.lang.Object argu)
           f0 -> BitwiseOrExpression() f1 -> ( "&&" BitwiseOrExpression() )*
 java.lang.Object visit(LogicalOrExpression n, java.lang.Object argu)
           f0 -> LogicalAndExpression() f1 -> ( "||" LogicalAndExpression() )*
 java.lang.Object visit(MixinBlock n, java.lang.Object argu)
           f0 -> "mixin" f1 -> Expression() f2 -> ";"
 java.lang.Object visit(MultiplicativeExpression n, java.lang.Object argu)
           f0 -> UnaryExpression() f1 -> ( ( "*" | "/" | "%" ) UnaryExpression() )*
 java.lang.Object visit(NodeToken n, java.lang.Object argu)
          handles node tokens
 java.lang.Object visit(ParenPrimaryPrefix n, java.lang.Object argu)
           f0 -> "(" f1 -> Expression() f2 -> ")"
 java.lang.Object visit(Permissions n, java.lang.Object argu)
           f0 -> ( "static" | "const" | "private" | "protected" | "public" )*
 java.lang.Object visit(PostfixExpression n, java.lang.Object argu)
           f0 -> TypeExpression() f1 -> ( "++" | "--" )?
 java.lang.Object visit(PreLoopStatement n, java.lang.Object argu)
           f0 -> VariableDeclaration() | Expression()
 java.lang.Object visit(PrimaryExpressionNotFunction n, java.lang.Object argu)
           f0 -> PrimaryPrefixNotFunction() f1 -> ( PrimaryPostfix() )*
 java.lang.Object visit(PrimaryExpression n, java.lang.Object argu)
           f0 -> PrimaryPrefix() f1 -> ( PrimaryPostfix() )*
 java.lang.Object visit(PrimaryExpressionWithTrailingFxnCallExpList n, java.lang.Object argu)
           f0 -> PrimaryPrefix() f1 -> ( PrimaryPostfixWithTrailingFxnCallExpList() )*
 java.lang.Object visit(PrimaryPostfix n, java.lang.Object argu)
           f0 -> FunctionCallPrimaryPostfix() | ArraySubscriptPrimaryPostfix() | PropertyIdentifierPrimaryPostfix()
 java.lang.Object visit(PrimaryPostfixWithTrailingFxnCallExpList n, java.lang.Object argu)
           f0 -> ArraySubscriptPrimaryPostfix() | PropertyIdentifierPrimaryPostfix()
 java.lang.Object visit(PrimaryPrefixNotFunction n, java.lang.Object argu)
           f0 -> ThisPrimaryPrefix() | CalleePrimaryPrefix() | ArrayDeclarationPrimaryPrefix() | IdentifierPrimaryPrefix() | ParenPrimaryPrefix() | Literal()
 java.lang.Object visit(PrimaryPrefix n, java.lang.Object argu)
           f0 -> PrimaryPrefixNotFunction() | FunctionPrimaryPrefix() | ShorthandFunctionPrimaryPrefix()
 java.lang.Object visit(ProgramFile n, java.lang.Object argu)
           f0 -> ( <UNIX_SELF_EXECUTABLE_COMMENT> )? f1 -> Program(false) f2 -> <EOF>
 java.lang.Object visit(Program n, java.lang.Object argu)
           f0 -> ( EvaluationUnit() )*
 java.lang.Object visit(PropertyIdentifierPrimaryPostfix n, java.lang.Object argu)
           f0 -> "." f1 -> <IDENTIFIER>
 java.lang.Object visit(RelationalExpression n, java.lang.Object argu)
           f0 -> ShiftExpression() f1 -> ( ( "<" | ">" | ">=" | "<=" | "instanceof" ) ShiftExpression() )*
 java.lang.Object visit(ReturnStatement n, java.lang.Object argu)
           f0 -> "return" f1 -> ( Expression() )? f2 -> ";"
 java.lang.Object visit(ScopeBlock n, java.lang.Object argu)
           f0 -> "{" f1 -> Program(false) f2 -> "}"
 java.lang.Object visit(ShiftExpression n, java.lang.Object argu)
           f0 -> AdditiveExpression() f1 -> ( ( "<<" | ">>" | ">>>" ) AdditiveExpression() )*
 java.lang.Object visit(ShorthandFunctionPrimaryPrefix n, java.lang.Object argu)
           f0 -> "'{" f1 -> Program(true) f2 -> "}"
 java.lang.Object visit(SynchronizedStatement n, java.lang.Object argu)
           f0 -> "synchronized" f1 -> "(" f2 -> Expression() f3 -> ")" f4 -> EvaluationUnit()
 java.lang.Object visit(ThisPrimaryPrefix n, java.lang.Object argu)
           f0 -> "this"
 java.lang.Object visit(ThrowBlock n, java.lang.Object argu)
           f0 -> "throw" f1 -> Expression() f2 -> ";"
 java.lang.Object visit(TryStatement n, java.lang.Object argu)
           f0 -> "try" f1 -> EvaluationUnit() f2 -> ( "catch" "(" Expression() <IDENTIFIER> ")" EvaluationUnit() )* f3 -> ( "catch" "(" <IDENTIFIER> ")" EvaluationUnit() )? f4 -> ( "finally" EvaluationUnit() )?
 java.lang.Object visit(TypeExpression n, java.lang.Object argu)
           f0 -> AllocationExpression() | CastExpression() | PrimaryExpression()
 java.lang.Object visit(UnaryExpression n, java.lang.Object argu)
           f0 -> ( ( "++" | "--" | "+" | "-" | "~" | "!" ) )? f1 -> PostfixExpression()
 java.lang.Object visit(VariableDeclarationBlock n, java.lang.Object argu)
           f0 -> VariableDeclaration() f1 -> ";"
 java.lang.Object visit(VariableDeclaration n, java.lang.Object argu)
           f0 -> Permissions(true) f1 -> "var" f2 -> <IDENTIFIER> f3 -> ( "=" Expression() )?
 java.lang.Object visit(WhileLoopStatement n, java.lang.Object argu)
           f0 -> "while" f1 -> "(" f2 -> Expression() f3 -> ")" f4 -> EvaluationUnit()
 
Methods inherited from class oscript.visitor.ObjectDepthFirst
visit, visit, visit, visit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExtensibleVisitor

public ExtensibleVisitor()
Method Detail

register

public Value register(java.lang.Class nodeType,
                      Value fxn)
register node visitor


get

public Value get(java.lang.Class nodeType)
get node visitor


remove

public Value remove(java.lang.Class nodeType)
remove node visitor


visit

public java.lang.Object visit(NodeToken n,
                              java.lang.Object argu)
handles node tokens

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(ProgramFile n,
                              java.lang.Object argu)
 f0 -> ( <UNIX_SELF_EXECUTABLE_COMMENT> )?
 f1 -> Program(false)
 f2 -> <EOF>
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(Program n,
                              java.lang.Object argu)
 f0 -> ( EvaluationUnit() )*
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(EvaluationUnit n,
                              java.lang.Object argu)
 f0 -> ScopeBlock()
       | VariableDeclarationBlock()
       | FunctionDeclaration()
       | TryStatement()
       | ForLoopStatement()
       | CollectionForLoopStatement()
       | WhileLoopStatement()
       | ConditionalStatement()
       | SynchronizedStatement()
       | ReturnStatement()
       | BreakStatement()
       | ContinueStatement()
       | ExpressionBlock()
       | ThrowBlock()
       | ImportBlock()
       | MixinBlock()
       | EvalBlock()
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(ScopeBlock n,
                              java.lang.Object argu)
 f0 -> "{"
 f1 -> Program(false)
 f2 -> "}"
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(VariableDeclarationBlock n,
                              java.lang.Object argu)
 f0 -> VariableDeclaration()
 f1 -> ";"
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(ExpressionBlock n,
                              java.lang.Object argu)
 f0 -> Expression()
 f1 -> ";"
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(ThrowBlock n,
                              java.lang.Object argu)
 f0 -> "throw"
 f1 -> Expression()
 f2 -> ";"
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(ImportBlock n,
                              java.lang.Object argu)

 f0 -> "import"
 f1 -> Expression()
 f2 -> ";"
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(MixinBlock n,
                              java.lang.Object argu)

 f0 -> "mixin"
 f1 -> Expression()
 f2 -> ";"
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(EvalBlock n,
                              java.lang.Object argu)

 f0 -> "eval"
 f1 -> Expression()
 f2 -> ";"
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(VariableDeclaration n,
                              java.lang.Object argu)

 f0 -> Permissions(true)
 f1 -> "var"
 f2 -> <IDENTIFIER>
 f3 -> ( "=" Expression() )?
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(FunctionDeclaration n,
                              java.lang.Object argu)

 f0 -> Permissions(true)
 f1 -> "function"
 f2 -> <IDENTIFIER>
 f3 -> "("
 f4 -> ( Arglist() )?
 f5 -> ")"
 f6 -> ( "extends" PrimaryExpressionWithTrailingFxnCallExpList() FunctionCallExpressionList() )?
 f7 -> "{"
 f8 -> Program(true)
 f9 -> "}"
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(Arglist n,
                              java.lang.Object argu)
 f0 -> Permissions(false)
 f1 -> <IDENTIFIER>
 f2 -> ( "," Permissions(false) <IDENTIFIER> )*
 f3 -> ( "..." )?
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(TryStatement n,
                              java.lang.Object argu)
 f0 -> "try"
 f1 -> EvaluationUnit()
 f2 -> ( "catch" "(" Expression() <IDENTIFIER> ")" EvaluationUnit() )*
 f3 -> ( "catch" "(" <IDENTIFIER> ")" EvaluationUnit() )?
 f4 -> ( "finally" EvaluationUnit() )?
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(ForLoopStatement n,
                              java.lang.Object argu)

 f0 -> "for"
 f1 -> "("
 f2 -> (  PreLoopStatement() )?
 f3 -> ";"
 f4 -> ( Expression() )?
 f5 -> ";"
 f6 -> ( Expression() )?
 f7 -> ")"
 f8 -> EvaluationUnit()
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(CollectionForLoopStatement n,
                              java.lang.Object argu)

 f0 -> "for"
 f1 -> "("
 f2 -> PreLoopStatement()
 f3 -> ":"
 f4 -> Expression()
 f5 -> ")"
 f6 -> EvaluationUnit()
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(PreLoopStatement n,
                              java.lang.Object argu)
 f0 -> VariableDeclaration()
       | Expression()
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(WhileLoopStatement n,
                              java.lang.Object argu)
 f0 -> "while"
 f1 -> "("
 f2 -> Expression()
 f3 -> ")"
 f4 -> EvaluationUnit()
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(ConditionalStatement n,
                              java.lang.Object argu)
 f0 -> "if"
 f1 -> "("
 f2 -> Expression()
 f3 -> ")"
 f4 -> EvaluationUnit()
 f5 -> ( "else" EvaluationUnit() )?
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(SynchronizedStatement n,
                              java.lang.Object argu)
 f0 -> "synchronized"
 f1 -> "("
 f2 -> Expression()
 f3 -> ")"
 f4 -> EvaluationUnit()
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(ReturnStatement n,
                              java.lang.Object argu)
 f0 -> "return"
 f1 -> ( Expression() )?
 f2 -> ";"
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(BreakStatement n,
                              java.lang.Object argu)
 f0 -> "break"
 f1 -> ";"
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(ContinueStatement n,
                              java.lang.Object argu)
 f0 -> "continue"
 f1 -> ";"
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(Expression n,
                              java.lang.Object argu)
 f0 -> AssignmentExpression()
 f1 -> ( "," AssignmentExpression() )*
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(FunctionCallExpressionList n,
                              java.lang.Object argu)
 f0 -> "("
 f1 -> ( FunctionCallExpressionListBody() )?
 f2 -> ")"
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(FunctionCallExpressionListBody n,
                              java.lang.Object argu)
 f0 -> AssignmentExpression()
 f1 -> ( "," AssignmentExpression() )*
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(AssignmentExpression n,
                              java.lang.Object argu)
 f0 -> ConditionalExpression()
 f1 -> ( ( "=" | "+=" | "-=" | "*=" | "/=" | "%=" | ">>=" | "<<=" | ">>>=" | "&=" | "^=" | "|=" ) ConditionalExpression() )*
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(ConditionalExpression n,
                              java.lang.Object argu)
 f0 -> LogicalOrExpression()
 f1 -> ( "?" LogicalOrExpression() ":" LogicalOrExpression() )?
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(LogicalOrExpression n,
                              java.lang.Object argu)
 f0 -> LogicalAndExpression()
 f1 -> ( "||" LogicalAndExpression() )*
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(LogicalAndExpression n,
                              java.lang.Object argu)
 f0 -> BitwiseOrExpression()
 f1 -> ( "&&" BitwiseOrExpression() )*
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(BitwiseOrExpression n,
                              java.lang.Object argu)
 f0 -> BitwiseXorExpression()
 f1 -> ( "|" BitwiseXorExpression() )*
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(BitwiseXorExpression n,
                              java.lang.Object argu)
 f0 -> BitwiseAndExpression()
 f1 -> ( "^" BitwiseAndExpression() )*
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(BitwiseAndExpression n,
                              java.lang.Object argu)
 f0 -> EqualityExpression()
 f1 -> ( "&" EqualityExpression() )*
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(EqualityExpression n,
                              java.lang.Object argu)
 f0 -> RelationalExpression()
 f1 -> ( ( "==" | "!=" ) RelationalExpression() )*
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(RelationalExpression n,
                              java.lang.Object argu)
 f0 -> ShiftExpression()
 f1 -> ( ( "<" | ">" | ">=" | "<=" | "instanceof" ) ShiftExpression() )*
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(ShiftExpression n,
                              java.lang.Object argu)
 f0 -> AdditiveExpression()
 f1 -> ( ( "<<" | ">>" | ">>>" ) AdditiveExpression() )*
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(AdditiveExpression n,
                              java.lang.Object argu)
 f0 -> MultiplicativeExpression()
 f1 -> ( ( "+" | "-" ) MultiplicativeExpression() )*
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(MultiplicativeExpression n,
                              java.lang.Object argu)
 f0 -> UnaryExpression()
 f1 -> ( ( "*" | "/" | "%" ) UnaryExpression() )*
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(UnaryExpression n,
                              java.lang.Object argu)
 f0 -> ( ( "++" | "--" | "+" | "-" | "~" | "!" ) )?
 f1 -> PostfixExpression()
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(PostfixExpression n,
                              java.lang.Object argu)
 f0 -> TypeExpression()
 f1 -> ( "++" | "--" )?
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(TypeExpression n,
                              java.lang.Object argu)
 f0 -> AllocationExpression()
       | CastExpression()
       | PrimaryExpression()
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(AllocationExpression n,
                              java.lang.Object argu)
 f0 -> "new"
 f1 -> PrimaryExpressionWithTrailingFxnCallExpList()
 f2 -> FunctionCallExpressionList()
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(CastExpression n,
                              java.lang.Object argu)
 f0 -> "("
 f1 -> PrimaryExpressionNotFunction()
 f2 -> ")"
 f3 -> PrimaryExpression()
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(PrimaryExpression n,
                              java.lang.Object argu)
 f0 -> PrimaryPrefix()
 f1 -> ( PrimaryPostfix() )*
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(PrimaryExpressionNotFunction n,
                              java.lang.Object argu)
 f0 -> PrimaryPrefixNotFunction()
 f1 -> ( PrimaryPostfix() )*
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(PrimaryExpressionWithTrailingFxnCallExpList n,
                              java.lang.Object argu)
 f0 -> PrimaryPrefix()
 f1 -> ( PrimaryPostfixWithTrailingFxnCallExpList() )*
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(PrimaryPrefix n,
                              java.lang.Object argu)
 f0 -> PrimaryPrefixNotFunction()
       | FunctionPrimaryPrefix()
       | ShorthandFunctionPrimaryPrefix()
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(PrimaryPrefixNotFunction n,
                              java.lang.Object argu)
 f0 -> ThisPrimaryPrefix()
       | CalleePrimaryPrefix()
       | ArrayDeclarationPrimaryPrefix()
       | IdentifierPrimaryPrefix()
       | ParenPrimaryPrefix()
       | Literal()
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(ThisPrimaryPrefix n,
                              java.lang.Object argu)
 f0 -> "this"
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(CalleePrimaryPrefix n,
                              java.lang.Object argu)

 f0 -> "callee"
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(IdentifierPrimaryPrefix n,
                              java.lang.Object argu)
 f0 -> <IDENTIFIER>
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(ParenPrimaryPrefix n,
                              java.lang.Object argu)
 f0 -> "("
 f1 -> Expression()
 f2 -> ")"
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(FunctionPrimaryPrefix n,
                              java.lang.Object argu)

 f0 -> "function"
 f1 -> "("
 f2 -> ( Arglist() )?
 f3 -> ")"
 f4 -> ( "extends" PrimaryExpressionWithTrailingFxnCallExpList() FunctionCallExpressionList() )?
 f5 -> "{"
 f6 -> Program(true)
 f7 -> "}"
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(ShorthandFunctionPrimaryPrefix n,
                              java.lang.Object argu)
 f0 -> "'{"
 f1 -> Program(true)
 f2 -> "}"
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(ArrayDeclarationPrimaryPrefix n,
                              java.lang.Object argu)
 f0 -> "["
 f1 -> ( FunctionCallExpressionListBody() )?
 f2 -> "]"
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(PrimaryPostfix n,
                              java.lang.Object argu)
 f0 -> FunctionCallPrimaryPostfix()
       | ArraySubscriptPrimaryPostfix()
       | PropertyIdentifierPrimaryPostfix()
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(PrimaryPostfixWithTrailingFxnCallExpList n,
                              java.lang.Object argu)
 f0 -> ArraySubscriptPrimaryPostfix()
       | PropertyIdentifierPrimaryPostfix()
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(FunctionCallPrimaryPostfix n,
                              java.lang.Object argu)
 f0 -> FunctionCallExpressionList()
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(ArraySubscriptPrimaryPostfix n,
                              java.lang.Object argu)
 f0 -> "["
 f1 -> Expression()
 f2 -> ( ".." Expression() )?
 f3 -> "]"
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(PropertyIdentifierPrimaryPostfix n,
                              java.lang.Object argu)
 f0 -> "."
 f1 -> <IDENTIFIER>
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(Literal n,
                              java.lang.Object argu)
 f0 -> <INTEGER_LITERAL>
       | <FLOATING_POINT_LITERAL>
       | <STRING_LITERAL>
       | <REGEXP_LITERAL>
       | "true"
       | "false"
       | "null"
       | "undefined"
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst

visit

public java.lang.Object visit(Permissions n,
                              java.lang.Object argu)

 f0 -> ( "static" | "const" | "private" | "protected" | "public" )*
 

Specified by:
visit in interface ObjectVisitor
Overrides:
visit in class ObjectDepthFirst