module Ast: sig .. end
type typerep =
| |
IntType |
| |
FloatType |
| |
StringType |
| |
BoolType |
| |
RelationType of string |
| |
OtherType of string |
| |
Unknown |
type binop =
| |
Plus |
| |
Minus |
| |
Times |
| |
Divide |
type boolop =
| |
Equiv |
| |
Nequiv |
| |
Or |
| |
And |
| |
Lt |
| |
Lte |
| |
Gt |
| |
Gte |
type primexp =
| |
Float of float |
| |
Integer of int |
| |
String of string |
| |
Bool of bool |
type exp =
type symexp =
type constraintexp =
type constraintvalue =
type constraintbody =
type var =
| |
Var of string |
| |
RecordIndexVar of string * string * int |
| |
IndexVar of string * string |
Data fields for a record (i.e. one line of a file).
type datafields = exp MapUtils.StringMap.t
type relation = datafields MapUtils.IntMap.t
type stmt =
| |
AssignStmt of var * exp |
| |
Cond of exp * stmt list * stmt list |
| |
ForEachLoop of string * string * stmt list |
| |
Return of exp |
| |
Assert of exp |
| |
Assume of exp |
| |
Concretize of var |
| |
CRange of var |
type userty = {
|
dataname : string; |
|
fieldinfo : (string * bool * typerep) list; |
}
type fundecl = {
|
funname : string; |
|
funargs : (string * typerep) list; |
|
funbody : stmt list; |
}
type topdecl =