solidity-antlr4
Version:
Solidity Lang Lexer and Parser by official ANTLR4 grammar
125 lines (124 loc) • 8.56 kB
JavaScript
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();