@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.
37 lines • 1.58 kB
TypeScript
import ControlFlowEdge from "../edge/ControlFlowEdge.js";
import InstructionNode from "./instruction/InstructionNode.js";
import BaseNode from "../../graph/BaseNode.js";
import { NodeBuilder, NodeTypeGuard } from "../../graph/Node.js";
import { Joinpoint } from "../../../../../Joinpoints.js";
declare namespace FlowNode {
class Class<D extends Data = Data, S extends ScratchData = ScratchData> extends BaseNode.Class<D, S> {
insertBefore(node: InstructionNode.Class): void;
insertSubgraphBefore(head: BaseNode.Class, tail: InstructionNode.Class[]): void;
removeFromFlow(): void;
get reachableNodes(): FlowNode.Class[];
get previousEdges(): ControlFlowEdge.Class[];
get previousNodes(): FlowNode.Class[];
get nextEdges(): ControlFlowEdge.Class[];
get nextNodes(): FlowNode.Class[];
get jp(): Joinpoint | undefined;
}
abstract class Builder extends BaseNode.Builder implements NodeBuilder<Data, ScratchData> {
#private;
constructor(type: Type, $jp: Joinpoint | undefined);
buildData(data: BaseNode.Data): Data;
buildScratchData(scratchData: BaseNode.ScratchData): ScratchData;
}
const TypeGuard: NodeTypeGuard<Data, ScratchData>;
interface Data extends BaseNode.Data {
flowNodeType: Type;
}
interface ScratchData extends BaseNode.ScratchData {
$jp: Joinpoint | undefined;
}
enum Type {
INSTRUCTION = "instruction",
CONDITION = "condition"
}
}
export default FlowNode;
//# sourceMappingURL=FlowNode.d.ts.map