UNPKG

onelang

Version:

OneLang transpiler framework core

48 lines (47 loc) 1.62 kB
import { OneAst as ast } from "../../One/Ast"; import { Reader } from "./Reader"; import { NodeManager } from "./NodeManager"; declare class Operator { text: string; precedence: number; isBinary: boolean; isRightAssoc: boolean; isPostfix: boolean; constructor(text: string, precedence: number, isBinary: boolean, isRightAssoc: boolean, isPostfix: boolean); } export interface ExpressionParserConfig { unary: string[]; precedenceLevels: { name: string; operators?: string[]; binary?: boolean; }[]; rightAssoc: string[]; aliases: { [alias: string]: string; }; propertyAccessOps: string[]; } export declare class ExpressionParser { reader: Reader; nodeManager: NodeManager; config: ExpressionParserConfig; static defaultConfig(): ExpressionParserConfig; operatorMap: { [name: string]: Operator; }; operators: string[]; prefixPrecedence: number; unaryPrehook: () => ast.Expression; infixPrehook: (left: ast.Expression) => ast.Expression; constructor(reader: Reader, nodeManager?: NodeManager, config?: ExpressionParserConfig); reconfigure(): void; parseMapLiteral(keySeparator?: string, startToken?: string, endToken?: string): ast.MapLiteral; parseArrayLiteral(startToken?: string, endToken?: string): ast.ArrayLiteral; parseLeft(required?: boolean): ast.Expression; parseOperator(): Operator; parseCallArguments(): ast.Expression[]; addNode(node: ast.INode, start: number): void; parse(precedence?: number, required?: boolean): ast.Expression; } export {};