summaryrefslogtreecommitdiff
path: root/src/parse_ast.ml
diff options
context:
space:
mode:
authorAlasdair Armstrong2019-05-13 18:03:35 +0100
committerAlasdair Armstrong2019-05-14 15:13:29 +0100
commit41e6fe10e7d28193fa62711fcdad797b1f0103a0 (patch)
tree0113597f0c1b5ba909028f576a6a51c8dbead6ac /src/parse_ast.ml
parent7257b23239a3f8d6a45f973b9d953b31772abe06 (diff)
Add feature that allows functions to require type variables are constant
can now write e.g. forall (constant 'n : Int) rather than forall ('n: Int) which requires 'n to be a constant integer value whenever the function is called. I added this to the 'addrsize variable on memory reads/writes to absolutely guarantee in the SMT generation that we don't have to worry about the address being a variable length bitvector.
Diffstat (limited to 'src/parse_ast.ml')
-rw-r--r--src/parse_ast.ml5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/parse_ast.ml b/src/parse_ast.ml
index 91fb0610..5c3a5382 100644
--- a/src/parse_ast.ml
+++ b/src/parse_ast.ml
@@ -172,8 +172,7 @@ and atyp =
and
kinded_id_aux = (* optionally kind-annotated identifier *)
- KOpt_none of kid (* identifier *)
- | KOpt_kind of kind * kid (* kind-annotated variable *)
+ KOpt_kind of string option * kid list * kind option (* kind-annotated variable *)
and
kinded_id =
@@ -182,7 +181,7 @@ kinded_id =
type
quant_item_aux = (* Either a kinded identifier or a nexp constraint for a typquant *)
QI_id of kinded_id (* An optionally kinded identifier *)
- | QI_const of atyp (* A constraint for this type *)
+ | QI_constraint of atyp (* A constraint for this type *)
type