annotate src/sql.sig @ 2214:edd634b889d0

Add mono_inline.sml (which was left out of last commit).
author Ziv Scully <ziv@mit.edu>
date Tue, 14 Oct 2014 18:07:09 -0400
parents 365727ff68f4
children 639e62ca2530
rev   line source
ziv@2203 1 signature SQL = sig
ziv@2203 2
ziv@2203 3 val debug : bool ref
ziv@2203 4
ziv@2213 5 val sqlcacheMode : bool ref
ziv@2213 6
ziv@2204 7 type lvar = int
ziv@2203 8
ziv@2203 9 datatype func =
ziv@2203 10 DtCon0 of string
ziv@2203 11 | DtCon1 of string
ziv@2203 12 | UnCon of string
ziv@2203 13 | Other of string
ziv@2203 14
ziv@2203 15 datatype exp =
ziv@2203 16 Const of Prim.t
ziv@2203 17 | Var of int
ziv@2203 18 | Lvar of lvar
ziv@2203 19 | Func of func * exp list
ziv@2203 20 | Recd of (string * exp) list
ziv@2203 21 | Proj of exp * string
ziv@2203 22
ziv@2203 23 datatype reln =
ziv@2203 24 Known
ziv@2203 25 | Sql of string
ziv@2203 26 | PCon0 of string
ziv@2203 27 | PCon1 of string
ziv@2203 28 | Eq
ziv@2203 29 | Ne
ziv@2203 30 | Lt
ziv@2203 31 | Le
ziv@2203 32 | Gt
ziv@2203 33 | Ge
ziv@2203 34
ziv@2203 35 datatype prop =
ziv@2203 36 True
ziv@2203 37 | False
ziv@2203 38 | Unknown
ziv@2203 39 | And of prop * prop
ziv@2203 40 | Or of prop * prop
ziv@2203 41 | Reln of reln * exp list
ziv@2203 42 | Cond of exp * prop
ziv@2203 43
ziv@2212 44 type 'a parser
ziv@2204 45
ziv@2204 46 val parse : 'a parser -> Mono.exp -> 'a option
ziv@2203 47
ziv@2203 48 datatype Rel =
ziv@2203 49 Exps of exp * exp -> prop
ziv@2203 50 | Props of prop * prop -> prop
ziv@2203 51
ziv@2203 52 datatype sqexp =
ziv@2203 53 SqConst of Prim.t
ziv@2203 54 | SqTrue
ziv@2203 55 | SqFalse
ziv@2203 56 | SqNot of sqexp
ziv@2203 57 | Field of string * string
ziv@2203 58 | Computed of string
ziv@2203 59 | Binop of Rel * sqexp * sqexp
ziv@2203 60 | SqKnown of sqexp
ziv@2203 61 | Inj of Mono.exp
ziv@2203 62 | SqFunc of string * sqexp
ziv@2203 63 | Unmodeled
ziv@2203 64 | Null
ziv@2203 65
ziv@2204 66 datatype ('a,'b) sum = inl of 'a | inr of 'b
ziv@2204 67
ziv@2203 68 datatype sitem =
ziv@2203 69 SqField of string * string
ziv@2203 70 | SqExp of sqexp * string
ziv@2203 71
ziv@2204 72 type query1 = {Select : sitem list,
ziv@2204 73 From : (string * string) list,
ziv@2204 74 Where : sqexp option}
ziv@2203 75
ziv@2203 76 datatype query =
ziv@2203 77 Query1 of query1
ziv@2203 78 | Union of query * query
ziv@2203 79
ziv@2204 80 val query : query parser
ziv@2204 81
ziv@2203 82 datatype dml =
ziv@2203 83 Insert of string * (string * sqexp) list
ziv@2203 84 | Delete of string * sqexp
ziv@2203 85 | Update of string * (string * sqexp) list * sqexp
ziv@2203 86
ziv@2204 87 val dml : dml parser
ziv@2204 88
ziv@2203 89 end