@chess-fu/pgn-parser
Version:
Chess PGN parser for 8x8 chess games for import or export standards
57 lines (56 loc) • 1.64 kB
TypeScript
import { HeaderEntry, MoveHistory } from './pgnTypes';
export declare enum PgnTokenType {
EndOfFile = "",
Newline = "\n",
Whitespace = " ",
CommentStart = "{",
CommentEnd = "}",
TagPairStart = "[",
TagPairEnd = "]",
RavStart = "(",
RavEnd = ")",
ExpansionStart = "<",
ExpansionEnd = ">",
LineEscape = "%",
Quote = "\"",
CommentToEOL = ";",
FullStop = ".",
Asterisks = "*",
NAG = "$",
SymbolExt = "-extra",
SymbolChar = "alpha-num",
Unknown = "unknown"
}
export declare class PgnDataCursor {
private readonly _data;
private readonly _validLength;
private _lineOffset;
private _line;
private _offset;
constructor(data: string, index?: number, length?: number);
throwError(text: string): any;
position(): number;
save(): any;
restore(saveData: any): void;
peek(): string;
peekExact(match: string): string | null;
peekToken(): PgnTokenType;
isEOF(): boolean;
seek(relativeOffset: number): void;
read(): string;
readFromPrevious(position: number): string;
readWhile(test: () => boolean): string;
private readonly Readers;
readSymbol(): any;
readAll(char: string, limit?: number): number;
readNumber(): number | null;
readString(): string;
skipCommentsFrom(comments?: string[]): boolean;
skipWhitespace(skipNewline?: boolean, comments?: string[]): void;
readTagPair(): HeaderEntry | null;
private readonly pieceSAN;
readMoveText(): MoveHistory | null;
private _readMoveText;
isMoveStop(token: PgnTokenType): boolean;
}
export default PgnDataCursor;