UNPKG

@valraiso-esf/expression-parser

Version:

An expression evaluator written in typescript with the goal to support SQL like WHERE clauses.

38 lines (37 loc) 1.13 kB
import { Expression } from './ast'; import { Tokenizer } from './lexer'; import { TokenType } from './token'; export declare type PrecedenceMap = { [key in TokenType]?: number; }; export declare class Parser { private lexer; private precedenceMap; private currentToken; private peekToken; get currentPrecedence(): number; get peekPrecedence(): number; private prefixParsers; private infixParsers; constructor(lexer: Tokenizer, precedenceMap?: PrecedenceMap); parse(): Expression; private parseExpression; private nextToken; private currentTokenIs; private peekTokenIs; private expectPeekToken; private parseIdentifier; private parseNumber; private parseString; private parseBoolean; private parseGroupedExpression; private parseInfixExpression; private parseNotExpression; private parseInExpression; private parseIsExpression; private parseBetweenExpression; private parseCallExpression; private parseCommaExpression; private parseCaseExpression; } export declare function parse(expression: string): Expression;