From 34d76d1234bfd3ecae1e3e39687d0d202c0fb02c Mon Sep 17 00:00:00 2001 From: Alasdair Armstrong Date: Mon, 9 Oct 2017 19:01:36 +0100 Subject: Improvements to menhir pretty printer and ocaml backend Menhir pretty printer can now print enough sail to be useful with ASL parser Fixity declarations are now preserved in the AST Menhir parser now runs without the Pre-lexer Ocaml backend now supports variant typedefs, as the machinery to generate arbitrary instances of variant types has been added to the -undefined_gen flag --- test/ocaml/loop/expect | 100 ++++++++++++++++++++++++++++++++++++++++++++++ test/ocaml/loop/loop.sail | 18 +++++++++ 2 files changed, 118 insertions(+) create mode 100644 test/ocaml/loop/expect create mode 100644 test/ocaml/loop/loop.sail (limited to 'test/ocaml/loop') diff --git a/test/ocaml/loop/expect b/test/ocaml/loop/expect new file mode 100644 index 00000000..190423f8 --- /dev/null +++ b/test/ocaml/loop/expect @@ -0,0 +1,100 @@ +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 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 diff --git a/test/ocaml/loop/loop.sail b/test/ocaml/loop/loop.sail new file mode 100644 index 00000000..5ab0e817 --- /dev/null +++ b/test/ocaml/loop/loop.sail @@ -0,0 +1,18 @@ + +val extern int -> string effect pure string_of_int = "string_of_big_int" + +val extern (int, int) -> int effect pure add = "add" +val extern (int, int) -> bool effect pure lt = "lt_int" + +overload (deinfix +) [add] +overload (deinfix <) [lt] + +val unit -> unit effect pure main + +function main () = { + (int) x := 0; + while x < 100 do { + x := x + 1; + print(string_of_int(x)) + } +} -- cgit v1.2.3