UNPKG

solidity-antlr4

Version:

Solidity Lang Lexer and Parser by official ANTLR4 grammar

34 lines (33 loc) 1.73 kB
import { PartialDeep } from 'type-fest'; import { SyntaxNode, SyntaxNodeType } from '../ast'; import { TraversePath } from './traverse'; export interface QueryOptions { queryAll?: boolean; order?: 'asc' | 'desc'; } export declare enum SelectorCombinator { Child = ">", Inside = " " } export type SelectorFilter = '*' | SyntaxNodeType | PartialDeep<SyntaxNode>; export declare class Selector { filter: PartialDeep<SyntaxNode>; _offset?: number | undefined; static create: (filter: SelectorFilter, _offset?: number) => Selector; next?: Selector; combinator?: SelectorCombinator; private constructor(); _prev?: Selector; _getStartSelector: () => Selector; private chain; child: (f: SelectorFilter, _offset?: number) => Selector; inside: (f: SelectorFilter, _offset?: number) => Selector; /** @inner */ query: <T extends SyntaxNode = SyntaxNode>(node: SyntaxNode | null, options?: QueryOptions) => Record<string, TraversePath<T>>; /** @inner */ recursion: <T extends SyntaxNode = SyntaxNode>(path: TraversePath<SyntaxNode>, options?: QueryOptions) => Record<string, TraversePath<T>>; } export declare const createSelector: (filter: SelectorFilter, _offset?: number) => Selector; export declare const query: <T extends SyntaxNode = SyntaxNode>(ast: SyntaxNode | null, selector: Selector | Selector[], options?: QueryOptions) => TraversePath<T>[]; export declare const querySelector: <T extends SyntaxNode = SyntaxNode>(ast: SyntaxNode | null, selector: Selector | Selector[]) => TraversePath<T> | null; export declare const querySelectorAll: <T extends SyntaxNode = SyntaxNode>(ast: SyntaxNode | null, selector: Selector | Selector[]) => TraversePath<T>[];