UNPKG

solidity-antlr4

Version:

Solidity Lang Lexer and Parser by official ANTLR4 grammar

40 lines (39 loc) 1.86 kB
import { BaseNode } from '../base'; import { ContractDefinitionContext, InterfaceDefinitionContext, LibraryDefinitionContext, SolidityParserVisitor } from '../../antlr4'; import { EnumDefinition } from './enum-definition'; import { ErrorDefinition } from './error-definition'; import { EventDefinition } from './event-definition'; import { FunctionDefinition } from './function-definition'; import { ModifierDefinition } from './modifier-definition'; import { StructDefinition } from './struct-definition'; import { UserDefinedValueTypeDefinition } from './user-defined-value-type-definition'; import { UsingDirective, InheritanceSpecifier } from '../meta'; import { VariableDeclaration } from './variable-declaration'; import { Identifier } from '../expression'; type ContractKind = 'contract' | 'interface' | 'library'; type ContractDefinitionNodes = EnumDefinition | ErrorDefinition | EventDefinition | FunctionDefinition | ModifierDefinition | StructDefinition | UserDefinedValueTypeDefinition | UsingDirective | VariableDeclaration; export declare class ContractDefinition extends BaseNode { type: "ContractDefinition"; /** * The contract name */ name: Identifier; /** * Type of contract declaration, e.g. `contract`, `library` or `interface`. */ contractKind: ContractKind; /** * Is `true` if contract is declared as an abstract * (using `abstract` keyword since Solidity 0.6). * * Is `false` otherwise. */ abstract: boolean; /** * Base contracts */ baseContracts: InheritanceSpecifier[]; nodes: ContractDefinitionNodes[]; constructor(ctx: ContractDefinitionContext | InterfaceDefinitionContext | LibraryDefinitionContext, visitor: SolidityParserVisitor<any>); } export { ContractDefinition as InterfaceDefinition, ContractDefinition as LibraryDefinition };