summaryrefslogtreecommitdiff
path: root/src/test/test3.sail
diff options
context:
space:
mode:
authorGabriel Kerneis2013-10-14 16:16:23 +0100
committerGabriel Kerneis2013-10-14 16:16:23 +0100
commit09aac312225e5609e8b5c84cf9da03fe3beb1c12 (patch)
treec9ae8199ae2175072a7242f3a5dca4751e7104b3 /src/test/test3.sail
parent5e56f66362df0d132aadf535121a3c1a995502e1 (diff)
Test read/write reg/mem syntax
Diffstat (limited to 'src/test/test3.sail')
-rw-r--r--src/test/test3.sail16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/test/test3.sail b/src/test/test3.sail
new file mode 100644
index 00000000..36952bf7
--- /dev/null
+++ b/src/test/test3.sail
@@ -0,0 +1,16 @@
+(* a register containing nat numbers *)
+register nat reg
+(* a function to read from memory; wmem serves no purpose currently,
+ memory-writing functions are figured out syntactically. *)
+val ( nat -> nat effect { wmem , rmem } ) MEM
+
+function nat main _ = {
+ (* memory read, thanks to effect { rmem} above *)
+ MEM(0);
+ (* left-hand side function call = memory write *)
+ MEM(0) := 1;
+ (* register read, thanks to register declaration *)
+ reg;
+ (* register write, idem *)
+ reg := 1;
+}