UNPKG

@odata/parser

Version:
30 lines (29 loc) 730 B
import { Token, TokenType } from './lexer'; /** * AST Traverser */ export type Traverser = { [key in TokenType]?: (token: Token, parent?: Token) => void; }; /** * AST Visitor * * @alias Traverser */ export type Visitor = Traverser; /** * Traverse AST with traverser * * @param traverser * @param node */ export declare function traverseAst(traverser: Traverser, node: Token, parent?: Token): void; /** * Traverse AST with traverser (Deep First) * * @param traverser * @param node * @param parent */ export declare function traverseAstDeepFirst(traverser: Traverser, node: Token, parent?: Token): void; export declare function createTraverser(traverser: Traverser, deepFirst?: boolean): (node: Token) => void;