File: pattern_concat_nest.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-- 551 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>

////////////////////////////////////////////////////////////

val works : bits(8) -> bits(3)
function works bv = match bv {
  a : bits(3) @ b : bits(2) @ 0b000 => a
}

val doesnt : bits(8) -> bits(3)
function doesnt bv = match bv {
  (a : bits(3) @ b : bits(2)) @ 0b000 => a
}

$[sv_module { stdout = true }]
val "print_bits" : forall 'n. (string, bits('n)) -> unit

val main : unit -> unit

function main() = {
  print_bits("works = ", works(0b1010_0000));
  print_bits("doesnt = ", doesnt(0b0101_0000));
}