UNPKG

@specs-feup/alpakka

Version:

A Smali/APK source-to-source compiler written in Typescript

34 lines 2.13 kB
import FlowNode from "./node/FlowNode.js"; import BaseGraph from "../graph/BaseGraph.js"; import { GraphBuilder, GraphTypeGuard } from "../graph/Graph.js"; import { IfComparison, IfComparisonWithZero, Instruction, LabelReference, MethodNode, Program, Statement } from "../../../../Joinpoints.js"; import InstructionNode from "./node/instruction/InstructionNode.js"; import FunctionEntryNode from "./node/instruction/FunctionEntryNode.js"; import FunctionExitNode from "./node/instruction/FunctionExitNode.js"; import IfComparisonNode from "./node/condition/IfComparisonNode.js"; import TryCatchNode from "./node/condition/TryCatchNode.js"; import CaseNode from "./node/condition/CaseNode.js"; declare namespace FlowGraph { class Class<D extends Data = Data, S extends ScratchData = ScratchData> extends BaseGraph.Class<D, S> { addFunction($jp: MethodNode, bodyHead: FlowNode.Class | undefined, bodyTail: InstructionNode.Class[]): [FunctionEntryNode.Class, FunctionExitNode.Class?]; addCondition($jp: IfComparison | IfComparisonWithZero, iftrue: FlowNode.Class, iffalse: FlowNode.Class): IfComparisonNode.Class; addSwitchCase($jp: LabelReference, iftrue: FlowNode.Class, iffalse: FlowNode.Class): CaseNode.Class; addTryCatch($jp: Instruction, iftrue: FlowNode.Class, iffalse: FlowNode.Class): TryCatchNode.Class; getFunction(name: string): FunctionEntryNode.Class | undefined; get functions(): FunctionEntryNode.Class[]; getNode($stmt: Statement | string): FlowNode.Class | undefined; } class Builder extends BaseGraph.Builder implements GraphBuilder<Data, ScratchData> { buildData(data: BaseGraph.Data): Data; buildScratchData(scratchData: BaseGraph.ScratchData): ScratchData; } const TypeGuard: GraphTypeGuard<Data, ScratchData>; interface Data extends BaseGraph.Data { functions: Map<string, string>; } interface ScratchData extends BaseGraph.Data { } function generate($jp: Program | MethodNode, graph?: BaseGraph.Class): FlowGraph.Class; } export default FlowGraph; //# sourceMappingURL=FlowGraph.d.ts.map