X-Git-Url: http://git.nguyen.vg/gitweb/?p=tatoo.git;a=blobdiff_plain;f=src%2Fstate.ml;fp=src%2Fstate.ml;h=4fbfc1cdeabcbda8bfb6175921b87d577ada82b9;hp=0000000000000000000000000000000000000000;hb=cba2938d929fd5119b1491686ddc224d5af618c6;hpb=0cf8def92c8c6e708ec333b13dbe46decf554d81 diff --git a/src/state.ml b/src/state.ml new file mode 100644 index 0000000..4fbfc1c --- /dev/null +++ b/src/state.ml @@ -0,0 +1,36 @@ +(***********************************************************************) +(* *) +(* TAToo *) +(* *) +(* Kim Nguyen, LRI UMR8623 *) +(* Université Paris-Sud & CNRS *) +(* *) +(* Copyright 2010-2012 Université Paris-Sud and Centre National de la *) +(* Recherche Scientifique. All rights reserved. This file is *) +(* distributed under the terms of the GNU Lesser General Public *) +(* License, with the special exception on linking described in file *) +(* ../LICENSE. *) +(* *) +(***********************************************************************) + +open Format + +type t = int +let make = + let id = ref ~-1 in + fun () -> incr id; !id + +let compare = (-) + +let equal = (==) + +external hash : t -> int = "%identity" + +let print fmt x = fprintf fmt "q%a" Pretty.pp_subscript x + +let dump fmt x = print fmt x + +let check x = + if x < 0 then failwith (Printf.sprintf "State: Assertion %i < 0 failed" x) + +let dummy = max_int