From b94549367c2536b3df6fba8586efa1a2a4bca7b8 Mon Sep 17 00:00:00 2001 From: Jon French Date: Fri, 27 Apr 2018 13:19:24 +0100 Subject: further progress --- language/sail.ott | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) (limited to 'language') diff --git a/language/sail.ott b/language/sail.ott index cf70fdce..a0946b4b 100644 --- a/language/sail.ott +++ b/language/sail.ott @@ -574,6 +574,11 @@ fpat :: 'FP_' ::= {{ aux _ annot }} {{ auxparam 'a }} | id = pat :: :: Fpat +mfpat :: 'MFP_' ::= + {{ com Mapping field pattern, why does this have to exist }} + {{ aux _ annot }} {{ auxparam 'a }} + | id = mpat :: :: mpat + parsing P_app <= P_app P_app <= P_as @@ -985,17 +990,17 @@ fundef :: 'FD_' ::= mpat :: 'MP_' ::= {{ com Mapping pattern. Mostly the same as normal patterns but only constructible parts }} {{ aux _ annot }} {{ auxparam 'a }} - | lit :: :: lit - | id :: :: id - | id ( mpat1 , ... , mpatn ) :: :: app - | { fpat1 ; ... ; fpatn semi_opt } :: :: record - | [ mpat1 , ... , mpatn ] :: :: vector - | mpat1 : ... : mpatn :: :: vector_concat - | ( mpat1 , ... , mpatn ) :: :: tup - | [|| mpat1 , ... , mpatn ||] :: :: list - | ( mpat ) :: S :: paren {{ ichlo [[mpat]] }} - | mpat1 '::' mpat2 :: :: cons - | mpat1 ^^ mpat2 :: :: string_append + | lit :: :: lit + | id :: :: id + | id ( mpat1 , ... , mpatn ) :: :: app + | { mfpat1 ; ... ; mfpatn semi_opt } :: :: record + | [ mpat1 , ... , mpatn ] :: :: vector + | mpat1 : ... : mpatn :: :: vector_concat + | ( mpat1 , ... , mpatn ) :: :: tup + | [|| mpat1 , ... , mpatn ||] :: :: list + | ( mpat ) :: S :: paren {{ ichlo [[mpat]] }} + | mpat1 '::' mpat2 :: :: cons + | mpat1 ^^ mpat2 :: :: string_append mpexp :: 'MPat_' ::= {{ aux _ annot }} {{ auxparam 'a }} -- cgit v1.2.3