UNPKG

@kstory/core

Version:

Core parser and lexer for KStory interactive fiction language

88 lines 2.46 kB
import { type Token } from './token'; export declare class Lexer { private source; private position; private tokens; private curChar; private curLine; private curColumn; private prevIndent; private isInComment; private isInChoiceText; private isExtendingStr; private lastStringTokenIndex; private stringStartLine; private stringStartColumn; constructor(source: string); getTokens(): Token<unknown>[]; private step; process(): void; private push; private pushAt; private insertTokenAt; private handleCurrentToken; private handleNonCommentTokens; private handleStructuralTokens; private handleErrorIfNeeded; private handleGoto; private handleIdentifier; private handleError; private handleChoice; private handleChoiceTextInline; private handleSection; private handleSectionName; private handleChoiceTag; private handleChoiceText; private handleChoiceTextExtend; private isChoiceTextEnding; private processChoiceTextContent; private handleChoiceTextNewline; private handleChoiceTextComment; private handleChoiceTextMultiComment; private finalizeChoiceText; private handleTag; private handleCall; private handleCallArguments; private getTagName; private getTagValue; private handleString; private handleInlineCall; private isInlineCall; private handleNewReplica; private handleExtendReplica; private shouldEndReplica; private handleInlineCallInReplica; private addStringTokenIfNotEmpty; private processReplicaContent; private isReplicaEnding; private finalizeReplicaContent; private handleEndReplica; private handleIndent; private handleComment; private handleCommentContent; private handleMultiCommentExtend; private handleNewLine; private getTokenType; private isGoto; private isSection; private isChoice; private isChoiceTextBound; private isReplicaBegin; private isTag; private isChoiceTag; private isComment; private isMultiComment; private isMultiCommentEnd; private isNewLine; private isEOF; private isFirstOnLine; private readLine; private readLineUntilComment; private isNotEscapingChar; private isEndOfLine; private isWhitespace; private isEscapedChar; private peek; private isCall; } //# sourceMappingURL=lexer.d.ts.map