annotate src/iflow.sig @ 1210:c5bd970e77a5

Parsing more comparison operators
author Adam Chlipala <adamc@hcoop.net>
date Tue, 06 Apr 2010 12:04:08 -0400
parents ae3036773768
children 1d4d65245dd3
rev   line source
adamc@1200 1 (* Copyright (c) 2010, Adam Chlipala
adamc@1200 2 * All rights reserved.
adamc@1200 3 *
adamc@1200 4 * Redistribution and use in source and binary forms, with or without
adamc@1200 5 * modification, are permitted provided that the following conditions are met:
adamc@1200 6 *
adamc@1200 7 * - Redistributions of source code must retain the above copyright notice,
adamc@1200 8 * this list of conditions and the following disclaimer.
adamc@1200 9 * - Redistributions in binary form must reproduce the above copyright notice,
adamc@1200 10 * this list of conditions and the following disclaimer in the documentation
adamc@1200 11 * and/or other materials provided with the distribution.
adamc@1200 12 * - The names of contributors may not be used to endorse or promote products
adamc@1200 13 * derived from this software without specific prior written permission.
adamc@1200 14 *
adamc@1200 15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
adamc@1200 16 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
adamc@1200 17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
adamc@1200 18 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
adamc@1200 19 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
adamc@1200 20 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
adamc@1200 21 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
adamc@1200 22 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
adamc@1200 23 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
adamc@1200 24 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
adamc@1200 25 * POSSIBILITY OF SUCH DAMAGE.
adamc@1200 26 *)
adamc@1200 27
adamc@1200 28 signature IFLOW = sig
adamc@1200 29
adamc@1200 30 type lvar = int
adamc@1200 31
adamc@1200 32 datatype exp =
adamc@1200 33 Const of Prim.t
adamc@1200 34 | Var of int
adamc@1200 35 | Lvar of int
adamc@1200 36 | Func of string * exp list
adamc@1200 37 | Recd of (string * exp) list
adamc@1200 38 | Proj of exp * string
adamc@1200 39 | Finish
adamc@1200 40
adamc@1200 41 datatype reln =
adamc@1207 42 Known
adamc@1207 43 | Sql of string
adamc@1200 44 | Eq
adamc@1210 45 | Ne
adamc@1210 46 | Lt
adamc@1210 47 | Le
adamc@1210 48 | Gt
adamc@1210 49 | Ge
adamc@1200 50
adamc@1200 51 datatype prop =
adamc@1200 52 True
adamc@1200 53 | False
adamc@1200 54 | Unknown
adamc@1200 55 | And of prop * prop
adamc@1200 56 | Or of prop * prop
adamc@1200 57 | Reln of reln * exp list
adamc@1200 58 | Select of int * lvar * lvar * prop * exp
adamc@1200 59
adamc@1202 60 exception Imply of prop * prop
adamc@1200 61
adamc@1200 62 val check : Mono.file -> unit
adamc@1200 63
adamc@1206 64 val debug : bool ref
adamc@1206 65
adamc@1200 66 end