Files
@ 36cc1fe490f7
Branch filter:
Location: CSY/reowolf/testdata/parser/positive/10.pdl - annotation
36cc1fe490f7
412 B
text/plain
Merge branch 'feat-api-cmds-and-branching'
Implements the programmer-facing API to allow programmatic
specification of a synchronous round. The way in which these put/get
interactions are performed is in an initial shape. Perhaps this will
change in the future.
The second main set of changes is the addion of a 'fork' statement,
which allows explicit forking, and allowing multiple puts/gets over the
same transport link within a single sync round.
Implements the programmer-facing API to allow programmatic
specification of a synchronous round. The way in which these put/get
interactions are performed is in an initial shape. Perhaps this will
change in the future.
The second main set of changes is the addion of a 'fork' statement,
which allows explicit forking, and allowing multiple puts/gets over the
same transport link within a single sync round.
1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 2982ea49738a 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) {
sync {
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++]);
}
}
}
}
|