Пример #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
Пример #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
Пример #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
Пример #4
0
 def visitKeyword(self, ctx: JavaScriptParser.KeywordContext):
     return nodes.Identifier(ctx, ctx.getChild(0).symbol.text)
Пример #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)
Пример #6
0
 def visitIdentifierExpression(
         self, ctx: JavaScriptParser.IdentifierExpressionContext):
     return nodes.Identifier(ctx, ctx.Identifier().symbol.text)