diff options
Diffstat (limited to 'tests/count.scade')
-rw-r--r-- | tests/count.scade | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/count.scade b/tests/count.scade new file mode 100644 index 0000000..c5ce47d --- /dev/null +++ b/tests/count.scade @@ -0,0 +1,36 @@ +node count() returns (c: int) +let + c = 0 -> (1 + pre c); +tel + +node resettable_count (r: bool) returns (c: int) +let + c = (restart count every r)(); +tel + +node nat() returns (s: int) s = 1 -> (1 + pre s); + +node rst_clk(rst: bool; clock h: bool) + returns (s: int; t: int) +let + s = (restart nat every rst) (); + t = merge(h; ((restart nat every rst) (() when h)); 0 when not h); +tel + +node even_times(c: bool; i: int) returns (o: int) +let + automaton + initial state EVEN + unless if c resume ODD; + let + o = i+1; + tel + + state ODD + unless if c resume EVEN; + let + o = -2 * i; + tel + returns o; +tel + |