File: issue243_fixed.sail

package info (click to toggle)
sail-ocaml 0.19.1%2Bdfsg5-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 18,008 kB
  • sloc: ml: 75,941; ansic: 8,848; python: 1,342; exp: 560; sh: 474; makefile: 218; cpp: 36
file content (25 lines) | stat: -rw-r--r-- 573 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
default Order dec
$include <prelude.sail>

enum E = EA | EB

mapping e_pair_bits : (E,E) <-> bits(2) =
  { (EA, EA) <-> 0b00
  , (EA, EB) <-> 0b01
  , (EB, EB) <-> 0b11
  }

struct eful = { e1 : E, v1 : bits(1) }

union F = { FE : eful }

val f_bits : F <-> bits(3)
mapping f_bits = { FE(struct { e1 = e1, v1 = v1 }) <-> e_pair_bits(e1,EB) @ v1 }

val main : unit -> unit

function main() = {
  print_bits("", f_bits(FE(struct { e1 = EA, v1 = 0b0 })));
  print_bits("", f_bits(FE(struct { e1 = EA, v1 = 0b1 })));
  print_bits("", f_bits(FE(struct { e1 = EB, v1 = 0b1 })))
}