Esempio n. 1
0
 def visitFunctionDeclaration(
         self, ctx: JavaScriptParser.FunctionDeclarationContext):
     func_decl_node = nodes.FunctionDeclaration(
         ctx, self.visit(ctx.functionBody()),
         nodes.Identifier(ctx,
                          ctx.Identifier().symbol.text))
     if ctx.formalParameterList() is not None:
         for identifier in ctx.formalParameterList().Identifier():
             func_decl_node.params.append(
                 nodes.Identifier(ctx, identifier.symbol.text))
     return func_decl_node
Esempio n. 2
0
 def visitFunctionExpression(
         self, ctx: JavaScriptParser.FunctionExpressionContext):
     func_exp_node = nodes.FunctionExpression(
         ctx, self.visit(ctx.functionBody()))
     if ctx.Identifier() is not None:
         func_exp_node.id = nodes.Identifier(ctx,
                                             ctx.Identifier().symbol.text)
     if ctx.formalParameterList() is not None:
         for arg_id in ctx.formalParameterList().Identifier():
             func_exp_node.params.append(
                 nodes.Identifier(ctx, arg_id.symbol.text))
     return func_exp_node
Esempio n. 3
0
 def visitVariableDeclaration(
         self, ctx: JavaScriptParser.VariableDeclarationContext):
     declarator_node = nodes.VariableDeclarator(
         ctx, nodes.Identifier(ctx,
                               ctx.Identifier().symbol.text))
     if ctx.initialiser() is not None:
         declarator_node.init = self.visit(
             ctx.initialiser().singleExpression())
     return declarator_node
Esempio n. 4
0
 def visitKeyword(self, ctx: JavaScriptParser.KeywordContext):
     return nodes.Identifier(ctx, ctx.getChild(0).symbol.text)
Esempio n. 5
0
 def visitIdentifierName(self, ctx: JavaScriptParser.IdentifierNameContext):
     if ctx.reservedWord() is not None:
         return self.visit(ctx.reservedWord())
     return nodes.Identifier(ctx, ctx.Identifier().symbol.text)
Esempio n. 6
0
 def visitIdentifierExpression(
         self, ctx: JavaScriptParser.IdentifierExpressionContext):
     return nodes.Identifier(ctx, ctx.Identifier().symbol.text)