oscript.compiler
Class CompilerVisitor

java.lang.Object
  extended byoscript.compiler.CompilerVisitor
All Implemented Interfaces:
OscriptParserConstants, Visitor

public class CompilerVisitor
extends java.lang.Object
implements Visitor, OscriptParserConstants

The CompilerVisitor is the compiler, which compiles functions to an instance of CompiledNodeEvaluator.

Some assumptions are made with respect to tracking the info needed to generate useful stack traces, for example that the entire function is defined within the same file.

Version:
1.84
Author:
Rob Clark (rob@ti.com)

Field Summary
 
Fields inherited from interface oscript.parser.OscriptParserConstants
ANDASSIGN, ASSIGN, BANG, BIT_AND, BIT_OR, BREAK, CALLEE, CATCH, COLON, COMMA, CONST, CONTINUE, DECIMAL_LITERAL, DECR, DEFAULT, DIGIT, DO, DOT, DOTDOTDOT, ELSE, EOF, EQ, ESCAPE_SEQUENCE, EVAL, EXPECTING_JAVADOC_TAG_ARG, EXPONENT, EXTENDS, FALSE, FINALLY, FLOATING_POINT_LITERAL, FOR, FORMAL_COMMENT, FUNCTION, GE, GT, HEX_LITERAL, HOOK, IDENTIFIER, IF, IMPORT, IN_FORMAL_COMMENT, IN_MULTI_LINE_COMMENT, IN_SINGLE_LINE_COMMENT, IN_UNIX_SELF_EXECUTABLE_COMMENT, INCR, INSTANCEOF, INTEGER_LITERAL, JAVADOC_TAG, JAVADOC_TAG_ARG, JAVADOC_TAG_WITH_ARG, LBRACE, LBRACKET, LE, LETTER, LFXNBRACE, LPAREN, LSHIFT, LSHIFTASSIGN, LT, MAYBE_JAVADOC_TAG, MINUS, MINUSASSIGN, MIXIN, MULTI_LINE_COMMENT, NE, NEW, NULL, OCTAL_LITERAL, ORASSIGN, PLUS, PLUSASSIGN, PRIVATE, PROTECTED, PUBLIC, RBRACE, RBRACKET, REGEXP_BODY, REGEXP_ESCAPE_SEQUENCE, REGEXP_FLAG, REGEXP_LITERAL, REM, REMASSIGN, RETURN, RPAREN, RSIGNEDSHIFT, RSIGNEDSHIFTASSIGN, RUNSIGNEDSHIFT, RUNSIGNEDSHIFTASSIGN, SC_AND, SC_OR, SEMICOLON, SINGLE_LINE_COMMENT, SLASH, SLASHASSIGN, STAR, STARASSIGN, STATIC, STRING_LITERAL, SYNCHRONIZED, THIS, THROW, TILDE, tokenImage, TRUE, TRY, UNDEFINED, UNIX_SELF_EXECUTABLE_COMMENT, VAR, VOID, WHILE, XOR, XORASSIGN
 
Method Summary
 java.lang.String toString()
           
 void visit(AdditiveExpression n)
           f0 -> MultiplicativeExpression() f1 -> ( ( "+" | "-" ) MultiplicativeExpression() )*
 void visit(AllocationExpression n)
           f0 -> "new" f1 -> PrimaryExpressionWithTrailingFxnCallExpList() f2 -> FunctionCallExpressionList()
 void visit(Arglist n)
           f0 -> Permissions() f1 -> <IDENTIFIER> f2 -> ( "," Permissions() <IDENTIFIER> )* f3 -> ( "..." )?
 void visit(ArrayDeclarationPrimaryPrefix n)
           f0 -> "[" f1 -> (FunctionCallExpressionListBody())? f2 -> "]"
 void visit(ArraySubscriptPrimaryPostfix n)
          
 void visit(AssignmentExpression n)
           f0 -> ConditionalExpression() f1 -> ( ( "=" | "+=" | "-=" | "*=" | "/=" | "%=" | ">>=" | "<<=" | ">>>=" | "&=" | "^=" | "|=" ) ConditionalExpression() )*
 void visit(BitwiseAndExpression n)
           f0 -> EqualityExpression() f1 -> ( "&" EqualityExpression() )*
 void visit(BitwiseOrExpression n)
           f0 -> BitwiseXorExpression() f1 -> ( "|" BitwiseXorExpression() )*
 void visit(BitwiseXorExpression n)
           f0 -> BitwiseAndExpression() f1 -> ( "^" BitwiseAndExpression() )*
 void visit(BreakStatement n)
           f0 -> "break" f1 -> ";"
 void visit(CalleePrimaryPrefix n)
           f0 -> "callee"
 void visit(CastExpression n)
           f0 -> "(" f1 -> PrimaryExpressionNotFunction() f2 -> ")" f3 -> PrimaryExpression()
 void visit(CollectionForLoopStatement n)
           f0 -> "for" f1 -> "(" f2 -> PreLoopStatement() f3 -> ":" f4 -> Expression() f5 -> ")" f6 -> EvaluationUnit()
 void visit(ConditionalExpression n)
           f0 -> LogicalOrExpression() f1 -> ( "?" LogicalOrExpression() ":" LogicalOrExpression() )?
 void visit(ConditionalStatement n)
           f0 -> "if" f1 -> "(" f2 -> Expression() f3 -> ")" f4 -> EvaluationUnit() f5 -> ( "else" EvaluationUnit() )?
 void visit(ContinueStatement n)
           f0 -> "continue" f1 -> ";"
 void visit(EqualityExpression n)
           f0 -> RelationalExpression() f1 -> ( ( "==" | "!=" ) RelationalExpression() )*
 void visit(EvalBlock n)
           f0 -> "eval" f1 -> Expression() f2 -> ";"
 void visit(EvaluationUnit n)
           f0 -> ScopeBlock() | VariableDeclarationBlock() | FunctionDeclaration() | TryStatement() | ForLoopStatement() | WhileLoopStatement() | ConditionalStatement() | SynchronizedStatement() | ReturnStatement() | BreakStatement() | ContinueStatement() | ExpressionBlock() | ThrowBlock() | ImportBlock() | MixinBlock() | EvalBlock()
 void visit(Expression n)
          Note, Expression always returns a value on the stack, even if that value is Value.NULL.
 void visit(ExpressionBlock n)
           f0 -> Expression() f1 -> ";"
 void visit(ForLoopStatement n)
           f0 -> "for" f1 -> "(" f2 -> ( PreLoopStatement() )? f3 -> ";" f4 -> ( Expression() )? f5 -> ";" f6 -> ( Expression() )? f7 -> ")" f8 -> EvaluationUnit()
 void visit(FunctionCallExpressionList n)
           f0 -> "(" f1 -> ( FunctionCallExpressionListBody() )? f2 -> ")"
 void visit(FunctionCallExpressionListBody n)
           f0 -> AssignmentExpression() f1 -> ( "," AssignmentExpression() )*
 void visit(FunctionCallPrimaryPostfix n)
           f0 -> FunctionCallExpressionList()
 void visit(FunctionDeclaration n)
           f0 -> Permissions() f1 -> "function" f2 -> <IDENTIFIER> f3 -> "(" f4 -> ( Arglist() )? f5 -> ")" f6 -> ( "extends" PrimaryExpressionWithTrailingFxnCallExpList() FunctionCallExpressionList() )? f7 -> "{" f8 -> Program() f9 -> "}"
 void visit(FunctionPrimaryPrefix n)
           f0 -> "function" f1 -> "(" f2 -> ( Arglist() )? f3 -> ")" f4 -> ( "extends" PrimaryExpressionWithTrailingFxnCallExpList() FunctionCallExpressionList() )? f5 -> "{" f6 -> Program() f7 -> "}"
 void visit(IdentifierPrimaryPrefix n)
           f0 -> <IDENTIFIER>
 void visit(ImportBlock n)
           f0 -> "import" f1 -> Expression() f2 -> ";"
 void visit(Literal n)
           f0 -> <INTEGER_LITERAL> | <FLOATING_POINT_LITERAL> | <STRING_LITERAL> | <REGEXP_LITERAL> | "true" | "false" | "null" | "undefined"
 void visit(LogicalAndExpression n)
           f0 -> BitwiseOrExpression() f1 -> ( "&&" BitwiseOrExpression() )*
 void visit(LogicalOrExpression n)
           f0 -> LogicalAndExpression() f1 -> ( "||" LogicalAndExpression() )*
 void visit(MixinBlock n)
           f0 -> "mixin" f1 -> Expression() f2 -> ";"
 void visit(MultiplicativeExpression n)
           f0 -> UnaryExpression() f1 -> ( ( "*" | "/" | "%" ) UnaryExpression() )*
 void visit(NodeList n)
           
 void visit(NodeListOptional n)
           
 void visit(NodeOptional n)
           
 void visit(NodeSequence n)
           
 void visit(NodeToken n)
           
 void visit(ParenPrimaryPrefix n)
           f0 -> "(" f1 -> Expression() f2 -> ")"
 void visit(Permissions n)
           f0 -> ( "static" | "const" | "private" | "protected" | "public" )*
 void visit(PostfixExpression n)
           f0 -> TypeExpression() f1 -> ( "++" | "--" )?
 void visit(PreLoopStatement n)
           f0 -> VariableDeclaration() | Expression()
 void visit(PrimaryExpression n)
           f0 -> PrimaryPrefix() f1 -> ( PrimaryPostfix() )*
 void visit(PrimaryExpressionNotFunction n)
           f0 -> PrimaryPrefix() f1 -> ( PrimaryPostfix() )*
 void visit(PrimaryExpressionWithTrailingFxnCallExpList n)
           f0 -> PrimaryPrefix() f1 -> ( PrimaryPostfixWithTrailingFxnCallExpList() )*
 void visit(PrimaryPostfix n)
           f0 -> FunctionCallPrimaryPostfix() | ArraySubscriptPrimaryPostfix() | PropertyIdentifierPrimaryPostfix()
 void visit(PrimaryPostfixWithTrailingFxnCallExpList n)
           f0 -> FunctionCallPrimaryPostfix() | ArraySubscriptPrimaryPostfix() | PropertyIdentifierPrimaryPostfix()
 void visit(PrimaryPrefix n)
           f0 -> PrimaryPrefixNotFunction() | FunctionPrimaryPrefix() | ShorthandFunctionPrimaryPrefix()
 void visit(PrimaryPrefixNotFunction n)
           f0 -> ThisPrimaryPrefix() | CalleePrimaryPrefix() | IdentifierPrimaryPrefix() | ParenPrimaryPrefix() | ArrayDeclarationPrimaryPrefix() | Literal()
 void visit(Program n)
           f0 -> ( EvaluationUnit() )*
 void visit(ProgramFile n)
           f0 -> ( <UNIX_SELF_EXECUTABLE_COMMENT> )? f1 -> Program(false) f2 -> <EOF>
 void visit(PropertyIdentifierPrimaryPostfix n)
           f0 -> "." f1 -> <IDENTIFIER>
 void visit(RelationalExpression n)
           f0 -> ShiftExpression() f1 -> ( ( "<" | ">" | ">=" | "<=" | "instanceof" ) ShiftExpression() )*
 void visit(ReturnStatement n)
           f0 -> "return" f1 -> ( Expression() )?
 void visit(ScopeBlock n)
           f0 -> "{" f1 -> Program() f2 -> "}"
 void visit(ShiftExpression n)
           f0 -> AdditiveExpression() f1 -> ( ( "<<" | ">>" | ">>>" ) AdditiveExpression() )*
 void visit(ShorthandFunctionPrimaryPrefix n)
           f0 -> "'{" f1 -> Program(true) f2 -> "}"
 void visit(SynchronizedStatement n)
           f0 -> "synchronized" f1 -> "(" f2 -> Expression() f3 -> ")" f4 -> EvaluationUnit()
 void visit(ThisPrimaryPrefix n)
           f0 -> "this"
 void visit(ThrowBlock n)
           f0 -> "throw" f1 -> Expression() f2 -> ";"
 void visit(TryStatement n)
           f0 -> "try" f1 -> EvaluationUnit() f2 -> ( "catch" "(" Expression() <IDENTIFIER> ")" EvaluationUnit() )* f3 -> ( "catch" "(" <IDENTIFIER> ")" EvaluationUnit() )? f4 -> ( "finally" EvaluationUnit() )?
 void visit(TypeExpression n)
           f0 -> AllocationExpression() | CastExpression() | PrimaryExpression()
 void visit(UnaryExpression n)
           f0 -> ( ( "++" | "--" | "+" | "-" | "~" | "!" ) )? f1 -> PostfixExpression()
 void visit(VariableDeclaration n)
           f0 -> Permissions() f1 -> "var" f2 -> <IDENTIFIER> f3 -> ( "=" Expression() )?
 void visit(VariableDeclarationBlock n)
           f0 -> VariableDeclaration() f1 -> ";"
 void visit(WhileLoopStatement n)
           f0 -> "while" f1 -> "(" f2 -> Expression() f3 -> ")" f4 -> EvaluationUnit()
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

visit

public void visit(NodeList n)
Specified by:
visit in interface Visitor

visit

public void visit(NodeListOptional n)
Specified by:
visit in interface Visitor

visit

public void visit(NodeOptional n)
Specified by:
visit in interface Visitor

visit

public void visit(NodeSequence n)
Specified by:
visit in interface Visitor

visit

public void visit(NodeToken n)
Specified by:
visit in interface Visitor

visit

public void visit(ProgramFile n)
 f0 -> ( <UNIX_SELF_EXECUTABLE_COMMENT> )?
 f1 -> Program(false)
 f2 -> <EOF>
 

Specified by:
visit in interface Visitor

visit

public void visit(Program n)
 f0 -> ( EvaluationUnit() )*
 

Specified by:
visit in interface Visitor

visit

public void visit(EvaluationUnit n)
 f0 -> ScopeBlock()
       | VariableDeclarationBlock()
       | FunctionDeclaration()
       | TryStatement()
       | ForLoopStatement()
       | WhileLoopStatement()
       | ConditionalStatement()
       | SynchronizedStatement()
       | ReturnStatement()
       | BreakStatement()
       | ContinueStatement()
       | ExpressionBlock()
       | ThrowBlock()
       | ImportBlock()
       | MixinBlock()
       | EvalBlock()
 

Specified by:
visit in interface Visitor

visit

public void visit(ScopeBlock n)
 f0 -> "{"
 f1 -> Program()
 f2 -> "}"
 

Specified by:
visit in interface Visitor

visit

public void visit(VariableDeclarationBlock n)
 f0 -> VariableDeclaration()
 f1 -> ";"
 

Specified by:
visit in interface Visitor

visit

public void visit(ExpressionBlock n)
 f0 -> Expression()
 f1 -> ";"
 

Specified by:
visit in interface Visitor

visit

public void visit(ThrowBlock n)
 f0 -> "throw"
 f1 -> Expression()
 f2 -> ";"
 

Specified by:
visit in interface Visitor

visit

public void visit(ImportBlock n)
 f0 -> "import"
 f1 -> Expression()
 f2 -> ";"
 

Specified by:
visit in interface Visitor

visit

public void visit(MixinBlock n)
 f0 -> "mixin"
 f1 -> Expression()
 f2 -> ";"
 

Specified by:
visit in interface Visitor

visit

public void visit(EvalBlock n)
 f0 -> "eval"
 f1 -> Expression()
 f2 -> ";"
 

Specified by:
visit in interface Visitor

visit

public void visit(VariableDeclaration n)
 f0 -> Permissions()
 f1 -> "var"
 f2 -> <IDENTIFIER>
 f3 -> ( "=" Expression() )?
 

Specified by:
visit in interface Visitor

visit

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

Specified by:
visit in interface Visitor

visit

public void visit(Arglist n)
 f0 -> Permissions()
 f1 -> <IDENTIFIER>
 f2 -> ( "," Permissions() <IDENTIFIER> )*
 f3 -> ( "..." )?
 

Specified by:
visit in interface Visitor

visit

public void visit(TryStatement n)
 f0 -> "try"
 f1 -> EvaluationUnit()
 f2 -> ( "catch" "(" Expression() <IDENTIFIER> ")" EvaluationUnit() )*
 f3 -> ( "catch" "(" <IDENTIFIER> ")" EvaluationUnit() )?
 f4 -> ( "finally" EvaluationUnit() )?
 

Specified by:
visit in interface Visitor

visit

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

Specified by:
visit in interface Visitor

visit

public void visit(CollectionForLoopStatement n)
 f0 -> "for"
 f1 -> "("
 f2 -> PreLoopStatement()
 f3 -> ":"
 f4 -> Expression()
 f5 -> ")"
 f6 -> EvaluationUnit()
 

Specified by:
visit in interface Visitor

visit

public void visit(PreLoopStatement n)
 f0 -> VariableDeclaration()
       | Expression()
 

Specified by:
visit in interface Visitor

visit

public void visit(WhileLoopStatement n)
 f0 -> "while"
 f1 -> "("
 f2 -> Expression()
 f3 -> ")"
 f4 -> EvaluationUnit()
 

Specified by:
visit in interface Visitor

visit

public void visit(ConditionalStatement n)
 f0 -> "if"
 f1 -> "("
 f2 -> Expression()
 f3 -> ")"
 f4 -> EvaluationUnit()
 f5 -> ( "else" EvaluationUnit() )?
 

Specified by:
visit in interface Visitor

visit

public void visit(SynchronizedStatement n)
 f0 -> "synchronized"
 f1 -> "("
 f2 -> Expression()
 f3 -> ")"
 f4 -> EvaluationUnit()
 

Specified by:
visit in interface Visitor

visit

public void visit(ReturnStatement n)
 f0 -> "return"
 f1 -> ( Expression() )?
 

Specified by:
visit in interface Visitor

visit

public void visit(BreakStatement n)
 f0 -> "break"
 f1 -> ";"
 

Specified by:
visit in interface Visitor

visit

public void visit(ContinueStatement n)
 f0 -> "continue"
 f1 -> ";"
 

Specified by:
visit in interface Visitor

visit

public void visit(Expression n)
Note, Expression always returns a value on the stack, even if that value is Value.NULL.
 f0 -> AssignmentExpression()
 f1 -> ( "," AssignmentExpression() )*
 

Specified by:
visit in interface Visitor

visit

public void visit(FunctionCallExpressionList n)
 f0 -> "("
 f1 -> ( FunctionCallExpressionListBody() )?
 f2 -> ")"
 

Specified by:
visit in interface Visitor

visit

public void visit(FunctionCallExpressionListBody n)
 f0 -> AssignmentExpression()
 f1 -> ( "," AssignmentExpression() )*
 

Specified by:
visit in interface Visitor

visit

public void visit(AssignmentExpression n)
 f0 -> ConditionalExpression()
 f1 -> ( ( "=" | "+=" | "-=" | "*=" | "/=" | "%=" | ">>=" | "<<=" | ">>>=" | "&=" | "^=" | "|=" ) ConditionalExpression() )*
 

Specified by:
visit in interface Visitor

visit

public void visit(ConditionalExpression n)
 f0 -> LogicalOrExpression()
 f1 -> ( "?" LogicalOrExpression() ":" LogicalOrExpression() )?
 

Specified by:
visit in interface Visitor

visit

public void visit(LogicalOrExpression n)
 f0 -> LogicalAndExpression()
 f1 -> ( "||" LogicalAndExpression() )*
 

Specified by:
visit in interface Visitor

visit

public void visit(LogicalAndExpression n)
 f0 -> BitwiseOrExpression()
 f1 -> ( "&&" BitwiseOrExpression() )*
 

Specified by:
visit in interface Visitor

visit

public void visit(BitwiseOrExpression n)
 f0 -> BitwiseXorExpression()
 f1 -> ( "|" BitwiseXorExpression() )*
 

Specified by:
visit in interface Visitor

visit

public void visit(BitwiseXorExpression n)
 f0 -> BitwiseAndExpression()
 f1 -> ( "^" BitwiseAndExpression() )*
 

Specified by:
visit in interface Visitor

visit

public void visit(BitwiseAndExpression n)
 f0 -> EqualityExpression()
 f1 -> ( "&" EqualityExpression() )*
 

Specified by:
visit in interface Visitor

visit

public void visit(EqualityExpression n)
 f0 -> RelationalExpression()
 f1 -> ( ( "==" | "!=" ) RelationalExpression() )*
 

Specified by:
visit in interface Visitor

visit

public void visit(RelationalExpression n)
 f0 -> ShiftExpression()
 f1 -> ( ( "<" | ">" | ">=" | "<=" | "instanceof" ) ShiftExpression() )*
 

Specified by:
visit in interface Visitor

visit

public void visit(ShiftExpression n)
 f0 -> AdditiveExpression()
 f1 -> ( ( "<<" | ">>" | ">>>" ) AdditiveExpression() )*
 

Specified by:
visit in interface Visitor

visit

public void visit(AdditiveExpression n)
 f0 -> MultiplicativeExpression()
 f1 -> ( ( "+" | "-" ) MultiplicativeExpression() )*
 

Specified by:
visit in interface Visitor

visit

public void visit(MultiplicativeExpression n)
 f0 -> UnaryExpression()
 f1 -> ( ( "*" | "/" | "%" ) UnaryExpression() )*
 

Specified by:
visit in interface Visitor

visit

public void visit(UnaryExpression n)
 f0 -> ( ( "++" | "--" | "+" | "-" | "~" | "!" ) )?
 f1 -> PostfixExpression()
 

Specified by:
visit in interface Visitor

visit

public void visit(PostfixExpression n)
 f0 -> TypeExpression()
 f1 -> ( "++" | "--" )?
 

Specified by:
visit in interface Visitor

visit

public void visit(TypeExpression n)
 f0 -> AllocationExpression()
       | CastExpression()
       | PrimaryExpression()
 

Specified by:
visit in interface Visitor

visit

public void visit(AllocationExpression n)
 f0 -> "new"
 f1 -> PrimaryExpressionWithTrailingFxnCallExpList()
 f2 -> FunctionCallExpressionList()
 

Specified by:
visit in interface Visitor

visit

public void visit(CastExpression n)
 f0 -> "("
 f1 -> PrimaryExpressionNotFunction()
 f2 -> ")"
 f3 -> PrimaryExpression()
 

Specified by:
visit in interface Visitor

visit

public void visit(PrimaryExpression n)
 f0 -> PrimaryPrefix()
 f1 -> ( PrimaryPostfix() )*
 

Specified by:
visit in interface Visitor

visit

public void visit(PrimaryExpressionNotFunction n)
 f0 -> PrimaryPrefix()
 f1 -> ( PrimaryPostfix() )*
 

Specified by:
visit in interface Visitor

visit

public void visit(PrimaryExpressionWithTrailingFxnCallExpList n)
 f0 -> PrimaryPrefix()
 f1 -> ( PrimaryPostfixWithTrailingFxnCallExpList() )*
 

Specified by:
visit in interface Visitor

visit

public void visit(PrimaryPrefix n)
 f0 -> PrimaryPrefixNotFunction()
       | FunctionPrimaryPrefix()
       | ShorthandFunctionPrimaryPrefix()
 

Specified by:
visit in interface Visitor

visit

public void visit(PrimaryPrefixNotFunction n)
 f0 -> ThisPrimaryPrefix()
       | CalleePrimaryPrefix()
       | IdentifierPrimaryPrefix()
       | ParenPrimaryPrefix()
       | ArrayDeclarationPrimaryPrefix()
       | Literal()
 

Specified by:
visit in interface Visitor

visit

public void visit(ThisPrimaryPrefix n)
 f0 -> "this"
 

Specified by:
visit in interface Visitor

visit

public void visit(CalleePrimaryPrefix n)
 f0 -> "callee"
 

Specified by:
visit in interface Visitor

visit

public void visit(IdentifierPrimaryPrefix n)
 f0 -> <IDENTIFIER>
 

Specified by:
visit in interface Visitor

visit

public void visit(ParenPrimaryPrefix n)
 f0 -> "("
 f1 -> Expression()
 f2 -> ")"
 

Specified by:
visit in interface Visitor

visit

public void visit(FunctionPrimaryPrefix n)
 f0 -> "function"
 f1 -> "("
 f2 -> ( Arglist() )?
 f3 -> ")"
 f4 -> ( "extends" PrimaryExpressionWithTrailingFxnCallExpList() FunctionCallExpressionList() )?
 f5 -> "{"
 f6 -> Program()
 f7 -> "}"
 

Specified by:
visit in interface Visitor

visit

public void visit(ShorthandFunctionPrimaryPrefix n)
 f0 -> "'{"
 f1 -> Program(true)
 f2 -> "}"
 

Specified by:
visit in interface Visitor

visit

public void visit(ArrayDeclarationPrimaryPrefix n)
 f0 -> "["
 f1 ->   (FunctionCallExpressionListBody())?
 f2 -> "]"
 

Specified by:
visit in interface Visitor

visit

public void visit(PrimaryPostfix n)
 f0 -> FunctionCallPrimaryPostfix()
       | ArraySubscriptPrimaryPostfix()
       | PropertyIdentifierPrimaryPostfix()
 

Specified by:
visit in interface Visitor

visit

public void visit(PrimaryPostfixWithTrailingFxnCallExpList n)
 f0 -> FunctionCallPrimaryPostfix()
       | ArraySubscriptPrimaryPostfix()
       | PropertyIdentifierPrimaryPostfix()
 

Specified by:
visit in interface Visitor

visit

public void visit(FunctionCallPrimaryPostfix n)
 f0 -> FunctionCallExpressionList()
 

Specified by:
visit in interface Visitor

visit

public void visit(ArraySubscriptPrimaryPostfix n)
 
 f0 -> "["
 f1 -> Expression()
 f2 -> ( ".." Expression() )?
 f3 -> "]"
 

Specified by:
visit in interface Visitor

visit

public void visit(PropertyIdentifierPrimaryPostfix n)
 f0 -> "."
 f1 -> <IDENTIFIER>
 

Specified by:
visit in interface Visitor

visit

public void visit(Literal n)
 f0 -> <INTEGER_LITERAL>
       | <FLOATING_POINT_LITERAL>
       | <STRING_LITERAL>
       | <REGEXP_LITERAL>
       | "true"
       | "false"
       | "null"
       | "undefined"
 

Specified by:
visit in interface Visitor

visit

public void visit(Permissions n)
 f0 -> ( "static" | "const" | "private" | "protected" | "public" )*
 

Specified by:
visit in interface Visitor

toString

public java.lang.String toString()