File: flags.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 (28 lines) | stat: -rw-r--r-- 648 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
26
27
28
default Order dec

$include <prelude.sail>
$include <string.sail>

enum test_enum = A | B | C | D | E | F

function foo (a : bool, b : bool, c : bool) -> option(test_enum) =
  match (a, b, c) {
    (false, false, false) => Some(A),
    (true, false, false)  => Some(B),
    (true, true, false)   => Some(C),
    (false, false, true)  => Some(D),
    (true, false, true)   => Some(E),
    (true, true, true)    => Some(F),
    (false, true, false)  => None(),
    (false, true, true)   => None()
  }

val main : unit -> unit

function main() = {
  let x = foo(false, false, false);
  match x {
    Some(A) => print_endline("ok"),
    _ => (),
  }
}