Files
@ ef37386d0c6f
Branch filter:
Location: CSY/reowolf/testdata/parser/positive/10.pdl - annotation
ef37386d0c6f
419 B
text/plain
Put expression types of procedures in type table
Before we annotated the AST. But that is silly in hindsight:
certain operations have a completely different meaning when applied
in a polymorphic context (i.e. the field index determined by a
select expression).
Before we annotated the AST. But that is silly in hindsight:
certain operations have a completely different meaning when applied
in a polymorphic context (i.e. the field index determined by a
select expression).
1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 | #version 100
composite main() {}
primitive example(in a, out[] b) {
while (true) {
synchronous {
if (fires(a)) {
int i = 0;
while (i < b.length) {
if (fires(b[i])) {
int j = i + 1;
while (j < b.length)
assert !fires(b[j++]);
break;
}
i++;
}
assert i < b.length;
} else {
int i = 0;
while (i < b.length)
assert !fires(b[i++]);
}
}
}
}
|