UNPKG

solidity-antlr4

Version:

Solidity Lang Lexer and Parser by official ANTLR4 grammar

43 lines (42 loc) 2.09 kB
import { SyntaxNode, SyntaxNodeType } from './index'; import { ParseTree, ParserRuleContext, SolidityParserVisitor } from '../antlr4'; export declare class Position { line: number; column: number; static create(line: number, column: number): Position; constructor(line: number, column: number); } export declare class Location { start: Position; end: Position; source?: `${number}:${number}` | undefined; static create(start: Position, end: Position, source?: `${number}:${number}`): Location; constructor(start: Position, end: Position, source?: `${number}:${number}` | undefined); } export type UnionSyntaxNode<T extends Record<string, typeof BaseNode>> = InstanceType<T[keyof T]>; export type UnionSyntaxNodeType<T extends Record<string, typeof BaseNode>> = keyof T; export type LookUp<U extends { type: any; }, T> = U extends infer P ? P extends { type: any; } ? T extends P['type'] ? P : never : never : never; export declare const formatString: (str: string) => string; export declare const isSyntaxNode: <T extends SyntaxNode>(node: any) => node is T; export declare const isSyntaxNodeList: <T extends BaseNodeList<BaseNode>>(node: any) => node is T; export declare const keysInNode: <T extends BaseNode>(node: T) => string[]; export declare abstract class BaseNode { type: SyntaxNodeType; range: [number, number]; location: Location; constructor(ctx: ParserRuleContext, _visitor: SolidityParserVisitor<any>); } export declare abstract class BaseNodeList<T extends any = BaseNode> extends Array<T> { constructor(ctxList: (ParseTree | any)[], visitor: SolidityParserVisitor<any>, formatter?: (item: ParseTree) => T); } export declare abstract class BaseNodeString extends BaseNode { name: string | any; constructor(ctx: ParserRuleContext, visitor: SolidityParserVisitor<any>); } export declare abstract class BaseNodeUnion<T extends BaseNode | BaseNodeList<BaseNode> = BaseNode> extends BaseNode { constructor(_ctx: ParserRuleContext, list: (ParseTree | null)[] | null, visitor: SolidityParserVisitor<any>); }