summaryrefslogtreecommitdiff
path: root/language
diff options
context:
space:
mode:
Diffstat (limited to 'language')
-rw-r--r--language/l2.lem1
-rw-r--r--language/l2.ml1
-rw-r--r--language/l2.ott2
-rw-r--r--language/l2_parse.ml1
-rw-r--r--language/l2_parse.ott2
5 files changed, 7 insertions, 0 deletions
diff --git a/language/l2.lem b/language/l2.lem
index fb8b7731..d82fbbc7 100644
--- a/language/l2.lem
+++ b/language/l2.lem
@@ -232,6 +232,7 @@ type exp_aux 'a = (* Expression *)
| E_vector_subrange of (exp 'a) * (exp 'a) * (exp 'a) (* subvector extraction *)
| E_vector_update of (exp 'a) * (exp 'a) * (exp 'a) (* vector functional update *)
| E_vector_update_subrange of (exp 'a) * (exp 'a) * (exp 'a) * (exp 'a) (* vector subrange update (with vector) *)
+ | E_vector_append of (exp 'a) * (exp 'a) (* vector concatenation *)
| E_list of list (exp 'a) (* list *)
| E_cons of (exp 'a) * (exp 'a) (* cons *)
| E_record of (fexps 'a) (* struct *)
diff --git a/language/l2.ml b/language/l2.ml
index 3ce5cac3..76b27874 100644
--- a/language/l2.ml
+++ b/language/l2.ml
@@ -246,6 +246,7 @@ type
| E_vector_subrange of 'a exp * 'a exp * 'a exp (* subvector extraction *)
| E_vector_update of 'a exp * 'a exp * 'a exp (* vector functional update *)
| E_vector_update_subrange of 'a exp * 'a exp * 'a exp * 'a exp (* vector subrange update (with vector) *)
+ | E_vector_append of 'a exp * 'a exp (* vector concatenation *)
| E_list of ('a exp) list (* list *)
| E_cons of 'a exp * 'a exp (* cons *)
| E_record of 'a fexps (* struct *)
diff --git a/language/l2.ott b/language/l2.ott
index a880527c..f0edda3f 100644
--- a/language/l2.ott
+++ b/language/l2.ott
@@ -583,6 +583,8 @@ exp :: 'E_' ::=
{{ com vector subrange update (with vector)}}
% do we want a functional update form with a comma-separated list of such?
+ | exp : exp2 :: :: vector_append
+ {{ com vector concatenation }}
% lists
| [|| exp1 , .. , expn ||] :: :: list
diff --git a/language/l2_parse.ml b/language/l2_parse.ml
index a283b605..c68c92b9 100644
--- a/language/l2_parse.ml
+++ b/language/l2_parse.ml
@@ -213,6 +213,7 @@ exp_aux = (* Expression *)
| E_vector_subrange of exp * exp * exp (* subvector extraction *)
| E_vector_update of exp * exp * exp (* vector functional update *)
| E_vector_update_subrange of exp * exp * exp * exp (* vector subrange update (with vector) *)
+ | E_vector_append of exp * exp (* vector concatenation *)
| E_list of (exp) list (* list *)
| E_cons of exp * exp (* cons *)
| E_record of fexps (* struct *)
diff --git a/language/l2_parse.ott b/language/l2_parse.ott
index 11b51f2a..d3e13c13 100644
--- a/language/l2_parse.ott
+++ b/language/l2_parse.ott
@@ -474,6 +474,8 @@ exp :: 'E_' ::=
{{ com vector subrange update (with vector)}}
% do we want a functional update form with a comma-separated list of such?
+ | exp : exp2 :: :: vector_append
+ {{ com vector concatenation }}
% lists
| [|| exp1 , .. , expn ||] :: :: list