@abdullah2993/expression-parser
Version:
An expression evaluator written in typescript with the goal to support SQL like WHERE clauses.
35 lines (34 loc) • 1.06 kB
TypeScript
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 parseIsExpression;
private parseBetweenExpression;
private parseCallExpression;
private parseCaseExpression;
}
export declare function parse(expression: string): Expression;