Module BasilIR.AbsBasilIR
type bVTYPE =
| BVTYPE of (int * int) * string
and iNTTYPE =
| INTTYPE of (int * int) * string
and bOOLTYPE =
| BOOLTYPE of (int * int) * string
and bIdent =
| BIdent of (int * int) * string
and localIdent =
| LocalIdent of (int * int) * string
and globalIdent =
| GlobalIdent of (int * int) * string
and blockIdent =
| BlockIdent of (int * int) * string
and procIdent =
| ProcIdent of (int * int) * string
and beginList =
| BeginList of (int * int) * string
and endList =
| EndList of (int * int) * string
and beginRec =
| BeginRec of (int * int) * string
and endRec =
| EndRec of (int * int) * string
and lambdaSep =
| LambdaSep of string
and str =
| Str of string
and integerHex =
| IntegerHex of (int * int) * string
and integerDec =
| IntegerDec of (int * int) * string
and moduleT =
| Module1 of decl list
and semicolons =
| Semicolons_Empty
| Semicolons_Some of semicolons
and intType =
| IntType1 of iNTTYPE
and bVType =
| BVType1 of bVTYPE
and endian =
| Endian_Little
| Endian_Big
and assignment =
| Assignment1 of lVar * expr
and lVars =
| LVars_Empty
| LVars_LocalList of localVar list
| LVars_List of lVar list
and jump =
| Jump_GoTo of blockIdent list
| Jump_Unreachable
| Jump_Return of expr list
and attrKeyValue =
| AttrKeyValue1 of bIdent * attr
and value =
| Value_BV of bVVal
| Value_Int of intVal
| Value_True
| Value_False
and unOp =
| UnOpBVUnOp of bVUnOp
| UnOp_boolnot
| UnOp_intneg
| UnOp_booltobv1
and eqOp =
| EqOp_eq
| EqOp_neq
and bVUnOp =
| BVUnOp_bvnot
| BVUnOp_bvneg
and bVBinOp =
| BVBinOp_bvand
| BVBinOp_bvor
| BVBinOp_bvadd
| BVBinOp_bvmul
| BVBinOp_bvudiv
| BVBinOp_bvurem
| BVBinOp_bvshl
| BVBinOp_bvlshr
| BVBinOp_bvnand
| BVBinOp_bvnor
| BVBinOp_bvxor
| BVBinOp_bvxnor
| BVBinOp_bvcomp
| BVBinOp_bvsub
| BVBinOp_bvsdiv
| BVBinOp_bvsrem
| BVBinOp_bvsmod
| BVBinOp_bvashr
and bVLogicalBinOp =
| BVLogicalBinOp_bvule
| BVLogicalBinOp_bvugt
| BVLogicalBinOp_bvuge
| BVLogicalBinOp_bvult
| BVLogicalBinOp_bvslt
| BVLogicalBinOp_bvsle
| BVLogicalBinOp_bvsgt
| BVLogicalBinOp_bvsge
and intBinOp =
| IntBinOp_intadd
| IntBinOp_intmul
| IntBinOp_intsub
| IntBinOp_intdiv
| IntBinOp_intmod
and intLogicalBinOp =
| IntLogicalBinOp_intlt
| IntLogicalBinOp_intle
| IntLogicalBinOp_intgt
| IntLogicalBinOp_intge
and boolBinOp =
| BoolBinOp_booland
| BoolBinOp_boolor
| BoolBinOp_boolimplies
and requireTok =
| RequireTok_require
| RequireTok_requires
and ensureTok =
| EnsureTok_ensure
| EnsureTok_ensures
and progSpec =
| ProgSpec_Rely of expr
| ProgSpec_Guarantee of expr