summaryrefslogtreecommitdiff
path: root/src/Transfer/Syntax/Par.y
diff options
context:
space:
mode:
authorbringert <bringert@cs.chalmers.se>2005-11-29 18:16:33 +0000
committerbringert <bringert@cs.chalmers.se>2005-11-29 18:16:33 +0000
commit9a2dea46d103d180c3b0e0780df4f10a8a16f386 (patch)
treef3ddcb3dcff372f877241330301d0fd21a614e72 /src/Transfer/Syntax/Par.y
parent5b9249a422cb1ac172d6b5f1f03d5cde629d6216 (diff)
Use rec and sig for records.
Diffstat (limited to 'src/Transfer/Syntax/Par.y')
-rw-r--r--src/Transfer/Syntax/Par.y15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/Transfer/Syntax/Par.y b/src/Transfer/Syntax/Par.y
index 42a8ec002..5bb795c0f 100644
--- a/src/Transfer/Syntax/Par.y
+++ b/src/Transfer/Syntax/Par.y
@@ -49,6 +49,8 @@ import Transfer.ErrM
'in' { PT _ (TS "in") }
'let' { PT _ (TS "let") }
'of' { PT _ (TS "of") }
+ 'rec' { PT _ (TS "rec") }
+ 'sig' { PT _ (TS "sig") }
'then' { PT _ (TS "then") }
'where' { PT _ (TS "where") }
@@ -108,7 +110,7 @@ Pattern : Ident Pattern1 ListPattern { PConsTop $1 $2 (reverse $3) }
Pattern1 :: { Pattern }
Pattern1 : '(' Ident ListPattern ')' { PCons $2 (reverse $3) }
- | '{' ListFieldPattern '}' { PRec $2 }
+ | 'rec' '{' ListFieldPattern '}' { PRec $3 }
| 'Type' { PType }
| String { PStr $1 }
| Integer { PInt $1 }
@@ -219,9 +221,8 @@ Exp10 : Exp10 '.' Ident { EProj $1 $3 }
Exp11 :: { Exp }
-Exp11 : '{' '}' { EEmptyRec }
- | '{' ListFieldType '}' { ERecType $2 }
- | '{' ListFieldValue '}' { ERec $2 }
+Exp11 : 'sig' '{' ListFieldType '}' { ERecType $3 }
+ | 'rec' '{' ListFieldValue '}' { ERec $3 }
| Ident { EVar $1 }
| 'Type' { EType }
| String { EStr $1 }
@@ -235,7 +236,8 @@ FieldType : Ident ':' Exp { FieldType $1 $3 }
ListFieldType :: { [FieldType] }
-ListFieldType : FieldType { (:[]) $1 }
+ListFieldType : {- empty -} { [] }
+ | FieldType { (:[]) $1 }
| FieldType ';' ListFieldType { (:) $1 $3 }
@@ -244,7 +246,8 @@ FieldValue : Ident '=' Exp { FieldValue $1 $3 }
ListFieldValue :: { [FieldValue] }
-ListFieldValue : FieldValue { (:[]) $1 }
+ListFieldValue : {- empty -} { [] }
+ | FieldValue { (:[]) $1 }
| FieldValue ';' ListFieldValue { (:) $1 $3 }