diff options
| author | bringert <bringert@cs.chalmers.se> | 2005-12-05 16:44:56 +0000 |
|---|---|---|
| committer | bringert <bringert@cs.chalmers.se> | 2005-12-05 16:44:56 +0000 |
| commit | 747271941a9e4f698e985d6cb58efe2994e60d61 (patch) | |
| tree | 206416ffc1ee62d54aa0bd2e2db5d99b66c24943 /src/Transfer/Syntax/Syntax.cf | |
| parent | 066d5bb0a95b973db596f492f39184cd120c1786 (diff) | |
Added tuple expressions and patterns.
Diffstat (limited to 'src/Transfer/Syntax/Syntax.cf')
| -rw-r--r-- | src/Transfer/Syntax/Syntax.cf | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/Transfer/Syntax/Syntax.cf b/src/Transfer/Syntax/Syntax.cf index 50812d2f1..b38dd115f 100644 --- a/src/Transfer/Syntax/Syntax.cf +++ b/src/Transfer/Syntax/Syntax.cf @@ -41,9 +41,16 @@ internal PCons. Pattern3 ::= "(" Ident [Pattern] ")" ; PRec. Pattern3 ::= "rec" "{" [FieldPattern] "}"; -- List patterns -PList. Pattern3 ::= "[" [PListElem] "]" ; -PListElem. PListElem ::= Pattern ; -separator PListElem "," ; +PEmptyList. Pattern3 ::= "[" "]" ; +PList. Pattern3 ::= "[" [CommaPattern] "]" ; + +-- Tuple patterns +PTuple. Pattern3 ::= "(" CommaPattern "," [CommaPattern] ")" ; + +-- hack to allow a different [Pattern] from the one defined +-- for constructor patterns +CommaPattern. CommaPattern ::= Pattern ; +separator nonempty CommaPattern "," ; -- The pattern matching the Type constant PType. Pattern3 ::= "Type" ; @@ -121,8 +128,12 @@ ERec. Exp13 ::= "rec" "{" [FieldValue] "}" ; FieldValue.FieldValue ::= Ident "=" Exp ; separator FieldValue ";" ; +EEmptyList.Exp13 ::= "[" "]" ; EList. Exp13 ::= "[" [Exp] "]" ; +-- n-tuple, where n>=2 +ETuple. Exp13 ::= "(" Exp "," [Exp] ")" ; + EVar. Exp13 ::= Ident ; EType. Exp13 ::= "Type" ; EStr. Exp13 ::= String ; @@ -132,4 +143,4 @@ EMeta. Exp13 ::= "?" ; coercions Exp 13 ; -separator Exp "," ; +separator nonempty Exp "," ; |
