solidity-antlr4
Version:
Solidity Lang Lexer and Parser by official ANTLR4 grammar
40 lines (39 loc) • 1.86 kB
TypeScript
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 };