UNPKG

solidity-antlr4

Version:

Solidity Lang Lexer and Parser by official ANTLR4 grammar

125 lines (124 loc) 8.56 kB
import * as parser from "../antlr4/index.js"; import * as ast from "./index.js"; export class SolidityASTBuilder extends parser.SolidityParserVisitor { visitSourceUnit = (ctx) => new ast.SourceUnit(ctx, this); visitPragmaDirective = (ctx) => new ast.PragmaDirective(ctx, this); visitImportDirective = (ctx) => new ast.ImportDirective(ctx, this); visitImportAliases = (ctx) => new ast.ImportAliases(ctx, this); visitPath = (ctx) => new ast.Path(ctx, this); visitSymbolAliases = (ctx) => new ast.SymbolAliases(ctx, this); visitContractDefinition = (ctx) => new ast.ContractDefinition(ctx, this); visitInterfaceDefinition = (ctx) => new ast.InterfaceDefinition(ctx, this); visitLibraryDefinition = (ctx) => new ast.LibraryDefinition(ctx, this); visitInheritanceSpecifierList = (ctx) => new ast.InheritanceSpecifierList(ctx, this); visitInheritanceSpecifier = (ctx) => new ast.InheritanceSpecifier(ctx, this); visitContractBodyElement = (ctx) => new ast.ContractBodyElement(ctx, this); visitNamedArgument = (ctx) => new ast.NamedArgument(ctx, this); visitCallArgumentList = (ctx) => new ast.CallArgumentList(ctx, this); visitIdentifierPath = (ctx) => new ast.IdentifierPath(ctx, this); visitModifierInvocation = (ctx) => new ast.ModifierInvocation(ctx, this); visitVisibility = (ctx) => new ast.Visibility(ctx, this); visitParameterList = (ctx) => new ast.ParameterList(ctx, this); visitParameterDeclaration = (ctx) => new ast.ParameterDeclaration(ctx, this); visitConstructorDefinition = (ctx) => new ast.ConstructorDefinition(ctx, this); visitStateMutability = (ctx) => new ast.StateMutability(ctx, this); visitOverrideSpecifier = (ctx) => new ast.OverrideSpecifier(ctx, this); visitFunctionDefinition = (ctx) => new ast.FunctionDefinition(ctx, this); visitModifierDefinition = (ctx) => new ast.ModifierDefinition(ctx, this); visitFallbackFunctionDefinition = (ctx) => new ast.FallbackFunctionDefinition(ctx, this); visitReceiveFunctionDefinition = (ctx) => new ast.ReceiveFunctionDefinition(ctx, this); visitStructDefinition = (ctx) => new ast.StructDefinition(ctx, this); visitStructMember = (ctx) => new ast.StructMember(ctx, this); visitEnumDefinition = (ctx) => new ast.EnumDefinition(ctx, this); visitUserDefinedValueTypeDefinition = (ctx) => new ast.UserDefinedValueTypeDefinition(ctx, this); visitStateVariableDeclaration = (ctx) => new ast.StateVariableDeclaration(ctx, this); visitConstantVariableDeclaration = (ctx) => new ast.ConstantVariableDeclaration(ctx, this); visitEventParameter = (ctx) => new ast.EventParameter(ctx, this); visitEventDefinition = (ctx) => new ast.EventDefinition(ctx, this); visitErrorParameter = (ctx) => new ast.ErrorParameter(ctx, this); visitErrorDefinition = (ctx) => new ast.ErrorDefinition(ctx, this); visitUserDefinableOperator = (ctx) => new ast.UserDefinableOperator(ctx, this); visitUsingAliases = (ctx) => new ast.UsingAliases(ctx, this); visitUsingDirective = (ctx) => new ast.UsingDirective(ctx, this); visitTypeName = (ctx) => new ast.TypeName(ctx, this); visitElementaryTypeName = (ctx) => new ast.ElementaryTypeName(ctx, this); visitFunctionTypeName = (ctx) => new ast.FunctionTypeName(ctx, this); visitVariableDeclaration = (ctx) => new ast.VariableDeclaration(ctx, this); visitDataLocation = (ctx) => new ast.DataLocation(ctx, this); visitExpression = (ctx) => new ast.Expression(ctx, this); visitAssignOp = (ctx) => new ast.AssignOp(ctx, this); visitTupleExpression = (ctx) => new ast.TupleExpression(ctx, this); visitInlineArrayExpression = (ctx) => new ast.InlineArrayExpression(ctx, this); visitIdentifier = (ctx) => new ast.Identifier(ctx, this); visitLiteral = (ctx) => new ast.Literal(ctx, this); visitLiteralWithSubDenomination = (ctx) => new ast.LiteralWithSubDenomination(ctx, this); visitBooleanLiteral = (ctx) => new ast.BooleanLiteral(ctx, this); visitStringLiteral = (ctx) => new ast.StringLiteral(ctx, this); visitHexStringLiteral = (ctx) => new ast.HexStringLiteral(ctx, this); visitUnicodeStringLiteral = (ctx) => new ast.UnicodeStringLiteral(ctx, this); visitNumberLiteral = (ctx) => new ast.NumberLiteral(ctx, this); visitBlock = (ctx) => new ast.Block(ctx, this); visitUncheckedBlock = (ctx) => new ast.UncheckedBlock(ctx, this); visitStatement = (ctx) => new ast.Statement(ctx, this); visitSimpleStatement = (ctx) => new ast.SimpleStatement(ctx, this); visitIfStatement = (ctx) => new ast.IfStatement(ctx, this); visitForStatement = (ctx) => new ast.ForStatement(ctx, this); visitWhileStatement = (ctx) => new ast.WhileStatement(ctx, this); visitDoWhileStatement = (ctx) => new ast.DoWhileStatement(ctx, this); visitContinueStatement = (ctx) => new ast.ContinueStatement(ctx, this); visitBreakStatement = (ctx) => new ast.BreakStatement(ctx, this); visitTryStatement = (ctx) => new ast.TryStatement(ctx, this); visitCatchClause = (ctx) => new ast.CatchClause(ctx, this); visitReturnStatement = (ctx) => new ast.ReturnStatement(ctx, this); visitEmitStatement = (ctx) => new ast.EmitStatement(ctx, this); visitRevertStatement = (ctx) => new ast.RevertStatement(ctx, this); visitAssemblyStatement = (ctx) => new ast.AssemblyStatement(ctx, this); visitAssemblyFlags = (ctx) => new ast.AssemblyFlags(ctx, this); visitVariableDeclarationList = (ctx) => new ast.VariableDeclarationList(ctx, this); visitVariableDeclarationTuple = (ctx) => new ast.VariableDeclarationTuple(ctx, this); visitVariableDeclarationStatement = (ctx) => new ast.VariableDeclarationStatement(ctx, this); visitExpressionStatement = (ctx) => new ast.ExpressionStatement(ctx, this); visitMappingType = (ctx) => new ast.MappingType(ctx, this); visitMappingKeyType = (ctx) => new ast.MappingKeyType(ctx, this); visitMemberAccess = (ctx) => new ast.MemberAccess(ctx, this); visitYulStatement = (ctx) => new ast.YulStatement(ctx, this); visitYulBlock = (ctx) => new ast.YulBlock(ctx, this); visitYulVariableDeclaration = (ctx) => new ast.YulVariableDeclaration(ctx, this); visitYulAssignment = (ctx) => new ast.YulAssignment(ctx, this); visitYulIfStatement = (ctx) => new ast.YulIfStatement(ctx, this); visitYulForStatement = (ctx) => new ast.YulForStatement(ctx, this); visitYulSwitchCase = (ctx) => new ast.YulSwitchCase(ctx, this); visitYulSwitchStatement = (ctx) => new ast.YulSwitchStatement(ctx, this); visitYulFunctionDefinition = (ctx) => new ast.YulFunctionDefinition(ctx, this); visitYulPath = (ctx) => new ast.YulPath(ctx, this); visitYulFunctionCall = (ctx) => new ast.YulFunctionCall(ctx, this); visitYulBoolean = (ctx) => new ast.YulBoolean(ctx, this); visitYulLiteral = (ctx) => new ast.YulLiteral(ctx, this); visitYulExpression = (ctx) => new ast.YulExpression(ctx, this); visitUnaryPrefixOperation = (ctx) => new ast.UnaryPrefixOperation(ctx, this); visitPrimaryExpression = (ctx) => new ast.PrimaryExpression(ctx, this); visitOrderComparison = (ctx) => new ast.OrderComparison(ctx, this); visitConditional = (ctx) => new ast.Conditional(ctx, this); visitPayableConversion = (ctx) => new ast.PayableConversion(ctx, this); visitAssignment = (ctx) => new ast.Assignment(ctx, this); visitUnarySuffixOperation = (ctx) => new ast.UnarySuffixOperation(ctx, this); visitShiftOperation = (ctx) => new ast.ShiftOperation(ctx, this); visitBitAndOperation = (ctx) => new ast.BitAndOperation(ctx, this); visitFunctionCall = (ctx) => new ast.FunctionCall(ctx, this); visitIndexRangeAccess = (ctx) => new ast.IndexRangeAccess(ctx, this); visitIndexAccess = (ctx) => new ast.IndexAccess(ctx, this); visitAddSubOperation = (ctx) => new ast.AddSubOperation(ctx, this); visitBitOrOperation = (ctx) => new ast.BitOrOperation(ctx, this); visitExpOperation = (ctx) => new ast.ExpOperation(ctx, this); visitAndOperation = (ctx) => new ast.AndOperation(ctx, this); visitInlineArray = (ctx) => new ast.InlineArray(ctx, this); visitOrOperation = (ctx) => new ast.OrOperation(ctx, this); visitMulDivModOperation = (ctx) => new ast.MulDivModOperation(ctx, this); visitFunctionCallOptions = (ctx) => new ast.FunctionCallOptions(ctx, this); visitNewExpr = (ctx) => new ast.NewExpr(ctx, this); visitBitXorOperation = (ctx) => new ast.BitXorOperation(ctx, this); visitTuple = (ctx) => new ast.Tuple(ctx, this); visitEqualityComparison = (ctx) => new ast.EqualityComparison(ctx, this); visitMetaType = (ctx) => new ast.MetaType(ctx, this); } export const solidityASTBuilder = new SolidityASTBuilder();