From a0c60530cb1fa0ba7ac7464748d92fdd941da6a8 Mon Sep 17 00:00:00 2001 From: aarne Date: Thu, 8 Jun 2006 09:54:41 +0000 Subject: [PATCH] bug fix in MkConcrete --- examples/animal/QuestionsI.gf | 6 +++--- src/GF/Compile/MkConcrete.hs | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/examples/animal/QuestionsI.gf b/examples/animal/QuestionsI.gf index e3db18905..fb4b7a581 100644 --- a/examples/animal/QuestionsI.gf +++ b/examples/animal/QuestionsI.gf @@ -1,11 +1,11 @@ -- File generated by GF from ./QuestionsI.gfe incomplete concrete QuestionsI of Questions = open Lang in { lincat Action = V2 ; - lin Answer = \woman_N -> \love_V2 -> \man_N -> % Lang.PhrUtt % Lang.NoPConj (% Lang.UttNP (% Lang.DetCN (% Lang.DetSg (% Lang.SgQuant % Lang.DefArt)% Lang.NoOrd)(% Lang.ApposCN (% Lang.ApposCN (% Lang.UseN % Lang.woman_N)(% Lang.DetCN (% Lang.DetPl (% Lang.PlQuant % Lang.IndefArt)% Lang.NoNum % Lang.NoOrd)(% Lang.UseN % Lang.love_N)))(% Lang.DetCN (% Lang.DetPl (% Lang.PlQuant % Lang.IndefArt)% Lang.NoNum % Lang.NoOrd)(% Lang.UseN % Lang.man_N)))))% Lang.NoVoc ; + lin Answer = \woman_N -> \love_V2 -> \man_N -> PhrUtt NoPConj (UttNP (DetCN (DetSg (SgQuant DefArt)NoOrd)(ApposCN (ApposCN (UseN woman_N)(DetCN (DetPl (PlQuant IndefArt)NoNum NoOrd)(UseN love_N)))(DetCN (DetPl (PlQuant IndefArt)NoNum NoOrd)(UseN man_N)))))NoVoc ; lincat Entity = N ; lincat Phrase = Phr ; - lin Who = \love_V2 -> \man_N -> % Lang.PhrUtt % Lang.NoPConj (% Lang.UttAdv (% Lang.AdvSC (% Lang.EmbedQS (% Lang.UseQCl % Lang.TPres % Lang.ASimul % Lang.PPos (% Lang.QuestVP % Lang.whoSg_IP (% Lang.ComplV2 % Lang.love_V2 (% Lang.DetCN (% Lang.DetPl (% Lang.PlQuant % Lang.IndefArt)% Lang.NoNum % Lang.NoOrd)(% Lang.UseN % Lang.man_N)))))))) % Lang.NoVoc ; - lin Whom = \man_N -> \love_V2 -> % Lang.PhrUtt % Lang.NoPConj (% Lang.UttQS (% Lang.UseQCl % Lang.TPres % Lang.ASimul % Lang.PPos (% Lang.QuestSlash % Lang.whoPl_IP (% Lang.SlashV2 (% Lang.DetCN (% Lang.DetSg (% Lang.SgQuant % Lang.DefArt)% Lang.NoOrd)(% Lang.UseN % Lang.man_N)) % Lang.love_V2)))) % Lang.NoVoc ; + lin Who = \love_V2 -> \man_N -> PhrUtt NoPConj (UttAdv (AdvSC (EmbedQS (UseQCl TPres ASimul PPos (QuestVP whoSg_IP (ComplV2 love_V2 (DetCN (DetPl (PlQuant IndefArt)NoNum NoOrd)(UseN man_N)))))))) NoVoc ; + lin Whom = \man_N -> \love_V2 -> PhrUtt NoPConj (UttQS (UseQCl TPres ASimul PPos (QuestSlash whoPl_IP (SlashV2 (DetCN (DetSg (SgQuant DefArt)NoOrd)(UseN man_N)) love_V2)))) NoVoc ; } {- AMBIGUOUS in Who diff --git a/src/GF/Compile/MkConcrete.hs b/src/GF/Compile/MkConcrete.hs index da9fada00..2bd45a4e5 100644 --- a/src/GF/Compile/MkConcrete.hs +++ b/src/GF/Compile/MkConcrete.hs @@ -21,6 +21,7 @@ import GF.Grammar.Macros (composSafeOp, composOp, record2subst, zIdent) import GF.Compile.ShellState --(firstStateGrammar,stateGrammarWords) import GF.Compile.PGrammar (pTerm,pTrm) import GF.Compile.Compile +import GF.Compile.PrOld (stripTerm) import GF.Compile.GetGrammar import GF.API import GF.API.IOGrammar @@ -140,10 +141,10 @@ mkModule parser morpho (name,src) = case src of parse cat s t = case parser (prt_ cat) s of (tr:[], _) -> do updateSTM ((("PARSED in" +++ prt_ name) : s : [prt_ tr]) ++) - return tr + return $ stripTerm tr (tr:trs,_) -> do updateSTM ((("AMBIGUOUS in" +++ prt_ name) : s : map prt_ trs) ++) - return tr + return $ stripTerm tr ([],ms) -> do updateSTM ((("NO PARSE in" +++ prt_ name) : s : ms : [morph s]) ++) return t