UNPKG

@abdullah2993/expression-parser

Version:

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

47 lines (46 loc) 1.69 kB
import { TokenType } from './token'; export declare type Expression = BinaryExpression | UnaryExpression | ValueExpression | FunctionCallExpression | IdentifierExpression | CaseExpression; export interface Node { readonly type: 'BinaryExpression' | 'UnaryExpression' | 'ValueExpression' | 'FunctionCallExpression' | 'IdentifierExpression' | 'CaseExpression'; } export declare class BinaryExpression implements Node { operator: TokenType; left: Expression; right: Expression; constructor(operator: TokenType, left: Expression, right: Expression); readonly type = "BinaryExpression"; } export declare class UnaryExpression implements Node { operator: TokenType; operand: Expression; constructor(operator: TokenType, operand: Expression); readonly type = "UnaryExpression"; } export declare class ValueExpression implements Node { value: any; constructor(value: any); readonly type = "ValueExpression"; } export declare class FunctionCallExpression implements Node { name: string; args: Expression[]; constructor(name: string, args: Expression[]); readonly type = "FunctionCallExpression"; } export declare class IdentifierExpression implements Node { name: string; constructor(name: string); readonly type = "IdentifierExpression"; } export declare class CaseExpression implements Node { conditions: { when: Expression; then: Expression; }[]; last?: Expression | undefined; constructor(conditions: { when: Expression; then: Expression; }[], last?: Expression | undefined); readonly type = "CaseExpression"; }