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