35 lines
874 B
Plaintext
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);
|
|
}
|
|
}
|
|
});
|
|
|