import { ASTNode } from './ast/ASTNode'; import { Token, TokenName } from './tokenizer'; import { InfixParse } from './parser/InfixParse'; import { PrefixParse } from './parser/PrefixParse'; export declare const prefixParserMap: Map; export declare const infixParserMap: Map; export declare class Parser { tokens: Token[]; currentIndex: number; constructor(tokens: Token[]); parse(): ASTNode; parseFormula(precedence?: number): ASTNode; getPrecedence(): number; /** * 如果匹配就前进到下一个 token */ match(...tokenNames: TokenName[]): boolean; /** * 前进到下一个 token */ next(expectTokenName?: TokenName): Token; peak(): Token | undefined; /** * 参考下一个 token 是什么 */ peakNext(): Token | undefined; }