UNPKG

@mojir/lits

Version:

Lits is a Lisp dialect implemented in TypeScript

50 lines (49 loc) 1.88 kB
import type { CondNode } from '../builtin/specialExpressions/cond'; import type { FnNode, FunctionNode } from '../builtin/specialExpressions/functions'; import type { IfNode } from '../builtin/specialExpressions/if'; import type { SwitchNode } from '../builtin/specialExpressions/switch'; import type { UnlessNode } from '../builtin/specialExpressions/unless'; import type { ReservedSymbolToken, SymbolToken } from '../tokenizer/token'; import type { TokenStream } from '../tokenizer/tokenize'; import { type BindingTarget, type Node, type ParseState } from './types'; export declare class Parser { private readonly tokenStream; private parseState; constructor(tokenStream: TokenStream, parseState: ParseState); private peek; private peekAhead; private advance; parse(): Node[]; private parseExpression; private parseOperand; private parseOperandPart; private parseObject; private parseArray; private parseFunctionCall; parseLambdaFunction(): FnNode | null; parseFunctionArguments(): BindingTarget[]; private parseShorthandLamdaFunction; private parseOptionalDefaulValue; private parseBindingTarget; private parseLet; private parseDo; private parseLoop; private parseTry; private parseForOrDoseq; private parseForLoopBinding; private parseBinding; parseIfOrUnless(token: SymbolToken): IfNode | UnlessNode; parseCond(token: SymbolToken): CondNode; parseSwitch(token: SymbolToken): SwitchNode; parseFunction(token: ReservedSymbolToken<'function'>): FunctionNode; private isAtEnd; private isAtExpressionEnd; private parseExport; private stringToSymbolNode; stringFromQuotedSymbol(value: string): string; private parseSymbol; private parseReservedSymbol; private parseNumber; private parseString; private parseRegexpShorthand; }