summaryrefslogtreecommitdiff
path: root/src/GF/Source/ParGF.y
diff options
context:
space:
mode:
authorbjorn <bjorn@bringert.net>2008-10-03 07:35:26 +0000
committerbjorn <bjorn@bringert.net>2008-10-03 07:35:26 +0000
commit1e8699d159dc510c300a5657e1127400030a1c10 (patch)
tree005ec2c04d5cb6b97a6ee884c8cfd442bc3ca2d3 /src/GF/Source/ParGF.y
parentb7fe4eacc90c538a7a366c5ee6cef2c285451c47 (diff)
Added | syntax for variants.
Diffstat (limited to 'src/GF/Source/ParGF.y')
-rw-r--r--src/GF/Source/ParGF.y13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/GF/Source/ParGF.y b/src/GF/Source/ParGF.y
index 397c57eb2..3a52b0cb6 100644
--- a/src/GF/Source/ParGF.y
+++ b/src/GF/Source/ParGF.y
@@ -428,13 +428,18 @@ Exp3 : Exp3 '!' Exp4 { ESelect $1 $3 }
| Exp4 { $1 }
+Exp2 :: { Exp }
+Exp2 : Exp3 '+' Exp2 { EGlue $1 $3 }
+ | Exp3 { $1 }
+
+
Exp1 :: { Exp }
-Exp1 : Exp2 '+' Exp1 { EGlue $1 $3 }
+Exp1 : Exp2 '++' Exp1 { EConcat $1 $3 }
| Exp2 { $1 }
Exp :: { Exp }
-Exp : Exp1 '++' Exp { EConcat $1 $3 }
+Exp : Exp1 '|' Exp { EVariant $1 $3 }
| '\\' ListBind '->' Exp { EAbstr $2 $4 }
| '\\' '\\' ListBind '=>' Exp { ECTable $3 $5 }
| Decl '->' Exp { EProd $1 $3 }
@@ -447,10 +452,6 @@ Exp : Exp1 '++' Exp { EConcat $1 $3 }
| Exp1 { $1 }
-Exp2 :: { Exp }
-Exp2 : Exp3 { $1 }
-
-
ListExp :: { [Exp] }
ListExp : {- empty -} { [] }
| Exp { (:[]) $1 }