binary-parser
Version:
Blazing-fast binary parser builder
142 lines • 6.65 kB
TypeScript
/// <reference types="node" />
interface ParserOptions {
length?: number | string | ((item: any) => number);
assert?: number | string | ((item: number | string) => boolean);
lengthInBytes?: number | string | ((item: any) => number);
type?: string | Parser;
formatter?: (item: any) => any;
encoding?: string;
readUntil?: "eof" | ((item: any, buffer: Buffer) => boolean);
greedy?: boolean;
choices?: {
[key: number]: string | Parser;
};
defaultChoice?: string | Parser;
zeroTerminated?: boolean;
clone?: boolean;
stripNull?: boolean;
key?: string;
tag?: string | ((item: any) => number);
offset?: number | string | ((item: any) => number);
wrapper?: (buffer: Buffer) => Buffer;
}
declare type Types = PrimitiveTypes | ComplexTypes;
declare type ComplexTypes = "bit" | "string" | "buffer" | "array" | "choice" | "nest" | "seek" | "pointer" | "saveOffset" | "wrapper" | "";
declare type Endianness = "be" | "le";
declare type PrimitiveTypes = "uint8" | "uint16le" | "uint16be" | "uint32le" | "uint32be" | "uint64le" | "uint64be" | "int8" | "int16le" | "int16be" | "int32le" | "int32be" | "int64le" | "int64be" | "floatle" | "floatbe" | "doublele" | "doublebe";
export declare class Parser {
varName: string;
type: Types;
options: ParserOptions;
next?: Parser;
head?: Parser;
compiled?: Function;
endian: Endianness;
constructorFn?: Function;
alias?: string;
useContextVariables: boolean;
constructor();
static start(): Parser;
private primitiveGenerateN;
private primitiveN;
private useThisEndian;
uint8(varName: string, options?: ParserOptions): this;
uint16(varName: string, options?: ParserOptions): this;
uint16le(varName: string, options?: ParserOptions): this;
uint16be(varName: string, options?: ParserOptions): this;
uint32(varName: string, options?: ParserOptions): this;
uint32le(varName: string, options?: ParserOptions): this;
uint32be(varName: string, options?: ParserOptions): this;
int8(varName: string, options?: ParserOptions): this;
int16(varName: string, options?: ParserOptions): this;
int16le(varName: string, options?: ParserOptions): this;
int16be(varName: string, options?: ParserOptions): this;
int32(varName: string, options?: ParserOptions): this;
int32le(varName: string, options?: ParserOptions): this;
int32be(varName: string, options?: ParserOptions): this;
private bigIntVersionCheck;
int64(varName: string, options?: ParserOptions): this;
int64be(varName: string, options?: ParserOptions): this;
int64le(varName: string, options?: ParserOptions): this;
uint64(varName: string, options?: ParserOptions): this;
uint64be(varName: string, options?: ParserOptions): this;
uint64le(varName: string, options?: ParserOptions): this;
floatle(varName: string, options?: ParserOptions): this;
floatbe(varName: string, options?: ParserOptions): this;
doublele(varName: string, options?: ParserOptions): this;
doublebe(varName: string, options?: ParserOptions): this;
private bitN;
bit1(varName: string, options?: ParserOptions): this;
bit2(varName: string, options?: ParserOptions): this;
bit3(varName: string, options?: ParserOptions): this;
bit4(varName: string, options?: ParserOptions): this;
bit5(varName: string, options?: ParserOptions): this;
bit6(varName: string, options?: ParserOptions): this;
bit7(varName: string, options?: ParserOptions): this;
bit8(varName: string, options?: ParserOptions): this;
bit9(varName: string, options?: ParserOptions): this;
bit10(varName: string, options?: ParserOptions): this;
bit11(varName: string, options?: ParserOptions): this;
bit12(varName: string, options?: ParserOptions): this;
bit13(varName: string, options?: ParserOptions): this;
bit14(varName: string, options?: ParserOptions): this;
bit15(varName: string, options?: ParserOptions): this;
bit16(varName: string, options?: ParserOptions): this;
bit17(varName: string, options?: ParserOptions): this;
bit18(varName: string, options?: ParserOptions): this;
bit19(varName: string, options?: ParserOptions): this;
bit20(varName: string, options?: ParserOptions): this;
bit21(varName: string, options?: ParserOptions): this;
bit22(varName: string, options?: ParserOptions): this;
bit23(varName: string, options?: ParserOptions): this;
bit24(varName: string, options?: ParserOptions): this;
bit25(varName: string, options?: ParserOptions): this;
bit26(varName: string, options?: ParserOptions): this;
bit27(varName: string, options?: ParserOptions): this;
bit28(varName: string, options?: ParserOptions): this;
bit29(varName: string, options?: ParserOptions): this;
bit30(varName: string, options?: ParserOptions): this;
bit31(varName: string, options?: ParserOptions): this;
bit32(varName: string, options?: ParserOptions): this;
namely(alias: string): this;
skip(length: ParserOptions["length"], options?: ParserOptions): this;
seek(relOffset: ParserOptions["length"], options?: ParserOptions): this;
string(varName: string, options: ParserOptions): this;
buffer(varName: string, options: ParserOptions): this;
wrapped(varName: string | ParserOptions, options?: ParserOptions): this;
array(varName: string, options: ParserOptions): this;
choice(varName: string | ParserOptions, options?: ParserOptions): this;
nest(varName: string | ParserOptions, options?: ParserOptions): this;
pointer(varName: string, options: ParserOptions): this;
saveOffset(varName: string, options?: ParserOptions): this;
endianness(endianness: "little" | "big"): this;
endianess(endianess: "little" | "big"): this;
useContextVars(useContextVariables?: boolean): this;
create(constructorFn: Function): this;
private getContext;
getCode(): string;
private addRawCode;
private addAliasedCode;
private resolveReferences;
compile(): void;
sizeOf(): number;
parse(buffer: Buffer | Uint8Array): any;
private setNextParser;
private generate;
private generateAssert;
private generateNext;
private generateBit;
private generateSeek;
private generateString;
private generateBuffer;
private generateArray;
private generateChoiceCase;
private generateChoice;
private generateNest;
private generateWrapper;
private generateFormatter;
private generatePointer;
private generateSaveOffset;
}
export {};
//# sourceMappingURL=binary_parser.d.ts.map