solidity-antlr4
Version:
Solidity Lang Lexer and Parser by official ANTLR4 grammar
133 lines (132 loc) • 9.38 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.solidityASTBuilder = exports.SolidityASTBuilder = void 0;
var parser = _interopRequireWildcard(require("../antlr4/index.cjs"));
var ast = _interopRequireWildcard(require("./index.cjs"));
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
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);
}
exports.SolidityASTBuilder = SolidityASTBuilder;
const solidityASTBuilder = exports.solidityASTBuilder = new SolidityASTBuilder();