From 4f0abe554036f34395fe4ce72c920266fd809629 Mon Sep 17 00:00:00 2001 From: "John J. Camilleri" Date: Mon, 15 Feb 2021 01:14:34 +0100 Subject: [PATCH] Add FoodsFre, fails because pre is not implemented Also an unhandled Projection case --- testsuite/lpgf/Foods.treebank | 5 +++++ testsuite/lpgf/FoodsFre.gf | 31 +++++++++++++++++++++++++++++++ testsuite/lpgf/run.hs | 13 ++++++++++--- 3 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 testsuite/lpgf/FoodsFre.gf diff --git a/testsuite/lpgf/Foods.treebank b/testsuite/lpgf/Foods.treebank index 7e9fbd39b..395aad0e3 100644 --- a/testsuite/lpgf/Foods.treebank +++ b/testsuite/lpgf/Foods.treebank @@ -3,6 +3,7 @@ FoodsBul: онова вино е превъзходно FoodsChi: 那 瓶 酒 是 美 味 的 FoodsEng: that wine is delicious FoodsFin: tuo viini on herkullinen +FoodsFre: ce vin est délicieux FoodsHeb: היין ההוא טעים FoodsSwe: det där vinet är läckert @@ -11,6 +12,7 @@ FoodsBul: тази пица е много еднообразна FoodsChi: 这 张 比 萨 饼 是 非 常 难 吃 的 FoodsEng: this pizza is very boring FoodsFin: tämä pizza on erittäin tylsä +FoodsFre: cette pizza est très ennuyeuse FoodsHeb: הפיצה הזאת מאוד משעממת FoodsSwe: den här pizzan är mycket tråkig @@ -19,6 +21,7 @@ FoodsBul: това сирене е свежо FoodsChi: 这 块 奶 酪 是 新 鲜 的 FoodsEng: this cheese is fresh FoodsFin: tämä juusto on tuore +FoodsFre: ce fromage est frais FoodsHeb: הגבינה הזאת טריה FoodsSwe: den här osten är färsk @@ -27,6 +30,7 @@ FoodsBul: онези риби са горещи FoodsChi: 那 几 条 鱼 是 温 热 的 FoodsEng: those fish are warm FoodsFin: nuo kalat ovat lämpimiä +FoodsFre: ces poissons sont chauds FoodsHeb: הדגים ההם חמים FoodsSwe: de där fiskarna är varma @@ -35,6 +39,7 @@ FoodsBul: онази еднообразна италианска пица е с FoodsChi: 那 张 又 难 吃 又 意 大 利 式 的 比 萨 饼 是 昂 贵 的 FoodsEng: that boring Italian pizza is expensive FoodsFin: tuo tylsä italialainen pizza on kallis +FoodsFre: cette pizza italienne ennuyeuse est chère FoodsHeb: הפיצה האיטלקית המשעממת ההיא יקרה FoodsSwe: den där tråkiga italienska pizzan är dyr diff --git a/testsuite/lpgf/FoodsFre.gf b/testsuite/lpgf/FoodsFre.gf new file mode 100644 index 000000000..f95db827b --- /dev/null +++ b/testsuite/lpgf/FoodsFre.gf @@ -0,0 +1,31 @@ + +concrete FoodsFre of Foods = open SyntaxFre, ParadigmsFre in { + + flags coding = utf8 ; + + lincat + Comment = Utt ; + Item = NP ; + Kind = CN ; + Quality = AP ; + + lin + Pred item quality = mkUtt (mkCl item quality) ; + This kind = mkNP this_QuantSg kind ; + That kind = mkNP that_QuantSg kind ; + These kind = mkNP these_QuantPl kind ; + Those kind = mkNP those_QuantPl kind ; + Mod quality kind = mkCN quality kind ; + Very quality = mkAP very_AdA quality ; + + Wine = mkCN (mkN "vin" masculine) ; + Pizza = mkCN (mkN "pizza" feminine) ; + Cheese = mkCN (mkN "fromage" masculine) ; + Fish = mkCN (mkN "poisson" masculine) ; + Fresh = mkAP (mkA "frais" "fraîche" "frais" "fraîchement") ; + Warm = mkAP (mkA "chaud") ; + Italian = mkAP (mkA "italien") ; + Expensive = mkAP (mkA "cher") ; + Delicious = mkAP (mkA "délicieux") ; + Boring = mkAP (mkA "ennuyeux") ; + } diff --git a/testsuite/lpgf/run.hs b/testsuite/lpgf/run.hs index 4e7b3c1fe..db90d9df6 100644 --- a/testsuite/lpgf/run.hs +++ b/testsuite/lpgf/run.hs @@ -8,7 +8,7 @@ import qualified Data.List as L import qualified Data.Map as Map import Text.Printf (printf) import System.Directory (listDirectory) -import System.FilePath ((), (<.>), takeBaseName, takeExtension) +import System.FilePath ((), (<.>), takeBaseName, takeExtension, dropExtension) dir :: FilePath dir = "testsuite" "lpgf" @@ -20,12 +20,19 @@ main = do doGrammar "Params" doGrammar "Walking" doGrammar "Foods" + -- doGrammar' "Foods" ["Fre"] doGrammar :: String -> IO () -doGrammar gname = do +doGrammar gname = doGrammar' gname [] + +doGrammar' :: String -> [String] -> IO () +doGrammar' gname cncs = do -- Collect concrete modules mods <- map (dir ) - . filter (\p -> gname `L.isPrefixOf` takeBaseName p && takeExtension p == ".gf") + . filter (\p -> gname `L.isPrefixOf` takeBaseName p + && takeExtension p == ".gf" + && null cncs || any (`L.isSuffixOf` dropExtension p) cncs + ) <$> listDirectory dir -- Compile LPGF