r2papi-async
Version:
r2api on top of r2pipe for typescript and js
50 lines (49 loc) • 1.48 kB
TypeScript
import { R2PipeAsync } from "./r2pipe.js";
export declare class EsilToken {
label: string;
comment: string;
text: string;
addr: string;
position: number;
constructor(text?: string, position?: number);
toString(): string;
}
export type EsilNodeType = "number" | "flag" | "register" | "operation" | "none" | "block" | "goto" | "label";
export declare class EsilNode {
lhs: EsilNode | undefined;
rhs: EsilNode | undefined;
children: EsilNode[];
token: EsilToken;
type: EsilNodeType;
constructor(token?: EsilToken, type?: EsilNodeType);
setSides(lhs: EsilNode, rhs: EsilNode): void;
addChildren(ths: EsilNode, fhs: EsilNode): void;
toEsil(): string;
toString(): string;
}
export declare class EsilParser {
r2: R2PipeAsync;
stack: EsilNode[];
nodes: EsilNode[];
root: EsilNode;
tokens: EsilToken[];
cur: number;
constructor(r2: R2PipeAsync);
toJSON(): string;
toEsil(): string;
private optimizeFlags;
optimize(options: string): Promise<void>;
toString(): string;
reset(): void;
parseRange(from: number, to: number): void;
parseFunction(addr?: string): Promise<void>;
parse(expr: string, addr?: string): void | never;
peek(a: number): EsilToken | undefined;
pushToken(tok: EsilToken): void | never;
private isNumber;
private isInternal;
private parseUntil;
private getNodeFor;
private findNodeFor;
private isOperation;
}