UNPKG

create-query-language

Version:

A flexible TypeScript library for parsing and building query languages with support for lexical analysis, AST generation, and token stream processing

24 lines (23 loc) 1.78 kB
import type { BooleanOperatorValues, ComparatorValues } from '../common/constants'; import type { Position } from '../common/types'; import type { ASTNode, BooleanExpression, ComparatorNode, ConditionExpression, Expression, GroupExpression, KeyNode, LogicalOperatorNode, NotExpression, QueryExpression, ValueNode } from './types'; export declare class ASTBuilder { static createQuery(expression: Expression, position: Position): QueryExpression; static createBooleanExpression(operator: LogicalOperatorNode, left: Expression, right: Expression, position: Position): BooleanExpression; static createKey(value: string, position: Position): KeyNode; static createComparator(value: ComparatorValues, position: Position): ComparatorNode; static createOperator(value: BooleanOperatorValues, position: Position): LogicalOperatorNode; static createValue(value: string, position: Position): ValueNode; static createCondition(key: KeyNode, comparator: ComparatorNode, value: ValueNode, spacesAfterKey: number, spacesAfterComparator: number, spacesAfterValue: number, position: Position): ConditionExpression; static createGroup(expression: Expression, position: Position): GroupExpression; static createNotExpression(expression: Expression, position: Position): NotExpression; static createPosition(start: number, end: number, line?: number, column?: number): Position; /** * Merge multiple positions into a single position that spans all of them */ static mergePositions(...positions: Position[]): Position; /** * Traverse the AST and apply a callback to each node */ static traverseAST(node: Expression, parentNode: Expression | null, callback: (node: ASTNode, parentNode: ASTNode | null) => boolean): void; }