summaryrefslogtreecommitdiff
path: root/src/parse_ast.ml
diff options
context:
space:
mode:
Diffstat (limited to 'src/parse_ast.ml')
-rw-r--r--src/parse_ast.ml21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/parse_ast.ml b/src/parse_ast.ml
index e069462a..526dffa8 100644
--- a/src/parse_ast.ml
+++ b/src/parse_ast.ml
@@ -160,20 +160,20 @@ n_constraint_aux = (* constraint over kind $_$ *)
NC_fixed of atyp * atyp
| NC_bounded_ge of atyp * atyp
| NC_bounded_le of atyp * atyp
+ | NC_not_equal of atyp * atyp
| NC_nat_set_bounded of kid * (int) list
+ | NC_or of n_constraint * n_constraint
+ | NC_and of n_constraint * n_constraint
+and
+n_constraint =
+ NC_aux of n_constraint_aux * l
type
kinded_id =
KOpt_aux of kinded_id_aux * l
-
-type
-n_constraint =
- NC_aux of n_constraint_aux * l
-
-
-type
+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 n_constraint (* A constraint for this type *)
@@ -207,7 +207,7 @@ lit_aux = (* Literal constant *)
| L_bin of string (* bit vector constant, C-style *)
| L_undef (* undefined value *)
| L_string of string (* string constant *)
-
+ | L_real of string
type
typschm_aux = (* type scheme *)
@@ -238,6 +238,7 @@ pat_aux = (* Pattern *)
| P_vector_concat of (pat) list (* concatenated vector pattern *)
| P_tup of (pat) list (* tuple pattern *)
| P_list of (pat) list (* list pattern *)
+ | P_cons of pat * pat (* cons pattern *)
and pat =
P_aux of pat_aux * l
@@ -277,6 +278,7 @@ exp_aux = (* Expression *)
| E_let of letbind * exp (* let expression *)
| E_assign of exp * exp (* imperative assignment *)
| E_sizeof of atyp
+ | E_constraint of n_constraint
| E_exit of exp
| E_return of exp
| E_assert of exp * exp
@@ -305,6 +307,7 @@ and opt_default =
and pexp_aux = (* Pattern match *)
Pat_exp of pat * exp
+ | Pat_when of pat * exp * exp
and pexp =
Pat_aux of pexp_aux * l
@@ -418,6 +421,7 @@ val_spec_aux = (* Value type specification *)
VS_val_spec of typschm * id
| VS_extern_no_rename of typschm * id
| VS_extern_spec of typschm * id * string
+ | VS_cast_spec of typschm * id
type
@@ -487,6 +491,7 @@ def = (* Top-level definition *)
| DEF_type of type_def (* type definition *)
| DEF_fundef of fundef (* function definition *)
| DEF_val of letbind (* value definition *)
+ | DEF_overload of id * id list (* operator overload specifications *)
| DEF_spec of val_spec (* top-level type constraint *)
| DEF_default of default_typing_spec (* default kind and type assumptions *)
| DEF_scattered of scattered_def (* scattered definition *)