summaryrefslogtreecommitdiff
path: root/src/Transfer/Syntax/Par.y
diff options
context:
space:
mode:
authorbringert <bringert@cs.chalmers.se>2005-12-05 16:44:56 +0000
committerbringert <bringert@cs.chalmers.se>2005-12-05 16:44:56 +0000
commit747271941a9e4f698e985d6cb58efe2994e60d61 (patch)
tree206416ffc1ee62d54aa0bd2e2db5d99b66c24943 /src/Transfer/Syntax/Par.y
parent066d5bb0a95b973db596f492f39184cd120c1786 (diff)
Added tuple expressions and patterns.
Diffstat (limited to 'src/Transfer/Syntax/Par.y')
-rw-r--r--src/Transfer/Syntax/Par.y20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/Transfer/Syntax/Par.y b/src/Transfer/Syntax/Par.y
index 9b66dccd1..61a2788ef 100644
--- a/src/Transfer/Syntax/Par.y
+++ b/src/Transfer/Syntax/Par.y
@@ -136,7 +136,9 @@ Pattern2 : Ident Pattern3 ListPattern { PConsTop $1 $2 (reverse $3) }
Pattern3 :: { Pattern }
Pattern3 : 'rec' '{' ListFieldPattern '}' { PRec $3 }
- | '[' ListPListElem ']' { PList $2 }
+ | '[' ']' { PEmptyList }
+ | '[' ListCommaPattern ']' { PList $2 }
+ | '(' CommaPattern ',' ListCommaPattern ')' { PTuple $2 $4 }
| 'Type' { PType }
| String { PStr $1 }
| Integer { PInt $1 }
@@ -145,14 +147,13 @@ Pattern3 : 'rec' '{' ListFieldPattern '}' { PRec $3 }
| '(' Pattern ')' { $2 }
-PListElem :: { PListElem }
-PListElem : Pattern { PListElem $1 }
+CommaPattern :: { CommaPattern }
+CommaPattern : Pattern { CommaPattern $1 }
-ListPListElem :: { [PListElem] }
-ListPListElem : {- empty -} { [] }
- | PListElem { (:[]) $1 }
- | PListElem ',' ListPListElem { (:) $1 $3 }
+ListCommaPattern :: { [CommaPattern] }
+ListCommaPattern : CommaPattern { (:[]) $1 }
+ | CommaPattern ',' ListCommaPattern { (:) $1 $3 }
ListPattern :: { [Pattern] }
@@ -282,7 +283,9 @@ Exp12 : Exp12 '.' Ident { EProj $1 $3 }
Exp13 :: { Exp }
Exp13 : 'sig' '{' ListFieldType '}' { ERecType $3 }
| 'rec' '{' ListFieldValue '}' { ERec $3 }
+ | '[' ']' { EEmptyList }
| '[' ListExp ']' { EList $2 }
+ | '(' Exp ',' ListExp ')' { ETuple $2 $4 }
| Ident { EVar $1 }
| 'Type' { EType }
| String { EStr $1 }
@@ -317,8 +320,7 @@ Exp2 : Exp3 { $1 }
ListExp :: { [Exp] }
-ListExp : {- empty -} { [] }
- | Exp { (:[]) $1 }
+ListExp : Exp { (:[]) $1 }
| Exp ',' ListExp { (:) $1 $3 }