diff --git a/lib/resource-1.0/french/ExtraFre.gf b/lib/resource-1.0/french/ExtraFre.gf index 23177ee03..3a544dc22 100644 --- a/lib/resource-1.0/french/ExtraFre.gf +++ b/lib/resource-1.0/french/ExtraFre.gf @@ -1,5 +1,5 @@ concrete ExtraFre of ExtraFreAbs = ExtraRomanceFre ** - open CommonRomance, PhonoFre, ParamX, ResFre in { + open CommonRomance, PhonoFre, MorphoFre, ParadigmsFre, ParamX, ResFre in { lin EstcequeS qs = {s = "est-ce" ++ elisQue ++ qs.s ! Indic} ; @@ -19,6 +19,33 @@ concrete ExtraFre of ExtraFreAbs = ExtraRomanceFre ** a = aagr Fem Pl } ; + i8fem_Pron = mkPronoun + (elision "j") (elision "m") (elision "m") "moi" "mon" (elisPoss "m") "mes" + Fem Sg P1 ; + these8fem_NP = mkNP ["celles-ci"] Fem Pl ; + they8fem_Pron = mkPronoun + "elles" "les" "leur" "eux" "leur" "leur" "leurs" + Fem Pl P3 ; + this8fem_NP = pn2np (mkPN ["celle-ci"] Fem) ; + those8fem_NP = mkNP ["celles-là"] Fem Pl ; + we8fem_Pron = mkPronoun "nous" "nous" "nous" "nous" "notre" "notre" "nos" + Fem Pl P1 ; + whoPl8fem_IP = + {s = \\c => artDef a.g a.n c + quelPron ! a ; a = a} + where {a = aagr Fem Sg} ; + whoSg8fem_IP = + {s = \\c => artDef a.g a.n c + quelPron ! a ; a = a} + where {a = aagr Fem Pl} ; + + youSg8fem_Pron = mkPronoun + "tu" (elision "t") (elision "t") "toi" "ton" (elisPoss "t") "tes" + Fem Sg P2 ; + youPl8fem_Pron, + youPol8fem_Pron = + mkPronoun + "vous" "vous" "vous" "vous" "votre" "votre" "vos" + Fem Pl P2 ; + oper prepQue : Case -> Str = \c -> case c of { Nom | Acc => elisQue ; diff --git a/lib/resource-1.0/french/ExtraFreAbs.gf b/lib/resource-1.0/french/ExtraFreAbs.gf index 737074225..33f518ab7 100644 --- a/lib/resource-1.0/french/ExtraFreAbs.gf +++ b/lib/resource-1.0/french/ExtraFreAbs.gf @@ -14,4 +14,21 @@ abstract ExtraFreAbs = ExtraRomanceAbs ** { QueestcequeIP : IP ; -- qu'est-ce (que/qui) QuiestcequeIP : IP ; -- qu'est-ce (que/qui) +-- Feminine variants of pronouns (those in $Structural$ are +-- masculine, which is the default when gender is unknown). + + i8fem_Pron : Pron ; + these8fem_NP : NP ; + they8fem_Pron : Pron ; + this8fem_NP : NP ; + those8fem_NP : NP ; + + we8fem_Pron : Pron ; + whoPl8fem_IP : IP ; + whoSg8fem_IP : IP ; + + youSg8fem_Pron : Pron ; + youPl8fem_Pron : Pron ; + youPol8fem_Pron : Pron ; + } diff --git a/lib/resource-1.0/french/ParadigmsFre.gf b/lib/resource-1.0/french/ParadigmsFre.gf index 5d7ec0850..5e9c81bcf 100644 --- a/lib/resource-1.0/french/ParadigmsFre.gf +++ b/lib/resource-1.0/french/ParadigmsFre.gf @@ -293,7 +293,7 @@ oper accusative = complAcc ; genitive = complGen ; dative = complDat ; - mkPrep p = {s = p ; c = Acc ; isDir = False} ; + mkPrep p = {s = p ; c = Acc ; isDir = False ; lock_Prep = <>} ; --- obsolete Preposition : Type ; diff --git a/lib/resource-1.0/french/StructuralFre.gf b/lib/resource-1.0/french/StructuralFre.gf index c31423949..9f9b331ac 100644 --- a/lib/resource-1.0/french/StructuralFre.gf +++ b/lib/resource-1.0/french/StructuralFre.gf @@ -48,7 +48,7 @@ lin i_Pron = mkPronoun (elision "j") (elision "m") (elision "m") "moi" "mon" (elisPoss "m") "mes" - Fem Sg P1 ; + Masc Sg P1 ; in_Prep = mkPreposition "dans" ; it_Pron = mkPronoun @@ -92,10 +92,10 @@ lin there7to_Adv = ss "là" ; --- y there_Adv = ss "là" ; therefore_PConj = ss "donc" ; - these_NP = mkNP ["celles-ci"] Fem Pl ; + these_NP = mkNP ["ceux-ci"] Masc Pl ; they_Pron = mkPronoun - "elles" "les" "leur" "eux" "leur" "leur" "leurs" - Fem Pl P3 ; + "ils" "les" "leur" "eux" "leur" "leur" "leurs" + Masc Pl P3 ; this_Quant = {s = \\_ => table { Sg => \\g,c => prepCase c ++ genForms "ce" "cette" ! g ; ---- cet ; ci @@ -103,7 +103,7 @@ lin } } ; this_NP = pn2np (mkPN ["ceci"] Masc) ; - those_NP = mkNP ["celles-là"] Fem Pl ; + those_NP = mkNP ["ceux-là"] Masc Pl ; through_Prep = mkPreposition "par" ; too_AdA = ss "trop" ; to_Prep = complDat ; @@ -112,27 +112,31 @@ lin want_VV = mkVV (vouloir_V2 ** {lock_V = <>}) ; we_Pron = mkPronoun "nous" "nous" "nous" "nous" "notre" "notre" "nos" - Fem Pl P1 ; - whatSg_IP = {s = \\c => prepCase c ++ "quoi" ; a = aagr Fem Sg} ; - whatPl_IP = {s = \\c => prepCase c ++ "quoi" ; a = aagr Fem Pl} ; + Masc Pl P1 ; + whatSg_IP = + {s = \\c => artDef a.g a.n c + quelPron ! a ; a = a} + where {a = aagr Masc Sg} ; + whatPl_IP = + {s = \\c => artDef a.g a.n c + quelPron ! a ; a = a} + where {a = aagr Masc Pl} ; when_IAdv = ss "quand" ; when_Subj = ss "quand" ** {m = Indic} ; where_IAdv = ss "où" ; whichSg_IDet = {s = \\g,c => prepCase c ++ genForms "quel" "quelle" ! g ; n = Sg} ; whichPl_IDet = {s = \\g,c => prepCase c ++ genForms "quels" "quelles" ! g; n = Pl} ; - whoPl_IP = {s = \\c => prepCase c ++ "qui" ; a = aagr Fem Pl} ; - whoSg_IP = {s = \\c => prepCase c ++ "qui" ; a = aagr Fem Sg} ; + whoPl_IP = {s = \\c => prepCase c ++ "qui" ; a = aagr Masc Pl} ; + whoSg_IP = {s = \\c => prepCase c ++ "qui" ; a = aagr Masc Sg} ; why_IAdv = ss "pourquoi" ; without_Prep = mkPreposition "sans" ; with_Prep = mkPreposition "avec" ; yes_Phr = ss "oui" ; --- si youSg_Pron = mkPronoun "tu" (elision "t") (elision "t") "toi" "ton" (elisPoss "t") "tes" - Fem Sg P2 ; + Masc Sg P2 ; youPl_Pron, youPol_Pron = mkPronoun "vous" "vous" "vous" "vous" "votre" "votre" "vos" - Fem Pl P2 ; + Masc Pl P2 ; } diff --git a/lib/resource-1.0/italian/ExtraIta.gf b/lib/resource-1.0/italian/ExtraIta.gf index 59d1a8ef0..daa09c4ff 100644 --- a/lib/resource-1.0/italian/ExtraIta.gf +++ b/lib/resource-1.0/italian/ExtraIta.gf @@ -1,5 +1,39 @@ concrete ExtraIta of ExtraItaAbs = ExtraRomanceIta ** - open CommonRomance, PhonoIta, ParamX, ResIta in { + open CommonRomance, ParadigmsIta, PhonoIta, MorphoIta, ParamX, ResIta in { + lin + i8fem_Pron = mkPronoun + "io" "mi" "mi" "me" "me" "mio" "mia" "miei" "mie" + Fem Sg P1 ; + these8fem_NP = mkNP ["queste"] Fem Pl ; + they8fem_Pron = mkPronoun + "loro" "loro" "li" "glie" "loro" "loro" "loro" "loro" "loro" + Fem Pl P3 ; + this8fem_NP = pn2np (mkPN ["questa"] Fem) ; + those8fem_NP = mkNP ["quelle"] Fem Pl ; + we8fem_Pron = + mkPronoun "noi" "ci" "ci" "ce" "noi" "nostro" "nostra" "nostri" "nostre" + Fem Pl P1 ; + whoPl8fem_IP = {s = \\c => prepCase c ++ "chi" ; a = aagr Fem Pl} ; + whoSg8fem_IP = {s = \\c => prepCase c ++ "chi" ; a = aagr Fem Sg} ; + + youSg8fem_Pron = mkPronoun + "tu" "ti" "ti" "te" "te" "tuo" "tua" "tuoi" "tue" + Fem Sg P2 ; + youPl8fem_Pron = + mkPronoun + "voi" "vi" "vi" "ve" "voi" "vostro" "vostra" "vostri" "vostre" + Fem Pl P2 ; + youPol8fem_Pron = + mkPronoun + "Lei" "La" "Le" "Glie" "Lei" "Suo" "Sua" "Suoi" "Sue" + Fem Sg P3 ; + + youPolPl_Pron = mkPronoun + "Loro" "Loro" "Li" "Glie" "Loro" "Loro" "Loro" "Loro" "Loro" + Masc Pl P3 ; + youPolPl8fem_Pron = mkPronoun + "Loro" "Loro" "Li" "Glie" "Loro" "Loro" "Loro" "Loro" "Loro" + Fem Pl P3 ; } diff --git a/lib/resource-1.0/italian/ExtraItaAbs.gf b/lib/resource-1.0/italian/ExtraItaAbs.gf index 55eadddec..f73f1809a 100644 --- a/lib/resource-1.0/italian/ExtraItaAbs.gf +++ b/lib/resource-1.0/italian/ExtraItaAbs.gf @@ -3,4 +3,26 @@ abstract ExtraItaAbs = ExtraRomanceAbs ** { + fun + +-- Feminine variants of pronouns (those in $Structural$ are +-- masculine, which is the default when gender is unknown). + + i8fem_Pron : Pron ; + these8fem_NP : NP ; + they8fem_Pron : Pron ; + this8fem_NP : NP ; + those8fem_NP : NP ; + + we8fem_Pron : Pron ; + whoPl8fem_IP : IP ; + whoSg8fem_IP : IP ; + + youSg8fem_Pron : Pron ; + youPl8fem_Pron : Pron ; + youPol8fem_Pron : Pron ; -- Lei + + youPolPl_Pron : Pron ; -- Loro + youPolPl8fem_Pron : Pron ; + } diff --git a/lib/resource-1.0/italian/StructuralIta.gf b/lib/resource-1.0/italian/StructuralIta.gf index bc7e7cec1..de1f301b7 100644 --- a/lib/resource-1.0/italian/StructuralIta.gf +++ b/lib/resource-1.0/italian/StructuralIta.gf @@ -48,7 +48,7 @@ lin i_Pron = mkPronoun "io" "mi" "mi" "me" "me" "mio" "mia" "miei" "mie" - Fem Sg P1 ; + Masc Sg P1 ; in_Prep = {s = [] ; c = CPrep P_in ; isDir = False} ; it_Pron = mkPronoun @@ -91,10 +91,10 @@ lin there7to_Adv = ss "là" ; --- ci there_Adv = ss "là" ; therefore_PConj = ss "quindi" ; - these_NP = mkNP ["queste"] Fem Pl ; + these_NP = mkNP ["questi"] Masc Pl ; they_Pron = mkPronoun "loro" "loro" "li" "glie" "loro" "loro" "loro" "loro" "loro" - Fem Pl P3 ; + Masc Pl P3 ; this_Quant = { s = \\_ => table { Sg => \\g,c => prepCase c ++ genForms "questo" "questa" ! g ; @@ -102,7 +102,7 @@ lin } } ; this_NP = pn2np (mkPN ["questo"] Masc) ; - those_NP = mkNP ["quelle"] Fem Pl ; + those_NP = mkNP ["quelli"] Masc Pl ; through_Prep = mkPrep "per" ; too_AdA = ss "troppo" ; to_Prep = complDat ; @@ -111,7 +111,7 @@ lin want_VV = mkVV (verboV (volere_96 "volere")) ; we_Pron = mkPronoun "noi" "ci" "ci" "ce" "noi" "nostro" "nostra" "nostri" "nostre" - Fem Pl P1 ; + Masc Pl P1 ; whatSg_IP = {s = \\c => prepCase c ++ ["che cosa"] ; a = aagr Fem Sg} ; whatPl_IP = {s = \\c => prepCase c ++ ["che cose"] ; a = aagr Fem Pl} ; --- when_IAdv = ss "quando" ; @@ -119,23 +119,23 @@ lin where_IAdv = ss "dove" ; whichSg_IDet = {s = \\g,c => prepCase c ++ genForms "quale" "quale" ! g ; n = Sg} ; whichPl_IDet = {s = \\g,c => prepCase c ++ genForms "quali" "quali" ! g; n = Pl} ; - whoPl_IP = {s = \\c => prepCase c ++ "chi" ; a = aagr Fem Pl} ; - whoSg_IP = {s = \\c => prepCase c ++ "chi" ; a = aagr Fem Sg} ; + whoPl_IP = {s = \\c => prepCase c ++ "chi" ; a = aagr Masc Pl} ; + whoSg_IP = {s = \\c => prepCase c ++ "chi" ; a = aagr Masc Sg} ; why_IAdv = ss "perché" ; without_Prep = mkPrep "senza" ; with_Prep = {s = [] ; c = CPrep P_con ; isDir = False} ; yes_Phr = ss "sì" ; youSg_Pron = mkPronoun "tu" "ti" "ti" "te" "te" "tuo" "tua" "tuoi" "tue" - Fem Sg P2 ; + Masc Sg P2 ; youPl_Pron = mkPronoun "voi" "vi" "vi" "ve" "voi" "vostro" "vostra" "vostri" "vostre" - Fem Pl P2 ; + Masc Pl P2 ; youPol_Pron = mkPronoun "Lei" "La" "Le" "Glie" "Lei" "Suo" "Sua" "Suoi" "Sue" - Fem Sg P3 ; + Masc Sg P3 ; } diff --git a/lib/resource-1.0/spanish/ExtraSpa.gf b/lib/resource-1.0/spanish/ExtraSpa.gf index 736a95364..abdb463a0 100644 --- a/lib/resource-1.0/spanish/ExtraSpa.gf +++ b/lib/resource-1.0/spanish/ExtraSpa.gf @@ -1,5 +1,47 @@ concrete ExtraSpa of ExtraSpaAbs = ExtraRomanceSpa ** - open CommonRomance, PhonoSpa, ParamX, ResSpa in { + open CommonRomance, PhonoSpa, MorphoSpa, ParadigmsSpa, ParamX, ResSpa in { + + lin + i8fem_Pron = mkPronoun + "yo" "me" "me" "mí" + "mi" "mi" "mis" "mis" + Fem Sg P1 ; + these8fem_NP = mkNP ["estas"] Fem Pl ; + they8fem_Pron = mkPronoun + "ellas" "las" "les" "ellas" + "su" "su" "sus" "sus" + Fem Pl P3 ; + this8fem_NP = pn2np (mkPN ["esta"] Fem) ; + those8fem_NP = mkNP ["esas"] Fem Pl ; + + we8fem_Pron = mkPronoun + "nosotras" "nos" "nos" "nosotras" + "nuestro" "nuestra" "nuestros" "nuestras" + Fem Pl P1 ; + whoPl8fem_IP = {s = \\c => prepCase c ++ "quién" ; a = aagr Fem Pl} ; + whoSg8fem_IP = {s = \\c => prepCase c ++ "quién" ; a = aagr Fem Sg} ; + + youSg8fem_Pron = mkPronoun + "tu" "te" "te" "tí" + "tu" "tu" "tus" "tus" + Fem Sg P2 ; + youPl8fem_Pron = mkPronoun + "vosotras" "vos" "vos" "vosotras" + "vuestro" "vuestra" "vuestros" "vuestras" + Fem Pl P2 ; + youPol8fem_Pron = mkPronoun + "usted" "la" "le" "usted" + "su" "su" "sus" "sus" + Fem Sg P3 ; + + youPolPl_Pron = mkPronoun + "ustedes" "las" "les" "usted" + "su" "su" "sus" "sus" + Masc Pl P3 ; + youPolPl8fem_Pron = mkPronoun + "ustedes" "las" "les" "usted" + "su" "su" "sus" "sus" + Fem Pl P3 ; } diff --git a/lib/resource-1.0/spanish/ExtraSpaAbs.gf b/lib/resource-1.0/spanish/ExtraSpaAbs.gf index be1a8ffac..49d57ee76 100644 --- a/lib/resource-1.0/spanish/ExtraSpaAbs.gf +++ b/lib/resource-1.0/spanish/ExtraSpaAbs.gf @@ -3,4 +3,26 @@ abstract ExtraSpaAbs = ExtraRomanceAbs ** { + fun + +-- Feminine variants of pronouns (those in $Structural$ are +-- masculine, which is the default when gender is unknown). + + i8fem_Pron : Pron ; + these8fem_NP : NP ; + they8fem_Pron : Pron ; + this8fem_NP : NP ; + those8fem_NP : NP ; + + we8fem_Pron : Pron ; -- nosotras + whoPl8fem_IP : IP ; + whoSg8fem_IP : IP ; + + youSg8fem_Pron : Pron ; + youPl8fem_Pron : Pron ; -- vosotras + youPol8fem_Pron : Pron ; -- usted + + youPolPl_Pron : Pron ; -- ustedes + youPolPl8fem_Pron : Pron ; + } diff --git a/lib/resource-1.0/spanish/StructuralSpa.gf b/lib/resource-1.0/spanish/StructuralSpa.gf index 24d680803..cfa4f0141 100644 --- a/lib/resource-1.0/spanish/StructuralSpa.gf +++ b/lib/resource-1.0/spanish/StructuralSpa.gf @@ -51,7 +51,7 @@ lin mkPronoun "yo" "me" "me" "mí" "mi" "mi" "mis" "mis" - Fem Sg P1 ; + Masc Sg P1 ; in_Prep = mkPrep "en" ; it_Pron = mkPronoun @@ -96,11 +96,11 @@ lin there7to_Adv = mkAdv ["para allá"] ; there7from_Adv = mkAdv ["de allá"] ; therefore_PConj = ss ["por eso"] ; - these_NP = mkNP ["estas"] Fem Pl ; + these_NP = mkNP ["estos"] Masc Pl ; they_Pron = mkPronoun - "ellas" "las" "les" "ellas" + "ellos" "los" "les" "ellos" "su" "su" "sus" "sus" - Fem Pl P3 ; + Masc Pl P3 ; this_Quant = { s = \\_ => table { Sg => \\g,c => prepCase c ++ genForms "este" "esta" ! g ; @@ -108,7 +108,7 @@ lin } } ; this_NP = pn2np (mkPN ["esto"] Masc) ; - those_NP = mkNP ["esas"] Fem Pl ; + those_NP = mkNP ["esos"] Masc Pl ; through_Prep = mkPrep "por" ; too_AdA = ss "demasiado" ; to_Prep = complDat ; @@ -117,9 +117,9 @@ lin want_VV = mkVV (verboV (querer_64 "querer")) ; we_Pron = mkPronoun - "nosotras" "nos" "nos" "nosotras" + "nosotros" "nos" "nos" "nosotros" "nuestro" "nuestra" "nuestros" "nuestras" - Fem Pl P1 ; + Masc Pl P1 ; whatSg_IP = {s = \\c => prepCase c ++ ["qué"] ; a = aagr Masc Sg} ; whatPl_IP = {s = \\c => prepCase c ++ ["qué"] ; a = aagr Masc Pl} ; --- when_IAdv = ss "cuando" ; @@ -127,8 +127,8 @@ lin where_IAdv = ss "donde" ; whichSg_IDet = {s = \\g,c => prepCase c ++ "cuale" ; n = Sg} ; whichPl_IDet = {s = \\g,c => prepCase c ++ "cuales" ; n = Pl} ; - whoPl_IP = {s = \\c => prepCase c ++ "quién" ; a = aagr Fem Pl} ; - whoSg_IP = {s = \\c => prepCase c ++ "quién" ; a = aagr Fem Sg} ; + whoPl_IP = {s = \\c => prepCase c ++ "quién" ; a = aagr Masc Pl} ; + whoSg_IP = {s = \\c => prepCase c ++ "quién" ; a = aagr Masc Sg} ; why_IAdv = ss "porqué" ; without_Prep = mkPrep "sin" ; with_Prep = mkPrep "con" ; @@ -136,17 +136,17 @@ lin youSg_Pron = mkPronoun "tu" "te" "te" "tí" "tu" "tu" "tus" "tus" - Fem Sg P2 ; + Masc Sg P2 ; youPl_Pron = mkPronoun - "vosotras" "vos" "vos" "vosotras" + "vosotros" "vos" "vos" "vosotros" "vuestro" "vuestra" "vuestros" "vuestras" - Fem Pl P2 ; + Masc Pl P2 ; youPol_Pron = mkPronoun "usted" "la" "le" "usted" "su" "su" "sus" "sus" - Fem Pl P2 ; + Masc Pl P2 ; oper etConj : {s : Str ; n : Number} = {s = pre {