X-Git-Url: https://code.delx.au/gnu-emacs-elpa/blobdiff_plain/a8eda6e7dfd43b448119fd3b607dc6c5c9af5c5c..d47c8727795125d152eac66c4439fea9ec87b75f:/packages/sml-mode/testcases.sml diff --git a/packages/sml-mode/testcases.sml b/packages/sml-mode/testcases.sml index adab3e289..4ed331204 100644 --- a/packages/sml-mode/testcases.sml +++ b/packages/sml-mode/testcases.sml @@ -1,4 +1,4 @@ -(* Copyright 1999,2004,2007,2010-2012 Stefan Monnier *) +(* Copyright 1999,2004,2007,2010-2012,2014 Stefan Monnier *) (* sml-mode here treats the second `=' as an equal op because it * thinks it's seeing something like "... type t = (s.t = ...)". FIXME! *) @@ -55,6 +55,53 @@ val bar = c ;4) +structure Attrs : sig + type t + datatype node + = Attributes of string list + include WRAPPED + sharing type node' = node + sharing type obj = t + end + +functor DoWrap1(type node) : S = struct +type t = node Wrap.t +open Wrap +type node' = node +type obj = t +end + +datatype exp_node + = Let of varpat_t list * rhs_t * exp_t + | Do of simpleexp_t * exp_t + | FunExp of fundef_t list * exp_t + | ContExp of BomId.t * varpat_t list option * exp_t * exp_t + | If of simpleexp_t * exp_t * exp_t + | Case of simpleexp_t * caserule_t list + | Typecase of TyParam.t * tycaserule_t list + | Apply of LongValueId.t * simpleexp_t list option * simpleexp_t list option + | Throw of BomId.t * tyargs_t option * simpleexp_t list option + | Return of simpleexp_t list option +and rhs_node + = Composite of exp_t + | Simple of simpleexp_t + +withtype type_t = type_node Wrap.t + and tyargs_t = tyargs_node Wrap.t + +functor DoWrap(type node) : sig + type t = node Wrap.t + include WRAPPED + sharing type node' = node + sharing type obj = t + end = +struct +type t = node Wrap.t +open Wrap +type node' = node +type obj = t +end + val ber = 1; val sdfg = 1 val tut = fn (x,y) z y e r => @@ -113,6 +160,7 @@ val x = datatype foobar = FooB of int | FooA of bool * int +and baz = QUX of foo datatype foo = FOO | BAR of baz and baz = BAZ | QUUX of foo