diff options
| author | bjorn <bjorn@bringert.net> | 2008-10-03 07:35:26 +0000 |
|---|---|---|
| committer | bjorn <bjorn@bringert.net> | 2008-10-03 07:35:26 +0000 |
| commit | 1e8699d159dc510c300a5657e1127400030a1c10 (patch) | |
| tree | 005ec2c04d5cb6b97a6ee884c8cfd442bc3ca2d3 /src/GF/Source/ParGF.y | |
| parent | b7fe4eacc90c538a7a366c5ee6cef2c285451c47 (diff) | |
Added | syntax for variants.
Diffstat (limited to 'src/GF/Source/ParGF.y')
| -rw-r--r-- | src/GF/Source/ParGF.y | 13 |
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 } |
