|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectoscript.compiler.CompilerVisitor
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.
Field Summary |
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 |
public void visit(NodeList n)
visit
in interface Visitor
public void visit(NodeListOptional n)
visit
in interface Visitor
public void visit(NodeOptional n)
visit
in interface Visitor
public void visit(NodeSequence n)
visit
in interface Visitor
public void visit(NodeToken n)
visit
in interface Visitor
public void visit(ProgramFile n)
f0 -> ( <UNIX_SELF_EXECUTABLE_COMMENT> )? f1 -> Program(false) f2 -> <EOF>
visit
in interface Visitor
public void visit(Program n)
f0 -> ( EvaluationUnit() )*
visit
in interface Visitor
public void visit(EvaluationUnit n)
f0 -> ScopeBlock() | VariableDeclarationBlock() | FunctionDeclaration() | TryStatement() | ForLoopStatement() | WhileLoopStatement() | ConditionalStatement() | SynchronizedStatement() | ReturnStatement() | BreakStatement() | ContinueStatement() | ExpressionBlock() | ThrowBlock() | ImportBlock() | MixinBlock() | EvalBlock()
visit
in interface Visitor
public void visit(ScopeBlock n)
f0 -> "{" f1 -> Program() f2 -> "}"
visit
in interface Visitor
public void visit(VariableDeclarationBlock n)
f0 -> VariableDeclaration() f1 -> ";"
visit
in interface Visitor
public void visit(ExpressionBlock n)
f0 -> Expression() f1 -> ";"
visit
in interface Visitor
public void visit(ThrowBlock n)
f0 -> "throw" f1 -> Expression() f2 -> ";"
visit
in interface Visitor
public void visit(ImportBlock n)
f0 -> "import" f1 -> Expression() f2 -> ";"
visit
in interface Visitor
public void visit(MixinBlock n)
f0 -> "mixin" f1 -> Expression() f2 -> ";"
visit
in interface Visitor
public void visit(EvalBlock n)
f0 -> "eval" f1 -> Expression() f2 -> ";"
visit
in interface Visitor
public void visit(VariableDeclaration n)
f0 -> Permissions() f1 -> "var" f2 -> <IDENTIFIER> f3 -> ( "=" Expression() )?
visit
in interface Visitor
public void visit(FunctionDeclaration n)
f0 -> Permissions() f1 -> "function" f2 -> <IDENTIFIER> f3 -> "(" f4 -> ( Arglist() )? f5 -> ")" f6 -> ( "extends" PrimaryExpressionWithTrailingFxnCallExpList() FunctionCallExpressionList() )? f7 -> "{" f8 -> Program() f9 -> "}"
visit
in interface Visitor
public void visit(Arglist n)
f0 -> Permissions() f1 -> <IDENTIFIER> f2 -> ( "," Permissions() <IDENTIFIER> )* f3 -> ( "..." )?
visit
in interface Visitor
public void visit(TryStatement n)
f0 -> "try" f1 -> EvaluationUnit() f2 -> ( "catch" "(" Expression() <IDENTIFIER> ")" EvaluationUnit() )* f3 -> ( "catch" "(" <IDENTIFIER> ")" EvaluationUnit() )? f4 -> ( "finally" EvaluationUnit() )?
visit
in interface Visitor
public void visit(ForLoopStatement n)
f0 -> "for" f1 -> "(" f2 -> ( PreLoopStatement() )? f3 -> ";" f4 -> ( Expression() )? f5 -> ";" f6 -> ( Expression() )? f7 -> ")" f8 -> EvaluationUnit()
visit
in interface Visitor
public void visit(CollectionForLoopStatement n)
f0 -> "for" f1 -> "(" f2 -> PreLoopStatement() f3 -> ":" f4 -> Expression() f5 -> ")" f6 -> EvaluationUnit()
visit
in interface Visitor
public void visit(PreLoopStatement n)
f0 -> VariableDeclaration() | Expression()
visit
in interface Visitor
public void visit(WhileLoopStatement n)
f0 -> "while" f1 -> "(" f2 -> Expression() f3 -> ")" f4 -> EvaluationUnit()
visit
in interface Visitor
public void visit(ConditionalStatement n)
f0 -> "if" f1 -> "(" f2 -> Expression() f3 -> ")" f4 -> EvaluationUnit() f5 -> ( "else" EvaluationUnit() )?
visit
in interface Visitor
public void visit(SynchronizedStatement n)
f0 -> "synchronized" f1 -> "(" f2 -> Expression() f3 -> ")" f4 -> EvaluationUnit()
visit
in interface Visitor
public void visit(ReturnStatement n)
f0 -> "return" f1 -> ( Expression() )?
visit
in interface Visitor
public void visit(BreakStatement n)
f0 -> "break" f1 -> ";"
visit
in interface Visitor
public void visit(ContinueStatement n)
f0 -> "continue" f1 -> ";"
visit
in interface Visitor
public void visit(Expression n)
Value.NULL
.
f0 -> AssignmentExpression() f1 -> ( "," AssignmentExpression() )*
visit
in interface Visitor
public void visit(FunctionCallExpressionList n)
f0 -> "(" f1 -> ( FunctionCallExpressionListBody() )? f2 -> ")"
visit
in interface Visitor
public void visit(FunctionCallExpressionListBody n)
f0 -> AssignmentExpression() f1 -> ( "," AssignmentExpression() )*
visit
in interface Visitor
public void visit(AssignmentExpression n)
f0 -> ConditionalExpression() f1 -> ( ( "=" | "+=" | "-=" | "*=" | "/=" | "%=" | ">>=" | "<<=" | ">>>=" | "&=" | "^=" | "|=" ) ConditionalExpression() )*
visit
in interface Visitor
public void visit(ConditionalExpression n)
f0 -> LogicalOrExpression() f1 -> ( "?" LogicalOrExpression() ":" LogicalOrExpression() )?
visit
in interface Visitor
public void visit(LogicalOrExpression n)
f0 -> LogicalAndExpression() f1 -> ( "||" LogicalAndExpression() )*
visit
in interface Visitor
public void visit(LogicalAndExpression n)
f0 -> BitwiseOrExpression() f1 -> ( "&&" BitwiseOrExpression() )*
visit
in interface Visitor
public void visit(BitwiseOrExpression n)
f0 -> BitwiseXorExpression() f1 -> ( "|" BitwiseXorExpression() )*
visit
in interface Visitor
public void visit(BitwiseXorExpression n)
f0 -> BitwiseAndExpression() f1 -> ( "^" BitwiseAndExpression() )*
visit
in interface Visitor
public void visit(BitwiseAndExpression n)
f0 -> EqualityExpression() f1 -> ( "&" EqualityExpression() )*
visit
in interface Visitor
public void visit(EqualityExpression n)
f0 -> RelationalExpression() f1 -> ( ( "==" | "!=" ) RelationalExpression() )*
visit
in interface Visitor
public void visit(RelationalExpression n)
f0 -> ShiftExpression() f1 -> ( ( "<" | ">" | ">=" | "<=" | "instanceof" ) ShiftExpression() )*
visit
in interface Visitor
public void visit(ShiftExpression n)
f0 -> AdditiveExpression() f1 -> ( ( "<<" | ">>" | ">>>" ) AdditiveExpression() )*
visit
in interface Visitor
public void visit(AdditiveExpression n)
f0 -> MultiplicativeExpression() f1 -> ( ( "+" | "-" ) MultiplicativeExpression() )*
visit
in interface Visitor
public void visit(MultiplicativeExpression n)
f0 -> UnaryExpression() f1 -> ( ( "*" | "/" | "%" ) UnaryExpression() )*
visit
in interface Visitor
public void visit(UnaryExpression n)
f0 -> ( ( "++" | "--" | "+" | "-" | "~" | "!" ) )? f1 -> PostfixExpression()
visit
in interface Visitor
public void visit(PostfixExpression n)
f0 -> TypeExpression() f1 -> ( "++" | "--" )?
visit
in interface Visitor
public void visit(TypeExpression n)
f0 -> AllocationExpression() | CastExpression() | PrimaryExpression()
visit
in interface Visitor
public void visit(AllocationExpression n)
f0 -> "new" f1 -> PrimaryExpressionWithTrailingFxnCallExpList() f2 -> FunctionCallExpressionList()
visit
in interface Visitor
public void visit(CastExpression n)
f0 -> "(" f1 -> PrimaryExpressionNotFunction() f2 -> ")" f3 -> PrimaryExpression()
visit
in interface Visitor
public void visit(PrimaryExpression n)
f0 -> PrimaryPrefix() f1 -> ( PrimaryPostfix() )*
visit
in interface Visitor
public void visit(PrimaryExpressionNotFunction n)
f0 -> PrimaryPrefix() f1 -> ( PrimaryPostfix() )*
visit
in interface Visitor
public void visit(PrimaryExpressionWithTrailingFxnCallExpList n)
f0 -> PrimaryPrefix() f1 -> ( PrimaryPostfixWithTrailingFxnCallExpList() )*
visit
in interface Visitor
public void visit(PrimaryPrefix n)
f0 -> PrimaryPrefixNotFunction() | FunctionPrimaryPrefix() | ShorthandFunctionPrimaryPrefix()
visit
in interface Visitor
public void visit(PrimaryPrefixNotFunction n)
f0 -> ThisPrimaryPrefix() | CalleePrimaryPrefix() | IdentifierPrimaryPrefix() | ParenPrimaryPrefix() | ArrayDeclarationPrimaryPrefix() | Literal()
visit
in interface Visitor
public void visit(ThisPrimaryPrefix n)
f0 -> "this"
visit
in interface Visitor
public void visit(CalleePrimaryPrefix n)
f0 -> "callee"
visit
in interface Visitor
public void visit(IdentifierPrimaryPrefix n)
f0 -> <IDENTIFIER>
visit
in interface Visitor
public void visit(ParenPrimaryPrefix n)
f0 -> "(" f1 -> Expression() f2 -> ")"
visit
in interface Visitor
public void visit(FunctionPrimaryPrefix n)
f0 -> "function" f1 -> "(" f2 -> ( Arglist() )? f3 -> ")" f4 -> ( "extends" PrimaryExpressionWithTrailingFxnCallExpList() FunctionCallExpressionList() )? f5 -> "{" f6 -> Program() f7 -> "}"
visit
in interface Visitor
public void visit(ShorthandFunctionPrimaryPrefix n)
f0 -> "'{" f1 -> Program(true) f2 -> "}"
visit
in interface Visitor
public void visit(ArrayDeclarationPrimaryPrefix n)
f0 -> "[" f1 -> (FunctionCallExpressionListBody())? f2 -> "]"
visit
in interface Visitor
public void visit(PrimaryPostfix n)
f0 -> FunctionCallPrimaryPostfix() | ArraySubscriptPrimaryPostfix() | PropertyIdentifierPrimaryPostfix()
visit
in interface Visitor
public void visit(PrimaryPostfixWithTrailingFxnCallExpList n)
f0 -> FunctionCallPrimaryPostfix() | ArraySubscriptPrimaryPostfix() | PropertyIdentifierPrimaryPostfix()
visit
in interface Visitor
public void visit(FunctionCallPrimaryPostfix n)
f0 -> FunctionCallExpressionList()
visit
in interface Visitor
public void visit(ArraySubscriptPrimaryPostfix n)
f0 -> "[" f1 -> Expression() f2 -> ( ".." Expression() )? f3 -> "]"
visit
in interface Visitor
public void visit(PropertyIdentifierPrimaryPostfix n)
f0 -> "." f1 -> <IDENTIFIER>
visit
in interface Visitor
public void visit(Literal n)
f0 -> <INTEGER_LITERAL> | <FLOATING_POINT_LITERAL> | <STRING_LITERAL> | <REGEXP_LITERAL> | "true" | "false" | "null" | "undefined"
visit
in interface Visitor
public void visit(Permissions n)
f0 -> ( "static" | "const" | "private" | "protected" | "public" )*
visit
in interface Visitor
public java.lang.String toString()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |