@odata/parser
Version:
OData(V4) Parser
30 lines (29 loc) • 730 B
TypeScript
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;