UNPKG

solidity-antlr4

Version:

Solidity Lang Lexer and Parser by official ANTLR4 grammar

68 lines (67 loc) 3.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ReceiveFunctionDefinition = exports.FunctionDefinition = exports.FallbackFunctionDefinition = exports.ConstructorDefinition = exports.BaseFunctionDefinition = void 0; var _base = require("../base.cjs"); var _antlr = require("../../antlr4/index.cjs"); class BaseFunctionDefinition extends _base.BaseNode { type = "FunctionDefinition"; name = null; functionKind = "function"; override = null; virtual = false; visibility = null; stateMutability = null; modifiers = null; parameters = null; returnParameters = null; body = null; constructor(ctx, visitor) { super(ctx, visitor); if (ctx instanceof _antlr.FunctionTypeNameContext) { this.functionKind = "function"; this.visibility = ctx.visibility(0)?.getText() ?? null; this.stateMutability = ctx.stateMutability(0)?.getText() ?? null; this.parameters = ctx._arguments?.accept(visitor) ?? null; this.returnParameters = ctx._returnParameters?.accept(visitor) ?? null; } else { this.modifiers = ctx.modifierInvocation().map(modifier => modifier.accept(visitor)); this.body = ctx.block()?.accept(visitor) ?? null; if (ctx instanceof _antlr.ConstructorDefinitionContext) { this.functionKind = "constructor"; this.visibility = ctx.Internal(0) ? "internal" : ctx.Public(0) ? "public" : null; this.stateMutability = ctx.Payable(0) ? "payable" : null; this.parameters = ctx._arguments?.accept(visitor) ?? null; this.returnParameters = null; } else { this.virtual = !!ctx.Virtual().length; const overrideSpecifier = ctx.overrideSpecifier(0); this.override = overrideSpecifier ? overrideSpecifier.accept(visitor) : null; if (ctx instanceof _antlr.FallbackFunctionDefinitionContext) { this.functionKind = "fallback"; this.visibility = ctx.External(0) ? "external" : null; this.stateMutability = ctx.stateMutability(0)?.getText() ?? null; this.parameters = ctx.parameterList().map(parameterList => parameterList.accept(visitor)); this.returnParameters = ctx._returnParameters?.accept(visitor) ?? null; } else if (ctx instanceof _antlr.ReceiveFunctionDefinitionContext) { this.functionKind = "receive"; this.visibility = ctx.External() ? "external" : null; this.stateMutability = ctx.Payable() ? "payable" : null; } else { this.functionKind = "function"; this.name = ctx.identifier()?.accept(visitor) ?? null; this.visibility = ctx.visibility(0)?.getText() ?? null; this.stateMutability = ctx.stateMutability(0)?.getText() ?? null; this.parameters = ctx._arguments?.accept(visitor) ?? null; this.returnParameters = ctx._returnParameters?.accept(visitor) ?? null; } } } } } exports.BaseFunctionDefinition = BaseFunctionDefinition; class FunctionDefinition extends BaseFunctionDefinition { type = "FunctionDefinition"; } exports.ReceiveFunctionDefinition = exports.FallbackFunctionDefinition = exports.ConstructorDefinition = exports.FunctionDefinition = FunctionDefinition;