diff --git a/lib/resource-1.0/api/toplevel/FromOverload.hs b/lib/resource-1.0/api/toplevel/FromOverload.hs index 1833963a0..7f2569977 100644 --- a/lib/resource-1.0/api/toplevel/FromOverload.hs +++ b/lib/resource-1.0/api/toplevel/FromOverload.hs @@ -5,6 +5,18 @@ main = do writeFile abstr "abstract OverGrammar = Structural,Numeral,Conjunction[ListS,ListNP,ListAP,ListAdv] ** {\n" appendFile abstr "cat ImpForm ; Punct ;\n" writeFile concr "concrete OverGrammarEng of OverGrammar = StructuralEng,NumeralEng,ConjunctionEng[ListS,ListNP,ListAP,ListAdv] ** open GrammarEng in {\n" + mapM_ (appendFile concr) [ + "lincat ImpForm = {p : PImpForm ; s : Str} ;\n", + "lincat Punct = {p : PPunct ; s : Str} ;\n", + "param PImpForm = IFSg | IFPl | IFPol ;\n", + "param PPunct = PFullStop | PExclMark | PQuestMark ;\n", + "oper mkUttImp : PImpForm -> Str -> Pol -> Imp -> Utt = \\f,s,p,i -> {s = s ++ (case f of {\n", + " IFSg => UttImpSg p i ; IFPl => UttImpPl p i ; IFPol => UttImpPol p i}).s ; lock_Utt = <>} ;\n", + "oper mkPhrPunct : Phr -> PPunct -> Str -> Text -> Text = \\p,f,s,t -> {s = s ++ (case f of {\n", + " PFullStop => TFullStop p t ; PExclMark => TExclMark p t ; PQuestMark => TQuestMark p t}).s ;\n", + " lock_Text = <>} ;\n" + ] + foldM process ("",0) ss appendFile abstr "}\n" appendFile concr "}\n" diff --git a/lib/resource-1.0/api/toplevel/OverGrammar.gf b/lib/resource-1.0/api/toplevel/OverGrammar.gf index d16c4f8e1..a062d8249 100644 --- a/lib/resource-1.0/api/toplevel/OverGrammar.gf +++ b/lib/resource-1.0/api/toplevel/OverGrammar.gf @@ -154,111 +154,121 @@ fun ovrld150_presentTense : Tense ; fun ovrld151_pastTense : Tense ; fun ovrld152_futureTense : Tense ; fun ovrld153_conditionalTense : Tense ; -fun ovrld154_mkUtt : S -> Utt ; -fun ovrld155_mkUtt : Cl -> Utt ; -fun ovrld156_mkUtt : QS -> Utt ; -fun ovrld157_mkUtt : Pol -> Imp -> Utt ; -fun ovrld158_mkUtt : Imp -> Utt ; -fun ovrld159_mkUtt : IP -> Utt ; -fun ovrld160_mkUtt : IAdv -> Utt ; -fun ovrld161_mkUtt : NP -> Utt ; -fun ovrld162_mkUtt : Adv -> Utt ; -fun ovrld163_mkUtt : VP -> Utt ; -fun ovrld164_lets_Utt : VP -> Utt ; -fun ovrld165_mkQCl : Cl -> QCl ; -fun ovrld166_mkQCl : IP -> VP -> QCl ; -fun ovrld167_mkQCl : IP -> Slash -> QCl ; -fun ovrld168_mkQCl : IP -> NP -> V2 -> QCl ; -fun ovrld169_mkQCl : IAdv -> Cl -> QCl ; -fun ovrld170_mkQCl : Prep -> IP -> Cl -> QCl ; -fun ovrld171_mkQCl : IAdv -> NP -> QCl ; -fun ovrld172_mkQCl : IP -> QCl ; -fun ovrld173_mkIP : IDet -> Num -> Ord -> CN -> IP ; -fun ovrld174_mkIP : IDet -> Ord -> CN -> IP ; -fun ovrld175_mkIP : IDet -> Num -> CN -> IP ; -fun ovrld176_mkIP : IDet -> N -> IP ; -fun ovrld177_mkIP : IP -> Adv -> IP ; -fun ovrld178_mkIAdv : Prep -> IP -> IAdv ; -fun ovrld179_mkRCl : Cl -> RCl ; -fun ovrld180_mkRCl : RP -> VP -> RCl ; -fun ovrld181_mkRCl : RP -> Slash -> RCl ; -fun ovrld182_mkRCl : RP -> NP -> V2 -> RCl ; -fun ovrld183_which_RP : RP ; -fun ovrld184_mkRP : Prep -> NP -> RP -> RP ; -fun ovrld185_mkSlash : NP -> V2 -> Slash ; -fun ovrld186_mkSlash : NP -> VV -> V2 -> Slash ; -fun ovrld187_mkSlash : Slash -> Adv -> Slash ; -fun ovrld188_mkSlash : Cl -> Prep -> Slash ; -fun ovrld189_mkImp : VP -> Imp ; -fun ovrld190_mkImp : V -> Imp ; -fun ovrld191_mkImp : V2 -> NP -> Imp ; -fun ovrld192_mkS : Cl -> S ; -fun ovrld193_mkS : Tense -> Cl -> S ; -fun ovrld194_mkS : Ant -> Cl -> S ; -fun ovrld195_mkS : Pol -> Cl -> S ; -fun ovrld196_mkS : Tense -> Ant -> Cl -> S ; -fun ovrld197_mkS : Tense -> Pol -> Cl -> S ; -fun ovrld198_mkS : Ant -> Pol -> Cl -> S ; -fun ovrld199_mkS : Tense -> Ant -> Pol -> Cl -> S ; -fun ovrld200_mkS : Conj -> S -> S -> S ; -fun ovrld201_mkS : DConj -> S -> S -> S ; -fun ovrld202_mkS : Conj -> ListS -> S ; -fun ovrld203_mkS : DConj -> ListS -> S ; -fun ovrld204_mkS : Adv -> S -> S ; -fun ovrld205_mkQS : QCl -> QS ; -fun ovrld206_mkQS : Tense -> QCl -> QS ; -fun ovrld207_mkQS : Ant -> QCl -> QS ; -fun ovrld208_mkQS : Pol -> QCl -> QS ; -fun ovrld209_mkQS : Tense -> Ant -> QCl -> QS ; -fun ovrld210_mkQS : Tense -> Pol -> QCl -> QS ; -fun ovrld211_mkQS : Ant -> Pol -> QCl -> QS ; -fun ovrld212_mkQS : Tense -> Ant -> Pol -> QCl -> QS ; -fun ovrld213_mkQS : Cl -> QS ; -fun ovrld214_mkRS : RCl -> RS ; -fun ovrld215_mkRS : Tense -> RCl -> RS ; -fun ovrld216_mkRS : Ant -> RCl -> RS ; -fun ovrld217_mkRS : Pol -> RCl -> RS ; -fun ovrld218_mkRS : Tense -> Ant -> RCl -> RS ; -fun ovrld219_mkRS : Tense -> Pol -> RCl -> RS ; -fun ovrld220_mkRS : Ant -> Pol -> RCl -> RS ; -fun ovrld221_mkRS : Tense -> Ant -> Pol -> RCl -> RS ; -fun ovrld222_emptyText : Text ; -fun ovrld223_mkText : Phr -> Text ; -fun ovrld224_mkText : Utt -> Text ; -fun ovrld225_mkText : S -> Text ; -fun ovrld226_mkText : Cl -> Text ; -fun ovrld227_mkText : QS -> Text ; -fun ovrld228_mkText : Imp -> Text ; -fun ovrld229_mkText : Pol -> Imp -> Text ; -fun ovrld230_mkText : Phr -> Text -> Text ; -fun ovrld231_mkVP : V -> VP ; -fun ovrld232_mkVP : V2 -> NP -> VP ; -fun ovrld233_mkVP : V3 -> NP -> NP -> VP ; -fun ovrld234_mkVP : VV -> VP -> VP ; -fun ovrld235_mkVP : VS -> S -> VP ; -fun ovrld236_mkVP : VQ -> QS -> VP ; -fun ovrld237_mkVP : VA -> AP -> VP ; -fun ovrld238_mkVP : V2A -> NP -> AP -> VP ; -fun ovrld239_mkVP : A -> VP ; -fun ovrld240_mkVP : A -> NP -> VP ; -fun ovrld241_mkVP : A2 -> NP -> VP ; -fun ovrld242_mkVP : AP -> VP ; -fun ovrld243_mkVP : NP -> VP ; -fun ovrld244_mkVP : CN -> VP ; -fun ovrld245_mkVP : N -> VP ; -fun ovrld246_mkVP : Adv -> VP ; -fun ovrld247_mkVP : VP -> Adv -> VP ; -fun ovrld248_mkVP : AdV -> VP -> VP ; -fun ovrld249_reflexiveVP : V2 -> VP ; -fun ovrld250_passiveVP : V2 -> VP ; -fun ovrld251_passiveVP : V2 -> NP -> VP ; -fun ovrld252_progressiveVP : VP -> VP ; -fun ovrld253_mkListS : S -> S -> ListS ; -fun ovrld254_mkListS : S -> ListS -> ListS ; -fun ovrld255_mkListAP : AP -> AP -> ListAP ; -fun ovrld256_mkListAP : AP -> ListAP -> ListAP ; -fun ovrld257_mkListAdv : Adv -> Adv -> ListAdv ; -fun ovrld258_mkListAdv : Adv -> ListAdv -> ListAdv ; -fun ovrld259_mkListNP : NP -> NP -> ListNP ; -fun ovrld260_mkListNP : NP -> ListNP -> ListNP ; +fun ovrld154_singularImpForm : ImpForm ; +fun ovrld155_pluralImpForm : ImpForm ; +fun ovrld156_politeImpForm : ImpForm ; +fun ovrld157_mkUtt : S -> Utt ; +fun ovrld158_mkUtt : Cl -> Utt ; +fun ovrld159_mkUtt : QS -> Utt ; +fun ovrld160_mkUtt : ImpForm -> Pol -> Imp -> Utt ; +fun ovrld161_mkUtt : ImpForm -> Imp -> Utt ; +fun ovrld162_mkUtt : Pol -> Imp -> Utt ; +fun ovrld163_mkUtt : Imp -> Utt ; +fun ovrld164_mkUtt : IP -> Utt ; +fun ovrld165_mkUtt : IAdv -> Utt ; +fun ovrld166_mkUtt : NP -> Utt ; +fun ovrld167_mkUtt : Adv -> Utt ; +fun ovrld168_mkUtt : VP -> Utt ; +fun ovrld169_lets_Utt : VP -> Utt ; +fun ovrld170_mkQCl : Cl -> QCl ; +fun ovrld171_mkQCl : IP -> VP -> QCl ; +fun ovrld172_mkQCl : IP -> Slash -> QCl ; +fun ovrld173_mkQCl : IP -> NP -> V2 -> QCl ; +fun ovrld174_mkQCl : IAdv -> Cl -> QCl ; +fun ovrld175_mkQCl : Prep -> IP -> Cl -> QCl ; +fun ovrld176_mkQCl : IAdv -> NP -> QCl ; +fun ovrld177_mkQCl : IP -> QCl ; +fun ovrld178_mkIP : IDet -> Num -> Ord -> CN -> IP ; +fun ovrld179_mkIP : IDet -> Ord -> CN -> IP ; +fun ovrld180_mkIP : IDet -> Num -> CN -> IP ; +fun ovrld181_mkIP : IDet -> N -> IP ; +fun ovrld182_mkIP : IP -> Adv -> IP ; +fun ovrld183_mkIAdv : Prep -> IP -> IAdv ; +fun ovrld184_mkRCl : Cl -> RCl ; +fun ovrld185_mkRCl : RP -> VP -> RCl ; +fun ovrld186_mkRCl : RP -> Slash -> RCl ; +fun ovrld187_mkRCl : RP -> NP -> V2 -> RCl ; +fun ovrld188_which_RP : RP ; +fun ovrld189_mkRP : Prep -> NP -> RP -> RP ; +fun ovrld190_mkSlash : NP -> V2 -> Slash ; +fun ovrld191_mkSlash : NP -> VV -> V2 -> Slash ; +fun ovrld192_mkSlash : Slash -> Adv -> Slash ; +fun ovrld193_mkSlash : Cl -> Prep -> Slash ; +fun ovrld194_mkImp : VP -> Imp ; +fun ovrld195_mkImp : V -> Imp ; +fun ovrld196_mkImp : V2 -> NP -> Imp ; +fun ovrld197_mkS : Cl -> S ; +fun ovrld198_mkS : Tense -> Cl -> S ; +fun ovrld199_mkS : Ant -> Cl -> S ; +fun ovrld200_mkS : Pol -> Cl -> S ; +fun ovrld201_mkS : Tense -> Ant -> Cl -> S ; +fun ovrld202_mkS : Tense -> Pol -> Cl -> S ; +fun ovrld203_mkS : Ant -> Pol -> Cl -> S ; +fun ovrld204_mkS : Tense -> Ant -> Pol -> Cl -> S ; +fun ovrld205_mkS : Conj -> S -> S -> S ; +fun ovrld206_mkS : DConj -> S -> S -> S ; +fun ovrld207_mkS : Conj -> ListS -> S ; +fun ovrld208_mkS : DConj -> ListS -> S ; +fun ovrld209_mkS : Adv -> S -> S ; +fun ovrld210_mkQS : QCl -> QS ; +fun ovrld211_mkQS : Tense -> QCl -> QS ; +fun ovrld212_mkQS : Ant -> QCl -> QS ; +fun ovrld213_mkQS : Pol -> QCl -> QS ; +fun ovrld214_mkQS : Tense -> Ant -> QCl -> QS ; +fun ovrld215_mkQS : Tense -> Pol -> QCl -> QS ; +fun ovrld216_mkQS : Ant -> Pol -> QCl -> QS ; +fun ovrld217_mkQS : Tense -> Ant -> Pol -> QCl -> QS ; +fun ovrld218_mkQS : Cl -> QS ; +fun ovrld219_mkRS : RCl -> RS ; +fun ovrld220_mkRS : Tense -> RCl -> RS ; +fun ovrld221_mkRS : Ant -> RCl -> RS ; +fun ovrld222_mkRS : Pol -> RCl -> RS ; +fun ovrld223_mkRS : Tense -> Ant -> RCl -> RS ; +fun ovrld224_mkRS : Tense -> Pol -> RCl -> RS ; +fun ovrld225_mkRS : Ant -> Pol -> RCl -> RS ; +fun ovrld226_mkRS : Tense -> Ant -> Pol -> RCl -> RS ; +fun ovrld227_emptyText : Text ; +fun ovrld228_fullStopPunct : Punct ; +fun ovrld229_questMarkPunct : Punct ; +fun ovrld230_exclMarkPunct : Punct ; +fun ovrld231_mkText : Phr -> Punct -> Text -> Text ; +fun ovrld232_mkText : Phr -> Punct -> Text ; +fun ovrld233_mkText : Phr -> Text ; +fun ovrld234_mkText : Utt -> Text ; +fun ovrld235_mkText : S -> Text ; +fun ovrld236_mkText : Cl -> Text ; +fun ovrld237_mkText : QS -> Text ; +fun ovrld238_mkText : Imp -> Text ; +fun ovrld239_mkText : Pol -> Imp -> Text ; +fun ovrld240_mkText : Phr -> Text -> Text ; +fun ovrld241_mkVP : V -> VP ; +fun ovrld242_mkVP : V2 -> NP -> VP ; +fun ovrld243_mkVP : V3 -> NP -> NP -> VP ; +fun ovrld244_mkVP : VV -> VP -> VP ; +fun ovrld245_mkVP : VS -> S -> VP ; +fun ovrld246_mkVP : VQ -> QS -> VP ; +fun ovrld247_mkVP : VA -> AP -> VP ; +fun ovrld248_mkVP : V2A -> NP -> AP -> VP ; +fun ovrld249_mkVP : A -> VP ; +fun ovrld250_mkVP : A -> NP -> VP ; +fun ovrld251_mkVP : A2 -> NP -> VP ; +fun ovrld252_mkVP : AP -> VP ; +fun ovrld253_mkVP : NP -> VP ; +fun ovrld254_mkVP : CN -> VP ; +fun ovrld255_mkVP : N -> VP ; +fun ovrld256_mkVP : Adv -> VP ; +fun ovrld257_mkVP : VP -> Adv -> VP ; +fun ovrld258_mkVP : AdV -> VP -> VP ; +fun ovrld259_reflexiveVP : V2 -> VP ; +fun ovrld260_passiveVP : V2 -> VP ; +fun ovrld261_passiveVP : V2 -> NP -> VP ; +fun ovrld262_progressiveVP : VP -> VP ; +fun ovrld263_mkListS : S -> S -> ListS ; +fun ovrld264_mkListS : S -> ListS -> ListS ; +fun ovrld265_mkListAP : AP -> AP -> ListAP ; +fun ovrld266_mkListAP : AP -> ListAP -> ListAP ; +fun ovrld267_mkListAdv : Adv -> Adv -> ListAdv ; +fun ovrld268_mkListAdv : Adv -> ListAdv -> ListAdv ; +fun ovrld269_mkListNP : NP -> NP -> ListNP ; +fun ovrld270_mkListNP : NP -> ListNP -> ListNP ; } diff --git a/lib/resource-1.0/api/toplevel/OverGrammarEng.gf b/lib/resource-1.0/api/toplevel/OverGrammarEng.gf index 989a327cb..4daffcb44 100644 --- a/lib/resource-1.0/api/toplevel/OverGrammarEng.gf +++ b/lib/resource-1.0/api/toplevel/OverGrammarEng.gf @@ -1,4 +1,13 @@ concrete OverGrammarEng of OverGrammar = StructuralEng,NumeralEng,ConjunctionEng[ListS,ListNP,ListAP,ListAdv] ** open GrammarEng in { +lincat ImpForm = {p : PImpForm ; s : Str} ; +lincat Punct = {p : PPunct ; s : Str} ; +param PImpForm = IFSg | IFPl | IFPol ; +param PPunct = PFullStop | PExclMark | PQuestMark ; +oper mkUttImp : PImpForm -> Str -> Pol -> Imp -> Utt = \f,s,p,i -> {s = s ++ (case f of { + IFSg => UttImpSg p i ; IFPl => UttImpPl p i ; IFPol => UttImpPol p i}).s ; lock_Utt = <>} ; +oper mkPhrPunct : Phr -> PPunct -> Str -> Text -> Text = \p,f,s,t -> {s = s ++ (case f of { + PFullStop => TFullStop p t ; PExclMark => TExclMark p t ; PQuestMark => TQuestMark p t}).s ; + lock_Text = <>} ; lin ovrld0_mkAP = PositA ; lin ovrld1_mkAP = ComparA ; lin ovrld2_mkAP = ComplA2 ; @@ -153,111 +162,121 @@ lin ovrld150_presentTense = TPres ; lin ovrld151_pastTense = TPast ; lin ovrld152_futureTense = TFut ; lin ovrld153_conditionalTense = TCond ; -lin ovrld154_mkUtt = UttS ; -lin ovrld155_mkUtt = \c -> UttS (UseCl TPres ASimul PPos c) ; -lin ovrld156_mkUtt = UttQS ; -lin ovrld157_mkUtt = UttImpSg ; -lin ovrld158_mkUtt = UttImpSg PPos ; -lin ovrld159_mkUtt = UttIP ; -lin ovrld160_mkUtt = UttIAdv ; -lin ovrld161_mkUtt = UttNP ; -lin ovrld162_mkUtt = UttAdv ; -lin ovrld163_mkUtt = UttVP ; -lin ovrld164_lets_Utt = ImpPl1 ; -lin ovrld165_mkQCl = QuestCl ; -lin ovrld166_mkQCl = QuestVP ; -lin ovrld167_mkQCl = QuestSlash ; -lin ovrld168_mkQCl = \ip,np,v -> QuestSlash ip (SlashV2 np v) ; -lin ovrld169_mkQCl = QuestIAdv ; -lin ovrld170_mkQCl = \p,ip -> QuestIAdv (PrepIP p ip) ; -lin ovrld171_mkQCl = \a -> QuestIComp (CompIAdv a) ; -lin ovrld172_mkQCl = ExistIP ; -lin ovrld173_mkIP = IDetCN ; -lin ovrld174_mkIP = \i -> IDetCN i NoNum ; -lin ovrld175_mkIP = \i,n -> IDetCN i n NoOrd ; -lin ovrld176_mkIP = \i,n -> IDetCN i NoNum NoOrd (UseN n) ; -lin ovrld177_mkIP = AdvIP ; -lin ovrld178_mkIAdv = PrepIP ; -lin ovrld179_mkRCl = RelCl ; -lin ovrld180_mkRCl = RelVP ; -lin ovrld181_mkRCl = RelSlash ; -lin ovrld182_mkRCl = \rp,np,v2 -> RelSlash rp (SlashV2 np v2) ; -lin ovrld183_which_RP = IdRP ; -lin ovrld184_mkRP = FunRP ; -lin ovrld185_mkSlash = SlashV2 ; -lin ovrld186_mkSlash = SlashVVV2 ; -lin ovrld187_mkSlash = AdvSlash ; -lin ovrld188_mkSlash = SlashPrep ; -lin ovrld189_mkImp = ImpVP ; -lin ovrld190_mkImp = \v -> ImpVP (UseV v) ; -lin ovrld191_mkImp = \v,np -> ImpVP (ComplV2 v np) ; -lin ovrld192_mkS = UseCl TPres ASimul PPos ; -lin ovrld193_mkS = \t -> UseCl t ASimul PPos ; -lin ovrld194_mkS = \a -> UseCl TPres a PPos ; -lin ovrld195_mkS = \p -> UseCl TPres ASimul p ; -lin ovrld196_mkS = \t,a -> UseCl t a PPos ; -lin ovrld197_mkS = \t,p -> UseCl t ASimul p ; -lin ovrld198_mkS = \a,p -> UseCl TPres a p ; -lin ovrld199_mkS = UseCl ; -lin ovrld200_mkS = \c,x,y -> ConjS c (BaseS x y) ; -lin ovrld201_mkS = \c,x,y -> DConjS c (BaseS x y) ; -lin ovrld202_mkS = \c,xy -> ConjS c xy ; -lin ovrld203_mkS = \c,xy -> DConjS c xy ; -lin ovrld204_mkS = AdvS ; -lin ovrld205_mkQS = UseQCl TPres ASimul PPos ; -lin ovrld206_mkQS = \t -> UseQCl t ASimul PPos ; -lin ovrld207_mkQS = \a -> UseQCl TPres a PPos ; -lin ovrld208_mkQS = \p -> UseQCl TPres ASimul p ; -lin ovrld209_mkQS = \t,a -> UseQCl t a PPos ; -lin ovrld210_mkQS = \t,p -> UseQCl t ASimul p ; -lin ovrld211_mkQS = \a,p -> UseQCl TPres a p ; -lin ovrld212_mkQS = UseQCl ; -lin ovrld213_mkQS = \x -> UseQCl TPres ASimul PPos (QuestCl x) ; -lin ovrld214_mkRS = UseRCl TPres ASimul PPos ; -lin ovrld215_mkRS = \t,c -> UseRCl t ASimul PPos c ; -lin ovrld216_mkRS = \a,c -> UseRCl TPres a PPos c ; -lin ovrld217_mkRS = \p,c -> UseRCl TPres ASimul p c ; -lin ovrld218_mkRS = \t,a,c -> UseRCl t a PPos c ; -lin ovrld219_mkRS = \t,p,c -> UseRCl t ASimul p c ; -lin ovrld220_mkRS = \a,p,c -> UseRCl TPres a p c ; -lin ovrld221_mkRS = UseRCl ; -lin ovrld222_emptyText = TEmpty ; -lin ovrld223_mkText = \x -> TFullStop x TEmpty ; -lin ovrld224_mkText = \u -> TFullStop (PhrUtt NoPConj u NoVoc) TEmpty ; -lin ovrld225_mkText = \s -> TFullStop (PhrUtt NoPConj (UttS s) NoVoc) TEmpty ; -lin ovrld226_mkText = \c -> TFullStop (PhrUtt NoPConj (UttS (UseCl TPres ASimul PPos c)) NoVoc) TEmpty ; -lin ovrld227_mkText = \q -> TQuestMark (PhrUtt NoPConj (UttQS q) NoVoc) TEmpty ; -lin ovrld228_mkText = \i -> TExclMark (PhrUtt NoPConj (UttImpSg PPos i) NoVoc) TEmpty ; -lin ovrld229_mkText = \p,i -> TExclMark (PhrUtt NoPConj (UttImpSg p i) NoVoc) TEmpty ; -lin ovrld230_mkText = TFullStop ; -lin ovrld231_mkVP = UseV ; -lin ovrld232_mkVP = ComplV2 ; -lin ovrld233_mkVP = ComplV3 ; -lin ovrld234_mkVP = ComplVV ; -lin ovrld235_mkVP = ComplVS ; -lin ovrld236_mkVP = ComplVQ ; -lin ovrld237_mkVP = ComplVA ; -lin ovrld238_mkVP = ComplV2A ; -lin ovrld239_mkVP = \a -> UseComp (CompAP (PositA a)) ; -lin ovrld240_mkVP = \y,z -> (UseComp (CompAP (ComparA y z))) ; -lin ovrld241_mkVP = \y,z -> (UseComp (CompAP (ComplA2 y z))) ; -lin ovrld242_mkVP = \a -> UseComp (CompAP a) ; -lin ovrld243_mkVP = \a -> UseComp (CompNP a) ; -lin ovrld244_mkVP = \y -> (UseComp (CompNP (DetCN (DetSg (SgQuant IndefArt) NoOrd) y))) ; -lin ovrld245_mkVP = \y -> (UseComp (CompNP (DetCN (DetSg (SgQuant IndefArt) NoOrd) (UseN y)))) ; -lin ovrld246_mkVP = \a -> UseComp (CompAdv a) ; -lin ovrld247_mkVP = AdvVP ; -lin ovrld248_mkVP = AdVVP ; -lin ovrld249_reflexiveVP = ReflV2 ; -lin ovrld250_passiveVP = PassV2 ; -lin ovrld251_passiveVP = \v,np -> (AdvVP (PassV2 v) (PrepNP by8agent_Prep np)) ; -lin ovrld252_progressiveVP = ProgrVP ; -lin ovrld253_mkListS = BaseS ; -lin ovrld254_mkListS = ConsS ; -lin ovrld255_mkListAP = BaseAP ; -lin ovrld256_mkListAP = ConsAP ; -lin ovrld257_mkListAdv = BaseAdv ; -lin ovrld258_mkListAdv = ConsAdv ; -lin ovrld259_mkListNP = BaseNP ; -lin ovrld260_mkListNP = ConsNP ; +lin ovrld154_singularImpForm = {p= IFSg; s= []} ; +lin ovrld155_pluralImpForm = {p= IFPl; s= []} ; +lin ovrld156_politeImpForm = {p= IFPol; s= []} ; +lin ovrld157_mkUtt = UttS ; +lin ovrld158_mkUtt = \c -> UttS (UseCl TPres ASimul PPos c) ; +lin ovrld159_mkUtt = UttQS ; +lin ovrld160_mkUtt = \f -> mkUttImp f.p f.s ; +lin ovrld161_mkUtt = \f -> mkUttImp f.p f.s PPos ; +lin ovrld162_mkUtt = UttImpSg ; +lin ovrld163_mkUtt = UttImpSg PPos ; +lin ovrld164_mkUtt = UttIP ; +lin ovrld165_mkUtt = UttIAdv ; +lin ovrld166_mkUtt = UttNP ; +lin ovrld167_mkUtt = UttAdv ; +lin ovrld168_mkUtt = UttVP ; +lin ovrld169_lets_Utt = ImpPl1 ; +lin ovrld170_mkQCl = QuestCl ; +lin ovrld171_mkQCl = QuestVP ; +lin ovrld172_mkQCl = QuestSlash ; +lin ovrld173_mkQCl = \ip,np,v -> QuestSlash ip (SlashV2 np v) ; +lin ovrld174_mkQCl = QuestIAdv ; +lin ovrld175_mkQCl = \p,ip -> QuestIAdv (PrepIP p ip) ; +lin ovrld176_mkQCl = \a -> QuestIComp (CompIAdv a) ; +lin ovrld177_mkQCl = ExistIP ; +lin ovrld178_mkIP = IDetCN ; +lin ovrld179_mkIP = \i -> IDetCN i NoNum ; +lin ovrld180_mkIP = \i,n -> IDetCN i n NoOrd ; +lin ovrld181_mkIP = \i,n -> IDetCN i NoNum NoOrd (UseN n) ; +lin ovrld182_mkIP = AdvIP ; +lin ovrld183_mkIAdv = PrepIP ; +lin ovrld184_mkRCl = RelCl ; +lin ovrld185_mkRCl = RelVP ; +lin ovrld186_mkRCl = RelSlash ; +lin ovrld187_mkRCl = \rp,np,v2 -> RelSlash rp (SlashV2 np v2) ; +lin ovrld188_which_RP = IdRP ; +lin ovrld189_mkRP = FunRP ; +lin ovrld190_mkSlash = SlashV2 ; +lin ovrld191_mkSlash = SlashVVV2 ; +lin ovrld192_mkSlash = AdvSlash ; +lin ovrld193_mkSlash = SlashPrep ; +lin ovrld194_mkImp = ImpVP ; +lin ovrld195_mkImp = \v -> ImpVP (UseV v) ; +lin ovrld196_mkImp = \v,np -> ImpVP (ComplV2 v np) ; +lin ovrld197_mkS = UseCl TPres ASimul PPos ; +lin ovrld198_mkS = \t -> UseCl t ASimul PPos ; +lin ovrld199_mkS = \a -> UseCl TPres a PPos ; +lin ovrld200_mkS = \p -> UseCl TPres ASimul p ; +lin ovrld201_mkS = \t,a -> UseCl t a PPos ; +lin ovrld202_mkS = \t,p -> UseCl t ASimul p ; +lin ovrld203_mkS = \a,p -> UseCl TPres a p ; +lin ovrld204_mkS = UseCl ; +lin ovrld205_mkS = \c,x,y -> ConjS c (BaseS x y) ; +lin ovrld206_mkS = \c,x,y -> DConjS c (BaseS x y) ; +lin ovrld207_mkS = \c,xy -> ConjS c xy ; +lin ovrld208_mkS = \c,xy -> DConjS c xy ; +lin ovrld209_mkS = AdvS ; +lin ovrld210_mkQS = UseQCl TPres ASimul PPos ; +lin ovrld211_mkQS = \t -> UseQCl t ASimul PPos ; +lin ovrld212_mkQS = \a -> UseQCl TPres a PPos ; +lin ovrld213_mkQS = \p -> UseQCl TPres ASimul p ; +lin ovrld214_mkQS = \t,a -> UseQCl t a PPos ; +lin ovrld215_mkQS = \t,p -> UseQCl t ASimul p ; +lin ovrld216_mkQS = \a,p -> UseQCl TPres a p ; +lin ovrld217_mkQS = UseQCl ; +lin ovrld218_mkQS = \x -> UseQCl TPres ASimul PPos (QuestCl x) ; +lin ovrld219_mkRS = UseRCl TPres ASimul PPos ; +lin ovrld220_mkRS = \t,c -> UseRCl t ASimul PPos c ; +lin ovrld221_mkRS = \a,c -> UseRCl TPres a PPos c ; +lin ovrld222_mkRS = \p,c -> UseRCl TPres ASimul p c ; +lin ovrld223_mkRS = \t,a,c -> UseRCl t a PPos c ; +lin ovrld224_mkRS = \t,p,c -> UseRCl t ASimul p c ; +lin ovrld225_mkRS = \a,p,c -> UseRCl TPres a p c ; +lin ovrld226_mkRS = UseRCl ; +lin ovrld227_emptyText = TEmpty ; +lin ovrld228_fullStopPunct = {p= PFullStop; s= []} ; +lin ovrld229_questMarkPunct = {p= PQuestMark; s= []} ; +lin ovrld230_exclMarkPunct = {p= PExclMark; s= []} ; +lin ovrld231_mkText = \p,f -> mkPhrPunct p f.p f.s ; +lin ovrld232_mkText = \p,f -> mkPhrPunct p f.p f.s TEmpty ; +lin ovrld233_mkText = \x -> TFullStop x TEmpty ; +lin ovrld234_mkText = \u -> TFullStop (PhrUtt NoPConj u NoVoc) TEmpty ; +lin ovrld235_mkText = \s -> TFullStop (PhrUtt NoPConj (UttS s) NoVoc) TEmpty ; +lin ovrld236_mkText = \c -> TFullStop (PhrUtt NoPConj (UttS (UseCl TPres ASimul PPos c)) NoVoc) TEmpty ; +lin ovrld237_mkText = \q -> TQuestMark (PhrUtt NoPConj (UttQS q) NoVoc) TEmpty ; +lin ovrld238_mkText = \i -> TExclMark (PhrUtt NoPConj (UttImpSg PPos i) NoVoc) TEmpty ; +lin ovrld239_mkText = \p,i -> TExclMark (PhrUtt NoPConj (UttImpSg p i) NoVoc) TEmpty ; +lin ovrld240_mkText = TFullStop ; +lin ovrld241_mkVP = UseV ; +lin ovrld242_mkVP = ComplV2 ; +lin ovrld243_mkVP = ComplV3 ; +lin ovrld244_mkVP = ComplVV ; +lin ovrld245_mkVP = ComplVS ; +lin ovrld246_mkVP = ComplVQ ; +lin ovrld247_mkVP = ComplVA ; +lin ovrld248_mkVP = ComplV2A ; +lin ovrld249_mkVP = \a -> UseComp (CompAP (PositA a)) ; +lin ovrld250_mkVP = \y,z -> (UseComp (CompAP (ComparA y z))) ; +lin ovrld251_mkVP = \y,z -> (UseComp (CompAP (ComplA2 y z))) ; +lin ovrld252_mkVP = \a -> UseComp (CompAP a) ; +lin ovrld253_mkVP = \a -> UseComp (CompNP a) ; +lin ovrld254_mkVP = \y -> (UseComp (CompNP (DetCN (DetSg (SgQuant IndefArt) NoOrd) y))) ; +lin ovrld255_mkVP = \y -> (UseComp (CompNP (DetCN (DetSg (SgQuant IndefArt) NoOrd) (UseN y)))) ; +lin ovrld256_mkVP = \a -> UseComp (CompAdv a) ; +lin ovrld257_mkVP = AdvVP ; +lin ovrld258_mkVP = AdVVP ; +lin ovrld259_reflexiveVP = ReflV2 ; +lin ovrld260_passiveVP = PassV2 ; +lin ovrld261_passiveVP = \v,np -> (AdvVP (PassV2 v) (PrepNP by8agent_Prep np)) ; +lin ovrld262_progressiveVP = ProgrVP ; +lin ovrld263_mkListS = BaseS ; +lin ovrld264_mkListS = ConsS ; +lin ovrld265_mkListAP = BaseAP ; +lin ovrld266_mkListAP = ConsAP ; +lin ovrld267_mkListAdv = BaseAdv ; +lin ovrld268_mkListAdv = ConsAdv ; +lin ovrld269_mkListNP = BaseNP ; +lin ovrld270_mkListNP = ConsNP ; } diff --git a/lib/resource-1.0/api/toplevel/constr.gf b/lib/resource-1.0/api/toplevel/constr.gf index f96e1d0b2..3dce90a48 100644 --- a/lib/resource-1.0/api/toplevel/constr.gf +++ b/lib/resource-1.0/api/toplevel/constr.gf @@ -319,9 +319,12 @@ futureTense : Tense = TFut ; --# notpresent conditionalTense : Tense = TCond ; --# notpresent --- singularImpForm : ImpForm = ss [] ; --- pluralImpForm : ImpForm = ss [] ; --- politeImpForm : ImpForm = ss [] ; + singularImpForm : ImpForm + = {p= IFSg; s= []} ; + pluralImpForm : ImpForm + = {p= IFPl; s= []} ; + politeImpForm : ImpForm + = {p= IFPol; s= []} ; -- mkUttImp : ImpForm -> Pol -> Imp -> Utt = \f,p,i -> case f of { IFSg => UttImpSg p i ; @@ -335,11 +338,11 @@ mkUtt : Cl -> Utt -- John walks = \c -> UttS (UseCl TPres ASimul PPos c) ; mkUtt : QS -> Utt -- is it good - = UttQS ; --- mkUtt : ImpForm -> Pol -> Imp -> Utt -- don't help yourselves --- = mkUttImp ; --- mkUtt : ImpForm -> Imp -> Utt -- help yourselves --- = \f -> mkUttImp f PPos ; + = UttQS + mkUtt : ImpForm -> Pol -> Imp -> Utt -- don't help yourselves + = \f -> mkUttImp f.p f.s ; + mkUtt : ImpForm -> Imp -> Utt -- help yourselves + = \f -> mkUttImp f.p f.s PPos ; mkUtt : Pol -> Imp -> Utt -- (don't) help yourself = UttImpSg ; mkUtt : Imp -> Utt -- help yourself @@ -509,9 +512,12 @@ oper emptyText : Text = TEmpty ; -- [empty text] --- fullStopPunct : Punct = {p = PFullStop ; s = []} ; -- . --- questMarkPunct : Punct = {p = PQuestMark ; s = []} ; -- . --- exclMarkPunct : Punct = {p = PExclMark ; s = []} ; -- . + fullStopPunct : Punct + = {p= PFullStop; s= []} ; -- . + questMarkPunct : Punct + = {p= PQuestMark; s= []} ; -- . + exclMarkPunct : Punct + = {p= PExclMark; s= []} ; -- . -- lincat Impform = {p : PImpForm ; s : Str} ; -- lincat Punct = {p : PPunct ; s : Str} ; @@ -519,18 +525,10 @@ -- param PPunct = PFullStop | PExclMark | PQuestMark ; mkText = overload { --- mkText : Phr -> Punct -> Text -> Text = --- \phr,punct,text -> case punct of { --- PFullStop => TFullStop phr text ; --- PExclMark => TExclMark phr text ; --- PQuestMark => TQuestMark phr text --- } ; --- mkText : Phr -> Punct -> Text = --- \phr,punct -> case punct of { --- PFullStop => TFullStop phr TEmpty ; --- PExclMark => TExclMark phr TEmpty ; --- PQuestMark => TQuestMark phr TEmpty --- } ; + mkText : Phr -> Punct -> Text -> Text + = \p,f -> mkPhrPunct p f.p f.s ; + mkText : Phr -> Punct -> Text + = \p,f -> mkPhrPunct p f.p f.s TEmpty ; mkText : Phr -> Text -- John walks. = \x -> TFullStop x TEmpty ; mkText : Utt -> Text