Softwaretechnik-II/boa/aufgabe_01_b.boa
2025-01-07 16:05:38 +01:00

35 lines
874 B
Plaintext

# Java-Job: 111128
# Python-Job: 111124
# Includes all revisions
p: Project = input;
# Prepare output variables
relative_list: output mean[string][int] of float;
# Temporary variables
cur_date: time;
statement_counter := visitor {
before node: Statement -> {
if(node.kind == StatementKind.TRY or node.kind == StatementKind.WITH)
relative_list[p.name][yearof(cur_date)] << 1;
else
relative_list[p.name][yearof(cur_date)] << 0;
}
};
visit(p, visitor {
before node: CodeRepository -> {
for (minus_year: int=22; minus_year >= 0; minus_year--) {
cur_date = addyear(now(), -minus_year);
snapshot := getsnapshot(node, cur_date);
if (def(snapshot))
foreach (i: int; def(snapshot[i]))
visit(snapshot[i], statement_counter);
}
}
});