diff --git a/grammars/video/User/specUserSwe.gf b/grammars/video/User/specUserSwe.gf index cc3018c0a..b5ac0aa86 100644 --- a/grammars/video/User/specUserSwe.gf +++ b/grammars/video/User/specUserSwe.gf @@ -4,6 +4,8 @@ concrete specUserSwe of specUser = specificSwe, genUserSwe ** { +flags startcat=DMove ; + lin --- Answers in request list vcr_add_rec_job_args4 chts wdts stts etts = {s = diff --git a/lib/resource/danish/StructuralDan.gf b/lib/resource/danish/StructuralDan.gf index a3bf8a634..5e3f26950 100644 --- a/lib/resource/danish/StructuralDan.gf +++ b/lib/resource/danish/StructuralDan.gf @@ -27,8 +27,10 @@ concrete StructuralDan of Structural = between_Prep = ss "mellem" ; both_AndConjD = sd2 "både" "og" ** {n = Pl} ; by8means_Prep = ss "med" ; - can8know_VV = mkVerb "kunne" "kan" nonExist "kunne" "kunnet" nonExist ** {s1 = [] ; s3 = []} ; - can_VV = mkVerb "kunne" "kan" nonExist "kunne" "kunnet" nonExist ** {s1 = [] ; s3 = []} ; + can8know_VV = mkVerb "kunne" "kan" nonExist "kunne" "kunnet" nonExist ** + {s1 = [] ; isAux = True} ; + can_VV = mkVerb "kunne" "kan" nonExist "kunne" "kunnet" nonExist ** + {s1 = [] ; isAux = True} ; during_Prep = ss "under" ; either8or_ConjD = sd2 "enten" "eller" ** {n = Sg} ; everybody_NP = let alla = table {Nom => "alle" ; Gen => "alles"} in @@ -49,7 +51,8 @@ concrete StructuralDan of Structural = most_Det = mkDeterminerSgGender2 ["den meste"] ["det meste"] (DefP Def) ; most8many_Det = flestaDet ; much_Det = mkDeterminerSg (detSgInvar "meget") IndefP ; - must_VV = mkVerb "måtte" "må" "mås" "måtte" "måttet" "må" ** {s1 = [] ; s3 = []} ; ---- ? + must_VV = mkVerb "måtte" "må" "mås" "måtte" "måttet" "må" ** + {s1 = [] ; isAux = True} ; ---- ? on_Prep = ss "på" ; or_Conj = ss "eller" ** {n = Sg} ; otherwise_Adv = ss "anderledes" ; ---- ? @@ -80,7 +83,8 @@ concrete StructuralDan of Structural = to_Prep = ss "til" ; under_Prep = ss "under" ; very_Adv = ss "meget" ; - want_VV = mkVerb "ville" "vil" nonExist "ville" "villet" nonExist ** {s1 = [] ; s3 = []} ; --- + want_VV = mkVerb "ville" "vil" nonExist "ville" "villet" nonExist ** + {s1 = [] ; isAux = True} ; --- we_NP = pronNounPhrase (vi_36) ; what8many_IP = intPronWhat plural ; what8one_IP = intPronWhat singular ; @@ -97,114 +101,4 @@ concrete StructuralDan of Structural = ye_NP = pronNounPhrase (ni_37) ; you_NP = pronNounPhrase De_38 ; - -{- - INP = pronNounPhrase jag_32 ; - ThouNP = pronNounPhrase du_33 ; - HeNP = pronNounPhrase han_34 ; - SheNP = pronNounPhrase hon_35 ; - WeNumNP n = pronNounPhrase (pronWithNum vi_36 n) ; - YeNumNP n = pronNounPhrase (pronWithNum ni_37 n) ; - TheyNP = pronNounPhrase de_38 ; - TheyFemNP = pronNounPhrase de_38 ; - - YouNP = pronNounPhrase De_38 ; - - ItNP = pronNounPhrase det_40 ; ---- - ThisNP = regNameNounPhrase ["det her"] NNeutr ; - ThatNP = regNameNounPhrase ["det der"] NNeutr ; - TheseNumNP n = - {s = \\c => ["de her"] ++ n.s ! npCase c ; g = Neutr ; n = Pl ; p - = P3} ; - ThoseNumNP n = - {s = \\c => ["de der"] ++ n.s ! npCase c ; g = Neutr ; n = Pl ; p - = P3} ; - - EveryDet = varjeDet ; - AllMassDet = mkDeterminerSgGender2 "all" "alt" IndefP ; - AllNumDet = mkDeterminerPlNum "alle" IndefP ; - AnyDet = mkDeterminerSgGender2 "nogen" "noget" IndefP ; - AnyNumDet = mkDeterminerPlNum "nogle" IndefP ; - SomeDet = mkDeterminerSgGender2 "nogen" "noget" IndefP ; - SomeNumDet = mkDeterminerPlNum "nogle" IndefP ; - ManyDet = mkDeterminerPl "mange" IndefP ; - HowManyDet = mkDeterminerPl ["hvor mange"] IndefP ; - NoDet = mkDeterminerSgGender2 "ingen" "ingen" IndefP ; - NoNumDet = mkDeterminerPlNum "ingen" IndefP ; - WhichNumDet = mkDeterminerPlNum "hvilke" IndefP ; - - - WhichDet = vilkenDet ; - MostDet = mkDeterminerSgGender2 ["den meste"] ["det meste"] (DefP Def) ; - MostsDet = flestaDet ; - MuchDet = mkDeterminerSg (detSgInvar "meget") IndefP ; - - ThisDet = mkDeterminerSgGender2 ["den her"] ["det her"] (DefP Indef) ; - ThatDet = mkDeterminerSgGender2 ["den der"] ["det der"] (DefP Indef) ; - TheseNumDet = mkDeterminerPlNum ["de her"] (DefP Indef) ; - ThoseNumDet = mkDeterminerPlNum ["de der"] (DefP Indef) ; - - HowIAdv = ss "hvor" ; - WhenIAdv = ss "hvornår" ; - WhereIAdv = ss "hver" ; - WhyIAdv = ss "hvorfor" ; - - AndConj = ss "og" ** {n = Pl} ; - OrConj = ss "eller" ** {n = Sg} ; - BothAnd = sd2 "både" "og" ** {n = Pl} ; - EitherOr = sd2 "enten" "eller" ** {n = Sg} ; - NeitherNor = sd2 "hverken" "eller" ** {n = Sg} ; - IfSubj = ss "hvis" ; - WhenSubj = ss "når" ; - - PhrYes = ss ["Ja ."] ; - PhrNo = ss ["Nej ."] ; - - VeryAdv = ss "meget" ; - TooAdv = ss "for" ; ---- ? - OtherwiseAdv = ss "anderledes" ; ---- ? - ThereforeAdv = ss "derfor" ; - - EverybodyNP = let alla = table {Nom => "alle" ; Gen => "alles"} in - {s = \\c => alla ! npCase c ; g = Utr ; n = Pl ; p = P3} ; - SomebodyNP = nameNounPhrase (mkProperName "nogen" NUtr) ; - NobodyNP = nameNounPhrase (mkProperName "ingen" NUtr) ; - EverythingNP = nameNounPhrase (mkProperName "alt" NNeutr) ; - SomethingNP = nameNounPhrase (mkProperName "noget" NNeutr) ; - NothingNP = nameNounPhrase (mkProperName "intet" NNeutr) ; - - CanVV = mkVerb "kunne" "kan" nonExist "kunne" "kunnet" nonExist ** {s1 = [] ; s3 = []} ; - CanKnowVV = mkVerb "kunne" "kan" nonExist "kunne" "kunnet" nonExist ** {s1 = [] ; s3 = []} ; - MustVV = mkVerb "måtte" "må" "mås" "måtte" "måttet" "må" ** {s1 = [] ; s3 = []} ; ---- ? - WantVV = mkVerb "ville" "vil" nonExist "ville" "villet" nonExist ** {s1 = [] ; s3 = []} ; --- - - EverywhereNP = advPost "overalt" ; - SomewhereNP = advPost ["et eller andet sted"] ; ---- ? - NowhereNP = advPost "intetsteds" ; - - AlthoughSubj = ss ["selv om"] ; - - AlmostAdv = ss "næsten" ; - QuiteAdv = ss "temmelig" ; - - InPrep = ss "i" ; - OnPrep = ss "på" ; - ToPrep = ss "til" ; - ThroughPrep = ss "igennem" ; - AbovePrep = ss "ovenfor" ; - UnderPrep = ss "under" ; - InFrontPrep = ss "fremfor" ; ---- ? - BehindPrep = ss "bag" ; - BetweenPrep = ss "mellem" ; - FromPrep = ss "fra" ; - BeforePrep = ss "før" ; - DuringPrep = ss "under" ; - AfterPrep = ss "efter" ; - WithPrep = ss "med" ; - WithoutPrep = ss "uden" ; - ByMeansPrep = ss "med" ; - PossessPrep = ss "af" ; - PartPrep = ss "af" ; - AgentPrep = ss "af" ; --} } diff --git a/lib/resource/danish/SyntaxDan.gf b/lib/resource/danish/SyntaxDan.gf index b62269d58..2a5cc7065 100644 --- a/lib/resource/danish/SyntaxDan.gf +++ b/lib/resource/danish/SyntaxDan.gf @@ -111,7 +111,7 @@ instance SyntaxDan of SyntaxScand = TypesDan ** progressiveVerbPhrase : VerbGroup -> VerbGroup = \verb -> complVerbVerb (verbVara ** - {s3 = ["ved at"]} + {isAux = False} ----- {s3 = ["ved at"]} ) (predVerbGroup True Simul verb) ; @@ -119,7 +119,7 @@ instance SyntaxDan of SyntaxScand = TypesDan ** predVerbGroupClause np (complVerbVerb (verbVara ** - {s3 = ["ved at"]} + {isAux = False} ----- {s3 = ["ved at"]} ) vp) ; diff --git a/lib/resource/danish/TestResourceDan.gf b/lib/resource/danish/TestResourceDan.gf index 417edd5af..32b0c1cfa 100644 --- a/lib/resource/danish/TestResourceDan.gf +++ b/lib/resource/danish/TestResourceDan.gf @@ -67,8 +67,7 @@ lin Look = extTransVerb (mkVerb "se" "ser" "ses" "så" "set" "sedd") [] ; ---- ut - - Try = extTransVerb (vNopart (vSpis "forsøg")) [] ** {s3 = "att"} ; + Try = extTransVerb (vNopart (vSpis "forsøg")) [] ** {isAux = False} ; Important = extAdjective (aAbstrakt "viktig") ** {s2 = "for"} ; Probable = extAdjective (aAbstrakt "sandsynlig") ; Easy = extAdjective (aRod "let") ** {s2 = "for"} ; diff --git a/lib/resource/norwegian/StructuralNor.gf b/lib/resource/norwegian/StructuralNor.gf index cd2b4d646..1ecb99182 100644 --- a/lib/resource/norwegian/StructuralNor.gf +++ b/lib/resource/norwegian/StructuralNor.gf @@ -24,8 +24,10 @@ concrete StructuralNor of Structural = between_Prep = ss "mellom" ; both_AndConjD = sd2 "både" "og" ** {n = Pl} ; by8means_Prep = ss "med" ; - can8know_VV = mkVerb "kunne" "kan" nonExist "kunne" "kunnet" nonExist ** {s1 = [] ; s3 = []} ; - can_VV = mkVerb "kunne" "kan" nonExist "kunne" "kunnet" nonExist ** {s1 = [] ; s3 = []} ; + can8know_VV = mkVerb "kunne" "kan" nonExist "kunne" "kunnet" nonExist ** + {s1 = [] ; isAux = True} ; + can_VV = mkVerb "kunne" "kan" nonExist "kunne" "kunnet" nonExist ** + {s1 = [] ; isAux = True} ; during_Prep = ss "under" ; either8or_ConjD = sd2 "enten" "eller" ** {n = Sg} ; everybody_NP = let alla = table {Nom => "alle" ; Gen => "alles"} in @@ -46,7 +48,8 @@ concrete StructuralNor of Structural = most_Det = mkDeterminerSgGender2 ["den meste"] ["det meste"] (DefP Def) ; most8many_Det = flestaDet ; much_Det = mkDeterminerSg (detSgInvar "mye") IndefP ; - must_VV = mkVerb "måtte" "må" "mås" "måtte" "måttet" "mått" ** {s1 = [] ; s3 = []} ; ---- ? + must_VV = mkVerb "måtte" "må" "mås" "måtte" "måttet" "mått" ** + {s1 = [] ; isAux = True} ; on_Prep = ss "på" ; or_Conj = ss "eller" ** {n = Sg} ; otherwise_Adv = ss "annerledes" ; ---- ? @@ -77,7 +80,8 @@ concrete StructuralNor of Structural = to_Prep = ss "til" ; under_Prep = ss "under" ; very_Adv = ss "meget" ; - want_VV = mkVerb "ville" "vil" nonExist "ville" "villet" "vill" ** {s1 = [] ; s3 = []} ; --- + want_VV = mkVerb "ville" "vil" nonExist "ville" "villet" "vill" ** + {s1 = [] ; isAux = True} ; we_NP = pronNounPhrase (vi_36) ; what8many_IP = intPronWhat plural ; what8one_IP = intPronWhat singular ; @@ -93,115 +97,4 @@ concrete StructuralNor of Structural = with_Prep = ss "med" ; ye_NP = pronNounPhrase (ni_37) ; you_NP = pronNounPhrase De_38 ; - - -{- - INP = pronNounPhrase jag_32 ; - ThouNP = pronNounPhrase du_33 ; - HeNP = pronNounPhrase han_34 ; - SheNP = pronNounPhrase hon_35 ; - WeNumNP n = pronNounPhrase (pronWithNum vi_36 n) ; - YeNumNP n = pronNounPhrase (pronWithNum ni_37 n) ; - TheyNP = pronNounPhrase de_38 ; - TheyFemNP = pronNounPhrase de_38 ; - - YouNP = pronNounPhrase De_38 ; - - ItNP = pronNounPhrase det_40 ; ---- - ThisNP = regNameNounPhrase ["dette"] NNeutr ; - ThatNP = regNameNounPhrase ["det"] NNeutr ; - TheseNumNP n = - {s = \\c => ["disse"] ++ n.s ! npCase c ; g = Neutr ; n = Pl ; p = P3} ; - ThoseNumNP n = - {s = \\c => ["de der"] ++ n.s ! npCase c ; g = Neutr ; n = Pl ; p - = P3} ; - - EveryDet = varjeDet ; - AllMassDet = mkDeterminerSgGender2 "all" "alt" IndefP ; - AllNumDet = mkDeterminerPlNum "alle" IndefP ; - AnyDet = mkDeterminerSgGender2 "noen" "noe" IndefP ; - AnyNumDet = mkDeterminerPlNum "noen" IndefP ; - SomeDet = mkDeterminerSgGender2 "noen" "noe" IndefP ; - SomeNumDet = mkDeterminerPlNum "noen" IndefP ; - ManyDet = mkDeterminerPl "mange" IndefP ; - HowManyDet = mkDeterminerPl ["hvor mange"] IndefP ; - NoDet = mkDeterminerSgGender2 "ingen" "ingen" IndefP ; - NoNumDet = mkDeterminerPlNum "ingen" IndefP ; - WhichNumDet = mkDeterminerPlNum "hvilke" IndefP ; - - - WhichDet = vilkenDet ; - MostDet = mkDeterminerSgGender2 ["den meste"] ["det meste"] (DefP Def) ; - MostsDet = flestaDet ; - MuchDet = mkDeterminerSg (detSgInvar "mye") IndefP ; - - ThisDet = mkDeterminerSgGender2 ["denne"] ["dette"] (DefP Def) ; - ThatDet = mkDeterminerSgGender2 ["den der"] ["det der"] (DefP Indef) ; - TheseNumDet = mkDeterminerPlNum ["disse"] (DefP Def) ; - ThoseNumDet = mkDeterminerPlNum ["de der"] (DefP Def) ; - - HowIAdv = ss "hvor" ; - WhenIAdv = ss "når" ; - WhereIAdv = ss "hver" ; - WhyIAdv = ss "hvorfor" ; - - AndConj = ss "og" ** {n = Pl} ; - OrConj = ss "eller" ** {n = Sg} ; - BothAnd = sd2 "både" "og" ** {n = Pl} ; - EitherOr = sd2 "enten" "eller" ** {n = Sg} ; - NeitherNor = sd2 "verken" "eller" ** {n = Sg} ; - IfSubj = ss "hvis" ; - WhenSubj = ss "når" ; - - PhrYes = ss ["Ja ."] ; - PhrNo = ss ["Nei ."] ; - - VeryAdv = ss "meget" ; - TooAdv = ss "for" ; ---- ? - OtherwiseAdv = ss "annerledes" ; ---- ? - ThereforeAdv = ss "derfor" ; - - EverybodyNP = let alla = table {Nom => "alle" ; Gen => "alles"} in - {s = \\c => alla ! npCase c ; g = Utr Masc ; n = Pl - ; p = P3} ; - SomebodyNP = nameNounPhrase (mkProperName "noen" (NUtr Masc)) ; - NobodyNP = nameNounPhrase (mkProperName "ingen" (NUtr Masc)) ; - EverythingNP = nameNounPhrase (mkProperName "alt" NNeutr) ; - SomethingNP = nameNounPhrase (mkProperName "noe" NNeutr) ; - NothingNP = nameNounPhrase (mkProperName "intet" NNeutr) ; - - CanVV = mkVerb "kunne" "kan" nonExist "kunne" "kunnet" nonExist ** {s1 = [] ; s3 = []} ; - CanKnowVV = mkVerb "kunne" "kan" nonExist "kunne" "kunnet" nonExist ** {s1 = [] ; s3 = []} ; - MustVV = mkVerb "måtte" "må" "mås" "måtte" "måttet" "mått" ** {s1 = [] ; s3 = []} ; ---- ? - WantVV = mkVerb "ville" "vil" nonExist "ville" "villet" "vill" ** {s1 = [] ; s3 = []} ; --- - - EverywhereNP = advPost "overalt" ; - SomewhereNP = advPost ["et eller annet sted"] ; ---- ? - NowhereNP = advPost "ingensteds" ; - - AlthoughSubj = ss ["selv om"] ; - - AlmostAdv = ss "nesten" ; - QuiteAdv = ss "temmelig" ; - - InPrep = ss "i" ; - OnPrep = ss "på" ; - ToPrep = ss "til" ; - ThroughPrep = ss "gjennom" ; - AbovePrep = ss "ovenfor" ; - UnderPrep = ss "under" ; - InFrontPrep = ss "foran" ; - BehindPrep = ss "bakom" ; - BetweenPrep = ss "mellom" ; - FromPrep = ss "fra" ; - BeforePrep = ss "før" ; - DuringPrep = ss "under" ; - AfterPrep = ss "etter" ; - WithPrep = ss "med" ; - WithoutPrep = ss "uten" ; - ByMeansPrep = ss "med" ; - PossessPrep = ss "av" ; - PartPrep = ss "av" ; - AgentPrep = ss "av" ; --} } diff --git a/lib/resource/norwegian/SyntaxNor.gf b/lib/resource/norwegian/SyntaxNor.gf index bc6f7cb01..001018427 100644 --- a/lib/resource/norwegian/SyntaxNor.gf +++ b/lib/resource/norwegian/SyntaxNor.gf @@ -112,7 +112,7 @@ instance SyntaxNor of SyntaxScand = TypesNor ** progressiveVerbPhrase : VerbGroup -> VerbGroup = \verb -> complVerbVerb (verbVara ** - {s3 = ["ved at"]} + {isAux = False} ----- {s3 = ["ved at"]} ) (predVerbGroup True Simul verb) ; @@ -120,8 +120,7 @@ instance SyntaxNor of SyntaxScand = TypesNor ** predVerbGroupClause np (complVerbVerb (verbVara ** - {s3 = ["ved at"]} + {isAux = False} ----- {s3 = ["ved at"]} ) vp) ; - } diff --git a/lib/resource/norwegian/TestResourceNor.gf b/lib/resource/norwegian/TestResourceNor.gf index cc68a0163..a528f072b 100644 --- a/lib/resource/norwegian/TestResourceNor.gf +++ b/lib/resource/norwegian/TestResourceNor.gf @@ -64,7 +64,7 @@ lin Look = extTransVerb (mkVerb "se" "ser" "ses" "så" "sett" "sedd") [] ; ---- ut - Try = extTransVerb (vNopart (vSpis "forsøk")) [] ** {s3 = "att"} ; + Try = extTransVerb (vNopart (vSpis "forsøk")) [] ** {isAux = False} ; Important = extAdjective (aAbstrakt "viktig") ** {s2 = "for"} ; Probable = extAdjective (aAbstrakt "sannsynlig") ; Easy = extAdjective (aRod "grei") ** {s2 = "for"} ; diff --git a/lib/resource/romance/CategoriesRomance.gf b/lib/resource/romance/CategoriesRomance.gf index a1ba543ea..a6d8a84be 100644 --- a/lib/resource/romance/CategoriesRomance.gf +++ b/lib/resource/romance/CategoriesRomance.gf @@ -61,6 +61,7 @@ lincat V3 = TransVerb ** {s3 : Preposition ; c3 : CaseA} ; VS = Verb ** {mp,mn : Mode} ; VV = Verb ** {c : CaseA} ; + VQ = Verb ; VA = Verb ; V2S = TransVerb ; diff --git a/lib/resource/romance/SyntaxRomance.gf b/lib/resource/romance/SyntaxRomance.gf index 0a45c8e81..8fac52936 100644 --- a/lib/resource/romance/SyntaxRomance.gf +++ b/lib/resource/romance/SyntaxRomance.gf @@ -769,6 +769,14 @@ oper ----- let m = if_then_else Mode b croire.mp croire.mn embedConj ++ jeanboit.s ! croire.mp) ; + complQuestVerb : Verb -> Question -> Complemnt = \demander,sijeanboit -> + mkCompl + demander + (\\g,n,p => sijeanboit.s ! IndirQ) ; + + complAdjVerb : Verb -> AdjPhrase -> Complemnt = \sent,bon -> + mkCompl sent (\\g,n,_ => bon.s ! AF g n) ; + verbSent : Verb -> Mode -> Mode -> SentenceVerb = \v,mp,mn -> v ** {mp = mp ; mn = mn} ; diff --git a/src/GF/Infra/ReadFiles.hs b/src/GF/Infra/ReadFiles.hs index 380c0cfb5..8f6b5c971 100644 --- a/src/GF/Infra/ReadFiles.hs +++ b/src/GF/Infra/ReadFiles.hs @@ -116,7 +116,8 @@ needCompile opts headers sfiles0 = paths $ res $ mark $ iter changed where let us = uses f in if not (all noComp us) then fp else - if (elem (typ f) [MTyIncomplete, MTyIncResource] || + if (elem (typ f) [] ---- MTyIncomplete, MTyIncResource] + || (not (null us) && all isAux us)) then (f,(p,CSDont)) else fp