diff --git a/lib/resource-1.0/gf/MorphoEng.gf b/lib/resource-1.0/gf/MorphoEng.gf index ede9c31e4..61a9f8128 100644 --- a/lib/resource-1.0/gf/MorphoEng.gf +++ b/lib/resource-1.0/gf/MorphoEng.gf @@ -5,12 +5,13 @@ -- Aarne Ranta 2002 -- 2005 -- -- This resource morphology contains definitions needed in the resource --- syntax. It moreover contains the most usual inflectional patterns. --- --- We use the parameter types and word classes defined in $Types.gf$. +-- syntax. To build a lexicon, it is better to use $ParadigmsEng$, which +-- gives a higher-level access to this module. resource MorphoEng = ResEng ** open Prelude, (Predef=Predef) in { + flags optimize=all ; + --2 Phonology -- -- To regulate the use of endings for both nouns, adjectives, and verbs: @@ -197,7 +198,7 @@ oper verbGen : Str -> Verb = \kill -> case last kill of { "y" => verbP3y (init kill) ; - "e" => verbP3y (init kill) ; + "e" => verbP3e (init kill) ; "s" => verbP3s (init kill) ; _ => regVerbP3 kill } ; diff --git a/lib/resource-1.0/gf/QuestionEng.gf b/lib/resource-1.0/gf/QuestionEng.gf index b37bbe2e8..16dbc22cc 100644 --- a/lib/resource-1.0/gf/QuestionEng.gf +++ b/lib/resource-1.0/gf/QuestionEng.gf @@ -1,5 +1,7 @@ concrete QuestionEng of Question = CatEng ** open ResEng in { + flags optimize=all_subs ; + lin QuestCl cl = { diff --git a/lib/resource-1.0/gf/RelativeEng.gf b/lib/resource-1.0/gf/RelativeEng.gf index 1f417c2a9..d74606596 100644 --- a/lib/resource-1.0/gf/RelativeEng.gf +++ b/lib/resource-1.0/gf/RelativeEng.gf @@ -1,5 +1,7 @@ concrete RelativeEng of Relative = CatEng ** open ResEng in { + flags optimize=all_subs ; + lin RelCl cl = { diff --git a/lib/resource-1.0/gf/ResEng.gf b/lib/resource-1.0/gf/ResEng.gf index 4cf01e966..e6cf49de5 100644 --- a/lib/resource-1.0/gf/ResEng.gf +++ b/lib/resource-1.0/gf/ResEng.gf @@ -7,6 +7,8 @@ resource ResEng = ParamEng ** open Prelude in { + flags optimize=all ; + oper -- For $Lex$. diff --git a/lib/resource-1.0/gf/Sentence.gf b/lib/resource-1.0/gf/Sentence.gf index edf8c27e8..4bfdf0c1b 100644 --- a/lib/resource-1.0/gf/Sentence.gf +++ b/lib/resource-1.0/gf/Sentence.gf @@ -7,6 +7,7 @@ abstract Sentence = Cat ** { ImpVP : VP -> Imp ; SlashV2 : NP -> V2 -> Slash ; + SlashVVV2 : NP -> VV -> V2 -> Slash ; AdvSlash : Slash -> Adv -> Slash ; SlashPrep : Cl -> Prep -> Slash ; } diff --git a/lib/resource-1.0/gf/SentenceEng.gf b/lib/resource-1.0/gf/SentenceEng.gf index 3e15e707e..57e508f7c 100644 --- a/lib/resource-1.0/gf/SentenceEng.gf +++ b/lib/resource-1.0/gf/SentenceEng.gf @@ -43,7 +43,23 @@ concrete SentenceEng of Sentence = CatEng ** open ResEng in { } ; c2 = v2.c2 } ; ---- PredVP (np ** {lock_NP =<>}) (UseV (v2 ** {lock_V = <>})) ** {c2 = v2.c2} ; + --- not possible: + --- PredVP (np ** {lock_NP =<>}) (UseV (v2 ** {lock_V = <>})) ** {c2 = v2.c2} ; + + SlashVVV2 np vv v2 = { + s = \\t,a,b,o => + let + agr = np.a ; + verb = (predV vv).s ! t ! a ! b ! o ! agr ; + inf = "to" ++ v2.s ! VInf ; + subj = np.s ! Nom + in + case o of { + ODir => subj ++ verb.fin ++ verb.inf ++ inf ; + OQuest => verb.fin ++ subj ++ verb.inf ++ inf + } ; + c2 = v2.c2 + } ; AdvSlash slash adv = { s = \\t,a,b,o => slash.s ! t ! a ! b ! o ++ adv.s ; diff --git a/lib/resource-1.0/gf/StructuralEng.gf b/lib/resource-1.0/gf/StructuralEng.gf index ef038cbac..c23425830 100644 --- a/lib/resource-1.0/gf/StructuralEng.gf +++ b/lib/resource-1.0/gf/StructuralEng.gf @@ -1,5 +1,5 @@ -concrete StructuralEng of Structural = CatEng ** open MorphoEng, Prelude in { - +concrete StructuralEng of Structural = CatEng ** + open MorphoEng, Prelude in { flags optimize=all ; @@ -19,8 +19,8 @@ concrete StructuralEng of Structural = CatEng ** open MorphoEng, Prelude in { but_PConj = ss "but" ; by8agent_Prep = ss "by" ; by8means_Prep = ss "by" ; ----- can8know_VV = vvCan ; ----- can_VV = vvCan ; + can8know_VV = verbPart (mkVerbIrreg "know" "knew" "known") "how"** {c2 = "to"} ;--- + can_VV = verbGen "manage" ** {c2 = "to"} ; --- during_Prep = ss "during" ; either7or_DConj = sd2 "either" "or" ** {n = Sg} ; everybody_NP = regNP "everybody" Sg ; @@ -42,7 +42,7 @@ concrete StructuralEng of Structural = CatEng ** open MorphoEng, Prelude in { more_CAdv = ss "more" ; most_Predet = ss "most" ; much_Det = mkDeterminer Sg "much" ; ----- must_VV = vvMust ; + must_VV = mkVerb4 "have" "has" "had" "had" ** {c2 = "to"} ; --- no_Phr = ss "no" ; on_Prep = ss "on" ; only_Predet = ss "only" ; @@ -73,7 +73,7 @@ concrete StructuralEng of Structural = CatEng ** open MorphoEng, Prelude in { to_Prep = ss "to" ; under_Prep = ss "under" ; very_AdA = ss "very" ; ----- want_VV = verb2aux (verbNoPart (regVerbP3 "want")) ** {isAux = False} ; + want_VV = verbGen "want" ** {c2 = "to"} ; we_Pron = mkNP "we" "us" "our" Pl P1 ; whatPl_IP = mkIP "what" "what" "what's" Sg ; whatSg_IP = mkIP "what" "what" "what's" Sg ;