@specs-feup/alpakka
Version:
Alpakka is a [LARA Framework](https://github.com/specs-feup/lara-framework) source-to-source compiler for Android's [smali](https://github.com/google/smali) syntax. It enables the analysis and transformation of Android apps through APK files.
39 lines • 1.55 kB
TypeScript
import ControlFlowEdge from "../../edge/ControlFlowEdge.js";
import FlowNode from "../FlowNode.js";
import BaseNode from "../../../graph/BaseNode.js";
import { NodeBuilder, NodeTypeGuard } from "../../../graph/Node.js";
import { Joinpoint } from "../../../../../../Joinpoints.js";
declare namespace InstructionNode {
class Class<D extends Data = Data, S extends ScratchData = ScratchData> extends FlowNode.Class<D, S> {
get nextEdge(): ControlFlowEdge.Class | undefined;
get nextNode(): FlowNode.Class | undefined;
set nextNode(node: FlowNode.Class | undefined);
}
abstract class Builder extends FlowNode.Builder implements NodeBuilder<Data, ScratchData> {
#private;
constructor(type: Type, $jp?: Joinpoint);
buildData(data: BaseNode.Data): Data;
buildScratchData(scratchData: BaseNode.ScratchData): ScratchData;
}
const TypeGuard: NodeTypeGuard<Data, ScratchData>;
interface Data extends FlowNode.Data {
flowNodeType: FlowNode.Type.INSTRUCTION;
instructionFlowNodeType: Type;
nextEdgeId: string | undefined;
}
interface ScratchData extends FlowNode.ScratchData {
}
enum Type {
FUNCTION_ENTRY = "function_entry",
FUNCTION_EXIT = "function_exit",
STATEMENT = "statement",
SWITCH = "switch",
RETURN = "return",
THROW = "throw",
LABEL = "label",
GOTO = "goto",
UNKNOWN = "unknown"
}
}
export default InstructionNode;
//# sourceMappingURL=InstructionNode.d.ts.map