extractFromCfg method
Extracts facts from a CFG.
Implementation
List<Fact> extractFromCfg(ControlFlowGraph cfg, [String? functionName]) {
final facts = <Fact>[];
// Extract flow edges between blocks
for (final block in cfg.blocks) {
for (final successor in block.successors) {
facts.add(Fact('Flow', [block.id, successor.id]));
}
// Extract facts from each instruction
for (final instr in block.instructions) {
facts.addAll(_extractFromInstruction(instr, block.id));
}
}
// Add entry block as reachable (base fact)
facts.add(Fact('Reachable', [cfg.entry.id]));
return facts;
}