From 82308426c66c23e5f3a5aaaadddedf7c2344a770 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Tue, 9 Apr 2024 19:23:14 +0200 Subject: [PATCH] merge variants when the | operator is used --- src/compiler/api/GF/Grammar/Parser.y | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/compiler/api/GF/Grammar/Parser.y b/src/compiler/api/GF/Grammar/Parser.y index 196cca276..4ddc72d6a 100644 --- a/src/compiler/api/GF/Grammar/Parser.y +++ b/src/compiler/api/GF/Grammar/Parser.y @@ -400,7 +400,12 @@ ListLocDef Exp :: { Term } Exp - : Exp1 '|' Exp { FV [$1,$3] } + : Exp1 '|' Exp { case ($1,$3) of + (FV xs,FV ys) -> FV (xs++ys ) + (FV xs,y ) -> FV (xs++[y]) + (x, FV ys) -> FV (x:ys) + (x, y ) -> FV [x,y] + } | '\\' ListBind '->' Exp { mkAbs $2 $4 } | '\\\\' ListBind '=>' Exp { mkCTable $2 $4 } | Decl '->' Exp { mkProdSimple $1 $3 }