evaluate method
Evaluates the rule and returns derived facts.
Implementation
@override
List<Fact> evaluate(
Map<String, List<List<Object>>> facts,
Map<String, List<List<Object>>> derived,
) {
final result = <Fact>[];
final assigns = facts['Assign'] ?? [];
final allocs = facts['Alloc'] ?? [];
for (final assign in assigns) {
final varId = assign[0];
final exprId = assign[1];
for (final alloc in allocs) {
if (alloc[0] == exprId) {
result.add(Fact('VarPointsTo', [varId, alloc[1]]));
}
}
}
return result;
}