UNPKG

rulescribe

Version:
25 lines (24 loc) 958 B
export declare enum FunctionType { BUILTIN = 0, USER_DEFINED = 1, CLASS_METHOD = 2, UNDEFINED = 3 } export type TokenType = 'NUMBER' | 'FLOAT' | 'STRING' | 'BOOLEAN' | 'IDENTIFIER' | 'PLUS' | 'MINUS' | 'MULTIPLY' | 'DIVIDE' | 'MODULO' | 'EQUALS' | 'NOT_EQUALS' | 'LESS_THAN' | 'GREATER_THAN' | 'LESS_THAN_OR_EQUAL' | 'GREATER_THAN_OR_EQUAL' | 'AND' | 'OR' | 'NOT' | 'LPAREN' | 'RPAREN' | 'COMMA' | 'ASSIGN' | 'RULE' | 'WHEN' | 'IF' | 'THEN' | 'ELSE' | 'END' | 'WHILE' | 'DO' | 'FOR' | 'FROM' | 'TO' | 'STEP' | 'CALL_FUNCTION' | 'FUNCTION' | 'RETURN' | 'NEWLINE' | 'EOF'; export interface Token { type: TokenType; value: string | number | boolean | null; } export type FunctionDefinition<T extends Token[] | Function> = { parameters?: string[]; func: T; thisArg?: any; }; export type RuleDefenition = { condition: Token[]; body: Token[]; }; export interface ILexer { reset(): void; getNextToken(): Token; }