solidity-antlr4
Version:
Solidity Lang Lexer and Parser by official ANTLR4 grammar
34 lines (33 loc) • 1.73 kB
TypeScript
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>[];