summaryrefslogtreecommitdiff
path: root/src/test/test3.sail
blob: 36952bf7ea4b0c607dd5120e64c2f317bf84f8ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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;
}