diff --git a/lib/src/latvian/CatLav.gf b/lib/src/latvian/CatLav.gf index 0334c9cb0..0c87558c4 100644 --- a/lib/src/latvian/CatLav.gf +++ b/lib/src/latvian/CatLav.gf @@ -24,7 +24,7 @@ lincat -- Question QCl = { s : VerbMood => Polarity => Str } ; IP = { s : Case => Str ; n: Number } ; - --IComp = { s : Str } ; + --IComp = { s : Str ; a : ResLav.Agr } ; IDet = { s : Gender => Str ; n : Number } ; IQuant = { s : Gender => Number => Str } ; diff --git a/lib/src/latvian/ExtraLav.gf b/lib/src/latvian/ExtraLav.gf index e6c03a3d8..e174e2a3f 100644 --- a/lib/src/latvian/ExtraLav.gf +++ b/lib/src/latvian/ExtraLav.gf @@ -8,4 +8,8 @@ flags lin GenNP np = {s = \\_,_,_ => np.s ! Gen ; d = Def} ; + --ICompAP ap = {s = \\g,n => "cik" ++ ap.s ! Indef ! g ! n ! Nom } ; + + IAdvAdv adv = {s = "cik" ++ adv.s} ; + } diff --git a/lib/src/latvian/IdiomLav.gf b/lib/src/latvian/IdiomLav.gf index da0626528..5a87f7150 100644 --- a/lib/src/latvian/IdiomLav.gf +++ b/lib/src/latvian/IdiomLav.gf @@ -30,7 +30,7 @@ lin ExistNP np = let - v = lin V mkVerb_toBe ; + v = lin V mkVerb_Irreg_Be ; a = np.a in { s = \\mood,pol => @@ -40,7 +40,7 @@ lin ExistIP ip = let - v = lin V mkVerb_toBe ; + v = lin V mkVerb_Irreg_Be ; a = AgP3 ip.n Masc in { s = \\mood,pol => diff --git a/lib/src/latvian/LexiconLav.gf b/lib/src/latvian/LexiconLav.gf index 79e783302..829da7081 100644 --- a/lib/src/latvian/LexiconLav.gf +++ b/lib/src/latvian/LexiconLav.gf @@ -63,7 +63,7 @@ lin come_V = mkV "nākt" "nāku" "nācu" ; computer_N = mkN "dators" ; country_N = mkN "valsts" ; - cousin_N = mkN "brālēns" ; -- FIXME: brālēns/māsīca angļiem ir vienāds... + cousin_N = mkN "brālēns" ; -- FIXME: brālēns/māsīca angļiem ir vienāds... cow_N = mkN "govs" ; die_V = mkV "nomirt" "nomirstu" "nomiru"; dirty_A = mkA "netīrs" ; @@ -72,7 +72,7 @@ lin dog_N = mkN "suns" ; door_N = mkN "durvis" ; drink_V2 = mkV2 (mkV "dzert" "dzeru" "dzēru") acc_Prep; - --easy_A2V = mkA2V (regA "easy") forP ; -- FIXME: nav tādas konstrukcijas latviešu val. + --easy_A2V = mkA2V (regA "easy") forP ; -- FIXME: nav tādas konstrukcijas latviešu val. eat_V2 = mkV2 (mkV "ēst" "ēdu" "ēdu") acc_Prep ; empty_A = mkA "tukšs" ; enemy_N = mkN "ienaidnieks" ; @@ -109,6 +109,7 @@ lin king_N = mkN "karalis" ; know_V2 = mkV2 (mkV "zināt" third_conjugation) acc_Prep ; -- FIXME: šitādas lietas jārisina ar valencēm nevis 2 vienādiem vārdiem + know_VQ = mkVQ (mkV "zināt" third_conjugation) ; know_VS = mkVS (mkV "zināt" third_conjugation) that_Subj ; lake_N = mkN "ezers" ; lamp_N = mkN "lampa" ; @@ -133,7 +134,7 @@ lin narrow_A = mkA "šaurs" ; new_A = mkA "jauns" ; newspaper_N = mkN "avīze" ; - oil_N = mkN "eļļa" ; -- reku parādās klasiskās problēmas - eļļa vai nafta? + oil_N = mkN "eļļa" ; -- reku parādās klasiskās problēmas - eļļa vai nafta? old_A = mkA "vecs" ; open_V2 = mkV2 (mkV "atvērt" "atveru" "atvēru") acc_Prep ; paint_V2A = mkV2A (mkV "krāsot" second_conjugation) acc_Prep ; @@ -149,7 +150,7 @@ lin probable_AS = mkAS (mkA "iespējams") ; queen_N = mkN "karaliene" ; radio_N = mkN "radio" ; - --rain_V0 = mkV0 (regV "rain") ; + rain_V0 = mkV "līt" "līstu" "liju" ; read_V2 = mkV2 (mkV "lasīt" third_conjugation) acc_Prep ; red_A = mkA "sarkans" ; religion_N = mkN "reliģija" ; @@ -174,12 +175,12 @@ lin shop_N = mkN "veikals" ; short_A = mkA "īss" ; silver_N = mkN "sudrabs" ; - sister_N = mkN "māsa" ; -- TODO: kāpēc nav kā brālis ar parametru? + sister_N = mkN "māsa" ; -- TODO: kāpēc nav kā brālis ar parametru? sleep_V = mkV "gulēt"; small_A = mkA "mazs" ; snake_N = mkN "čūska" ; sock_N = mkN "zeķe" ; - speak_V2 = mkV2 (mkV "sacīt" third_conjugation) acc_Prep ; -- TODO: citas valences tur tak + speak_V2 = mkV2 (mkV "sacīt" third_conjugation) acc_Prep ; -- TODO: citas valences tur tak star_N = mkN "zvaigzne" ; steel_N = mkN "tērauds" ; stone_N = mkN "akmens" ; @@ -190,7 +191,7 @@ lin switch8off_V2 = mkV2 (mkV "izslēgt" "izslēdzu" "izslēdzu") acc_Prep ; switch8on_V2 = mkV2 (mkV "ieslēgt" "ieslēdzu" "ieslēdzu") acc_Prep ; table_N = mkN "galds" ; - talk_V3 = mkV3 (mkV "runāt" second_conjugation) to_Prep par_Prep ; -- ar ko, par ko + talk_V3 = mkV3 (mkV "runāt" second_conjugation) to_Prep par_Prep ; -- ar ko, par ko teacher_N = mkN "skolotājs" ; teach_V2 = mkV2 (mkV "mācīt" third_conjugation) acc_Prep ; television_N = mkN "televīzija" ; @@ -235,7 +236,7 @@ lin far_Adv = mkAdv "tālu" ; correct_A = mkA "pareizs" ; dry_A = mkA "sauss" ; - dull_A = mkA "neass" ; -- garlaicīgs? + dull_A = mkA "neass" ; -- garlaicīgs? full_A = mkA "pilns" ; heavy_A = mkA "smags" ; near_A = mkA "tuvs" ; @@ -247,7 +248,7 @@ lin wet_A = mkA "slapjš" ; wide_A = mkA "plats" ; animal_N = mkN "dzīvnieks" ; - ashes_N = mkN "pelni" ; -- FIXME: plural only? kā to norāda? + ashes_N = mkN "pelni" ; -- FIXME: plural only? kā to norāda? back_N = mkN "mugura" ; bark_N = mkN "miza" ; belly_N = mkN "vēders" ; @@ -270,13 +271,13 @@ lin foot_N = mkN "pēda" ; forest_N = mkN "mežs" ; grass_N = mkN "zāle" ; - guts_N = mkN "zarnas" ; -- FIXME: no singular + guts_N = mkN "zarnas" ; -- FIXME: no singular hair_N = mkN "mati" ; hand_N = mkN "roka" ; head_N = mkN "galva" ; heart_N = mkN "sirds" ; horn_N = mkN "rags" ; - husband_N = mkN "vīrs" ; --TODO: kāpēc nav parametrs tāpat kā tēvam? + husband_N = mkN "vīrs" ; --TODO: kāpēc nav parametrs tāpat kā tēvam? ice_N = mkN "ledus" ; knee_N = mkN "ceļgals" ; leaf_N = mkN "lapa" ; @@ -319,7 +320,7 @@ lin flow_V = mkV "plūst" "plūstu" "plūdu" ; fly_V = mkV "lidot" second_conjugation ; freeze_V = mkV "sasalt" "sasalstu" "sasalu" ; - give_V3 = mkV3 (mkV "dot" "dodu" "devu") acc_Prep dat_Prep ; -- dot ko? kam? + give_V3 = mkV3 (mkV "dot" "dodu" "devu") acc_Prep dat_Prep ; -- dot ko? kam? laugh_V = mkV "smieties" "smejos" "smējos" ; lie_V = mkV "gulties" "guļos" "gūlos" ; play_V = mkV "spēlēt" second_conjugation ; @@ -375,13 +376,4 @@ lin oper par_Prep = mkPrep "par" Acc Dat ; -{- - atP = mkPrep "at" ; - forP = mkPrep "for" ; - fromP = mkPrep "from" ; - inP = mkPrep "in" ; - onP = mkPrep "on" ; - toP = mkPrep "to" ; --} - } diff --git a/lib/src/latvian/MakeStructuralLav.gf b/lib/src/latvian/MakeStructuralLav.gf index 7d81355cd..e421ba021 100644 --- a/lib/src/latvian/MakeStructuralLav.gf +++ b/lib/src/latvian/MakeStructuralLav.gf @@ -9,6 +9,9 @@ oper mkSubj : Str -> Subj = \x -> lin Subj {s = x} ; + --mkNP : Str -> ParadigmsLav.Number -> NP = \s,n -> + -- lin NP (regNP s n) ; + mkIDet : Str -> ParadigmsLav.Number -> IDet = \s,n -> lin IDet {s = \\_ => s ; n = n} ; diff --git a/lib/src/latvian/ParadigmsLav.gf b/lib/src/latvian/ParadigmsLav.gf index 976a85dda..17067a61d 100644 --- a/lib/src/latvian/ParadigmsLav.gf +++ b/lib/src/latvian/ParadigmsLav.gf @@ -1,22 +1,5 @@ --# -path=.:../abstract:../common:../prelude --- This is an API for the user of the resource grammar --- for adding lexical items. It gives functions for forming --- expressions of open categories: nouns, adjectives, verbs. --- --- Closed categories (determiners, pronouns, conjunctions) are --- accessed through the resource syntax API, $Structural.gf$. --- --- The main difference with $MorphoLav.gf$ is that the types --- referred to are compiled resource grammar types. We have moreover --- had the design principle of always having existing forms, rather --- than stems, as string arguments of the paradigms. --- --- The structure of functions for each word class $C$ is the following: --- first we give a handful of patterns that aim to cover all --- regular cases. Then we give a worst-case function $mkC$, which serves as an --- escape to construct the most irregular words of type $C$. - resource ParadigmsLav = open (Predef=Predef), Prelude, @@ -66,12 +49,12 @@ oper mkPN = overload { mkN : (lemma : Str) -> PN = \l -> lin PN (mkProperNoun l Sg) ; - mkN : (lemma : Str) -> Number -> PN = \l,n -> lin PN (mkProperNoun l n) ; + mkN : (lemma : Str) -> Number -> PN = \l,n -> lin PN (mkProperNoun l n) ; } ; mkN2 = overload { - mkN2 : N -> Prep -> N2 = \n,p -> lin N2 n ** { p = p ; isPre = False } ; - mkN2 : N -> Prep -> Bool -> N2 = \n,p,isPre -> lin N2 n ** { p = p ; isPre = isPre } ; + mkN2 : N -> Prep -> N2 = \n,p -> lin N2 n ** { p = p ; isPre = False } ; + mkN2 : N -> Prep -> Bool -> N2 = \n,p,isPre -> lin N2 n ** { p = p ; isPre = isPre } ; } ; mkN3 : N -> Prep -> Prep -> N3 = \n,p1,p2 -> @@ -80,10 +63,10 @@ oper mkA = overload { mkA : (lemma : Str) -> A = \s -> lin A (mkAdjective s) ; mkA : (lemma : Str) -> AdjType -> A = \s,t -> lin A (mkAdjectiveByType s t) ; - mkA : (v : Verb) -> A = \v -> lin A (mkAdjective_Participle v) ; + mkA : (v : Verb) -> A = \v -> lin A (mkAdjective_Participle v) ; } ; - mkA2 : A -> Prep -> A2 = \a,p -> lin A2 (a ** { p = p }) ; -- precējies ar ... + mkA2 : A -> Prep -> A2 = \a,p -> lin A2 (a ** { p = p }) ; -- precējies ar ... mkAS : A -> AS =\a -> lin A a ; mkA2S : A -> Prep -> A2S =\a,p -> lin A2 (a ** { p = p }) ; mkAV : A -> AV = \a -> lin A a ; @@ -114,7 +97,7 @@ oper mkPrep = overload { mkPrep : Str -> Case -> Case -> Prep = \prep,sg,pl -> lin Prep { s = prep ; c = table { Sg => sg ; Pl => pl } } ; - mkPrep : Case -> Prep = \c -> lin Prep { s = [] ; c = table { _ => c } } ; + mkPrep : Case -> Prep = \c -> lin Prep { s = [] ; c = table { _ => c } } ; } ; -- empty fake prepositions for valences diff --git a/lib/src/latvian/ParadigmsVerbsLav.gf b/lib/src/latvian/ParadigmsVerbsLav.gf index a2f05bca8..021687cce 100644 --- a/lib/src/latvian/ParadigmsVerbsLav.gf +++ b/lib/src/latvian/ParadigmsVerbsLav.gf @@ -40,7 +40,7 @@ oper case lemma of { -- TODO: "ir" => s + ("t") => mkVerb_C1 lemma lemma2 lemma3 ; - s + ("ties") => mkVerb_C1_R lemma lemma2 lemma3 + s + ("ties") => mkVerb_C1_Refl lemma lemma2 lemma3 } ; mkRegVerb : Str -> VerbConj -> Verb_TMP = \lemma,conj -> @@ -51,8 +51,8 @@ oper mkReflVerb : Str -> VerbConj -> Verb_TMP = \lemma,conj -> case conj of { - C2 => mkVerb_C2_R lemma ; - C3 => mkVerb_C3_R lemma + C2 => mkVerb_C2_Refl lemma ; + C3 => mkVerb_C3_Refl lemma } ; filter_Neg : Verb_TMP -> Verb_TMP = \full -> { @@ -64,390 +64,439 @@ oper } ; -- First conjugation - -- Ref. to Lexicon.xml (revision 719): 15. paradigma - mkVerb_C1 : Str -> Str -> Str -> Verb_TMP = \lemma,lemma2,lemma3 -> + -- Ref. to lexicon.xml (revision 719): 15th paradigm + -- lemma1: Infinitive + -- lemma2: Indicative P1 Sg Pres + -- lemma3: Indicative P1 Sg Past + mkVerb_C1 : Str -> Str -> Str -> Verb_TMP = \lemma1,lemma2,lemma3 -> let - stem : Str = Predef.tk 1 lemma ; + stem1 : Str = Predef.tk 1 lemma1 ; stem2 : Str = Predef.tk 1 lemma2 ; stem3 : Str = Predef.tk 1 lemma3 in { s = table { - Infinitive => stem + "t" ; + Infinitive => lemma1 ; -- stem1 + "t" - Indicative P1 Sg Pres => stem2 + "u" ; - Indicative P1 Sg Fut => pal_C1_1 stem3 stem + "šu" ; - Indicative P1 Sg Past => stem3 + "u" ; + Indicative P1 Sg Pres => lemma2 ; -- stem2 + "u" + Indicative P1 Sg Fut => pal_C1_1 stem3 stem1 + "šu" ; + Indicative P1 Sg Past => lemma3 ; -- stem3 + "u" Indicative P1 Pl Pres => stem2 + "am" ; - Indicative P1 Pl Fut => pal_C1_1 stem3 stem + "sim" ; - Indicative P1 Pl Past => stem3 + "ām" ; + Indicative P1 Pl Fut => pal_C1_1 stem3 stem1 + "sim" ; + Indicative P1 Pl Past => stem3 + "ām" ; - Indicative P2 Sg Pres => stem3 ; - Indicative P2 Sg Fut => pal_C1_1 stem3 stem + "si" ; - Indicative P2 Sg Past => stem3 + "i" ; + Indicative P2 Sg Pres => pal_C1_4 stem2 ; + Indicative P2 Sg Fut => pal_C1_1 stem3 stem1 + "si" ; + Indicative P2 Sg Past => stem3 + "i" ; Indicative P2 Pl Pres => stem2 + "at" ; - Indicative P2 Pl Fut => pal_C1_1 stem3 stem + ("siet"|"sit") ; - Indicative P2 Pl Past => stem3 + "āt" ; + --Indicative P2 Pl Fut => pal_C1_1 stem3 stem1 + ("siet"|"sit") ; + Indicative P2 Pl Fut => pal_C1_1 stem3 stem1 + "siet" ; + Indicative P2 Pl Past => stem3 + "āt" ; Indicative P3 _ Pres => stem2 ; - Indicative P3 _ Fut => pal_C1_1 stem3 stem + "s" ; - Indicative P3 _ Past => stem3 + "a" ; + Indicative P3 _ Fut => pal_C1_1 stem3 stem1 + "s" ; + Indicative P3 _ Past => stem3 + "a" ; - Indicative _ _ Cond => stem + "tu"; + Indicative _ _ Cond => stem1 + "tu" ; Relative Pres => stem2 + "ot" ; - Relative Fut => pal_C1_1 stem3 stem + "šot" ; - Relative Past => NON_EXISTENT ; - Relative Cond => NON_EXISTENT ; + Relative Fut => pal_C1_1 stem3 stem1 + "šot" ; + Relative Past => NON_EXISTENT ; + Relative Cond => NON_EXISTENT ; Debitive => "jā" + stem2 ; + DebitiveRelative => "jā" + stem2 + "ot" ; - Imperative Sg => stem3 ; - Imperative Pl => stem3 + "iet" ; + Imperative Sg => pal_C1_4 stem2 ; + Imperative Pl => pal_C1_4 stem2 + "iet" ; - Participle g n c => participle_normal_l g n c (pal_C1_3 stem3) (pal_C1_4 stem3) + Participle g n c => mkParticiple_IsUsi g n c (pal_C1_3 stem3) (pal_C1_4 stem3) } } ; -- Second conjugation - -- Ref. to Lexicon.xml (revision 719): 16. paradigma + -- Ref. to lexicon.xml (revision 719): 16th paradigm + -- lemma: Infinitive mkVerb_C2 : Str -> Verb_TMP = \lemma -> - let stem : Str = Predef.tk 1 lemma + let + stem : Str = Predef.tk 1 lemma in { s = table { - Infinitive => stem + "t" ; + Infinitive => lemma ; -- stem + "t" Indicative P1 Sg Pres => stem + "ju" ; Indicative P1 Sg Fut => stem + "šu" ; - Indicative P1 Sg Past => stem + "ju" ; + Indicative P1 Sg Past => stem + "ju" ; Indicative P1 Pl Pres => stem + "jam" ; Indicative P1 Pl Fut => stem + "sim" ; - Indicative P1 Pl Past => stem + "jām" ; + Indicative P1 Pl Past => stem + "jām" ; Indicative P2 Sg Pres => stem ; Indicative P2 Sg Fut => stem + "si" ; - Indicative P2 Sg Past => stem + "ji" ; + Indicative P2 Sg Past => stem + "ji" ; Indicative P2 Pl Pres => stem + "jat" ; - Indicative P2 Pl Fut => stem + ("siet"|"sit") ; - Indicative P2 Pl Past => stem + "jāt" ; + --Indicative P2 Pl Fut => stem + ("siet"|"sit") ; + Indicative P2 Pl Fut => stem + "siet" ; + Indicative P2 Pl Past => stem + "jāt" ; Indicative P3 _ Pres => stem ; Indicative P3 _ Fut => stem + "s" ; - Indicative P3 _ Past => stem + "ja" ; + Indicative P3 _ Past => stem + "ja" ; - Indicative _ _ Cond => stem + "tu"; + Indicative _ _ Cond => stem + "tu" ; Relative Pres => stem + "jot" ; Relative Fut => stem + "šot" ; - Relative Past => NON_EXISTENT ; - Relative Cond => NON_EXISTENT ; + Relative Past => NON_EXISTENT ; + Relative Cond => NON_EXISTENT ; Debitive => "jā" + stem ; + DebitiveRelative => "jā" + stem + "jot" ; - Imperative Sg => stem ; - Imperative Pl => stem + "jiet"; + Imperative Sg => stem ; + Imperative Pl => stem + "jiet" ; - Participle g n c => participle_normal g n c (stem + "j") + Participle g n c => mkParticiple g n c (stem + "j") } } ; -- Third conjugation - -- Ref. to Lexicon.xml (revision 719): 17. paradigma + -- Ref. to lexicon.xml (revision 719): 17th paradigm + -- lemma: Infinitive mkVerb_C3 : Str -> Verb_TMP = \lemma -> - let stem : Str = Predef.tk 1 lemma + let + stem : Str = Predef.tk 1 lemma in { s = table { - Infinitive => stem + "t" ; + Infinitive => lemma ; -- stem + "t" Indicative P1 Sg Pres => pal_C3_1 stem + "u" ; Indicative P1 Sg Fut => stem + "šu" ; - Indicative P1 Sg Past => stem + "ju" ; + Indicative P1 Sg Past => stem + "ju" ; Indicative P1 Pl Pres => pal_C3_1 stem + pal_C3_2 stem "am" ; Indicative P1 Pl Fut => stem + "sim" ; - Indicative P1 Pl Past => stem + "jām" ; + Indicative P1 Pl Past => stem + "jām" ; Indicative P2 Sg Pres => pal_C3_1 stem + "i" ; Indicative P2 Sg Fut => stem + "si" ; - Indicative P2 Sg Past => stem + "ji" ; + Indicative P2 Sg Past => stem + "ji" ; Indicative P2 Pl Pres => pal_C3_1 stem + pal_C3_2 stem "at" ; - Indicative P2 Pl Fut => stem + ("siet"|"sit") ; - Indicative P2 Pl Past => stem + "jāt" ; + --Indicative P2 Pl Fut => stem + ("siet"|"sit") ; + Indicative P2 Pl Fut => stem + "siet" ; + Indicative P2 Pl Past => stem + "jāt" ; Indicative P3 _ Pres => pal_C3_5 stem ; Indicative P3 _ Fut => stem + "s" ; - Indicative P3 _ Past => stem + "ja" ; + Indicative P3 _ Past => stem + "ja" ; - Indicative _ _ Cond => stem + "tu"; + Indicative _ _ Cond => stem + "tu" ; Relative Pres => pal_C3_1 stem + "ot" ; Relative Fut => stem + "šot" ; - Relative Past => NON_EXISTENT ; - Relative Cond => NON_EXISTENT ; + Relative Past => NON_EXISTENT ; + Relative Cond => NON_EXISTENT ; Debitive => pal_C3_3 stem ; + DebitiveRelative => pal_C3_3 stem + "ot" ; - Imperative Sg => pal_C3_1 stem + "i" ; - Imperative Pl => pal_C3_1 stem + "iet"; + Imperative Sg => pal_C3_1 stem + "i" ; + Imperative Pl => pal_C3_1 stem + "iet" ; - Participle g n c => participle_normal g n c (stem + "j") + Participle g n c => mkParticiple g n c (stem + "j") } } ; - -- First conjugation: reflexive verbs - -- Ref. to Lexicon.xml (revision 719): 18. paradigma - mkVerb_C1_R : Str -> Str -> Str -> Verb_TMP = \lemma,lemma2,lemma3 -> + -- First conjugation: reflexive + -- Ref. to lexicon.xml (revision 719): 18th paradigm + -- lemma1: Infinitive + -- lemma2: Indicative P1 Sg Pres + -- lemma3: Indicative P1 Sg Past + mkVerb_C1_Refl : Str -> Str -> Str -> Verb_TMP = \lemma1,lemma2,lemma3 -> let - stem : Str = Predef.tk 4 lemma ; + stem1 : Str = Predef.tk 4 lemma1 ; stem2 : Str = Predef.tk 2 lemma2 ; stem3 : Str = Predef.tk 2 lemma3 in { s = table { - Infinitive => stem + "ties" ; + Infinitive => lemma1 ; -- stem + "ties" - Indicative P1 Sg Pres => stem2 + "os" ; - Indicative P1 Sg Fut => pal_C1_1 stem3 stem + "šos" ; - Indicative P1 Sg Past => stem3 + "os" ; + Indicative P1 Sg Pres => lemma2 ; -- stem2 + "os" + Indicative P1 Sg Fut => pal_C1_1 stem3 stem1 + "šos" ; + Indicative P1 Sg Past => lemma3 ; -- stem3 + "os" Indicative P1 Pl Pres => stem2 + "amies" ; - Indicative P1 Pl Fut => pal_C1_1 stem3 stem + "simies" ; - Indicative P1 Pl Past => stem3 + "āmies" ; + Indicative P1 Pl Fut => pal_C1_1 stem3 stem1 + "simies" ; + Indicative P1 Pl Past => stem3 + "āmies" ; Indicative P2 Sg Pres => pal_C1_2 stem3 stem2 + "ies" ; - Indicative P2 Sg Fut => pal_C1_1 stem3 stem + "sies" ; - Indicative P2 Sg Past => stem3 + "ies" ; + Indicative P2 Sg Fut => pal_C1_1 stem3 stem1 + "sies" ; + Indicative P2 Sg Past => stem3 + "ies" ; Indicative P2 Pl Pres => stem2 + "aties" ; - Indicative P2 Pl Fut => pal_C1_1 stem3 stem + ("sieties"|"sities") ; - Indicative P2 Pl Past => stem3 + "āties" ; + --Indicative P2 Pl Fut => pal_C1_1 stem3 stem1 + ("sieties"|"sities") ; + Indicative P2 Pl Fut => pal_C1_1 stem3 stem1 + "sieties" ; + Indicative P2 Pl Past => stem3 + "āties" ; Indicative P3 _ Pres => stem2 + "as" ; - Indicative P3 _ Fut => pal_C1_1 stem3 stem + "sies" ; - Indicative P3 _ Past => stem3 + "ās" ; + Indicative P3 _ Fut => pal_C1_1 stem3 stem1 + "sies" ; + Indicative P3 _ Past => stem3 + "ās" ; - Indicative _ _ Cond => stem + "tos"; + Indicative _ _ Cond => stem1 + "tos" ; Relative Pres => stem2 + "oties" ; - Relative Fut => pal_C1_1 stem3 stem + "šoties" ; - Relative Past => NON_EXISTENT ; - Relative Cond => NON_EXISTENT ; + Relative Fut => pal_C1_1 stem3 stem1 + "šoties" ; + Relative Past => NON_EXISTENT ; + Relative Cond => NON_EXISTENT ; Debitive => "jā" + stem2 + "as" ; + DebitiveRelative => "jā" + stem2 + "oties" ; - Imperative Sg => pal_C1_2 stem3 stem2 + "ies" ; - Imperative Pl => pal_C1_2 stem3 stem2 + "ieties" ; + Imperative Sg => pal_C1_2 stem3 stem2 + "ies" ; + Imperative Pl => pal_C1_2 stem3 stem2 + "ieties" ; - Participle g n c => participle_reflexive_l g n c (pal_C1_3 stem3) (pal_C1_4 stem3) + Participle g n c => mkParticiple_Refl_IesUsies g n c (pal_C1_3 stem3) (pal_C1_4 stem3) } } ; - -- Second conjugation: reflexive verbs - -- Ref. to Lexicon.xml (revision 719): 19. paradigma - mkVerb_C2_R : Str -> Verb_TMP = \lemma -> - let stem : Str = Predef.tk 4 lemma + -- Second conjugation: reflexive + -- Ref. to lexicon.xml (revision 719): 19th paradigm + -- lemma: Infinitive + mkVerb_C2_Refl : Str -> Verb_TMP = \lemma -> + let + stem : Str = Predef.tk 4 lemma in { s = table { - Infinitive => stem + "ties" ; + Infinitive => lemma ; -- stem + "ties" Indicative P1 Sg Pres => stem + "jos" ; Indicative P1 Sg Fut => stem + "šos" ; - Indicative P1 Sg Past => stem + "jos" ; + Indicative P1 Sg Past => stem + "jos" ; Indicative P1 Pl Pres => stem + "jamies" ; Indicative P1 Pl Fut => stem + "simies" ; - Indicative P1 Pl Past => stem + "jāmies" ; + Indicative P1 Pl Past => stem + "jāmies" ; Indicative P2 Sg Pres => stem + "jies" ; Indicative P2 Sg Fut => stem + "sies" ; - Indicative P2 Sg Past => stem + "jies" ; + Indicative P2 Sg Past => stem + "jies" ; Indicative P2 Pl Pres => stem + "jaties" ; - Indicative P2 Pl Fut => stem + ("sieties"|"sities") ; - Indicative P2 Pl Past => stem + "jāties" ; + --Indicative P2 Pl Fut => stem + ("sieties"|"sities") ; + Indicative P2 Pl Fut => stem + "sieties" ; + Indicative P2 Pl Past => stem + "jāties" ; Indicative P3 _ Pres => stem + "jas" ; Indicative P3 _ Fut => stem + "sies" ; - Indicative P3 _ Past => stem + "jās" ; + Indicative P3 _ Past => stem + "jās" ; - Indicative _ _ Cond => stem + "tos"; + Indicative _ _ Cond => stem + "tos" ; Relative Pres => stem + "joties" ; Relative Fut => stem + "šoties" ; - Relative Past => NON_EXISTENT ; - Relative Cond => NON_EXISTENT ; + Relative Past => NON_EXISTENT ; + Relative Cond => NON_EXISTENT ; Debitive => "jā" + stem + "jas" ; + DebitiveRelative => "jā" + stem + "joties" ; - Imperative Sg => stem + "jies" ; - Imperative Pl => stem + "jieties" ; + Imperative Sg => stem + "jies" ; + Imperative Pl => stem + "jieties" ; - Participle g n c => participle_reflexive g n c (stem + "j") + Participle g n c => mkParticiple_Refl g n c (stem + "j") } } ; - -- Third conjugation: reflexive verbs - -- Ref. to Lexicon.xml (revision 719): 20. paradigma - mkVerb_C3_R : Str -> Verb_TMP = \lemma -> - let stem : Str = Predef.tk 4 lemma + -- Third conjugation: reflexive + -- Ref. to lexicon.xml (revision 719): 20th paradigm + -- lemma: Infinitive + mkVerb_C3_Refl : Str -> Verb_TMP = \lemma -> + let + stem : Str = Predef.tk 4 lemma in { s = table { - Infinitive => stem + "ties" ; + Infinitive => lemma ; -- stem + "ties" Indicative P1 Sg Pres => pal_C3_1 stem + "os" ; Indicative P1 Sg Fut => stem + "šos" ; - Indicative P1 Sg Past => stem + "jos" ; + Indicative P1 Sg Past => stem + "jos" ; Indicative P1 Pl Pres => pal_C3_4 stem + "mies" ; Indicative P1 Pl Fut => stem + "simies" ; - Indicative P1 Pl Past => stem + "jāmies" ; + Indicative P1 Pl Past => stem + "jāmies" ; Indicative P2 Sg Pres => pal_C3_1 stem + "ies" ; Indicative P2 Sg Fut => stem + "sies" ; - Indicative P2 Sg Past => stem + "jies" ; + Indicative P2 Sg Past => stem + "jies" ; Indicative P2 Pl Pres => pal_C3_4 stem + "ties" ; - Indicative P2 Pl Fut => stem + ("sieties"|"sities") ; - Indicative P2 Pl Past => stem + "jāties" ; + --Indicative P2 Pl Fut => stem + ("sieties"|"sities") ; + Indicative P2 Pl Fut => stem + "sieties" ; + Indicative P2 Pl Past => stem + "jāties" ; Indicative P3 _ Pres => pal_C3_4 stem + "s" ; Indicative P3 _ Fut => stem + "sies" ; - Indicative P3 _ Past => stem + "jās" ; + Indicative P3 _ Past => stem + "jās" ; - Indicative _ _ Cond => stem + "tos"; + Indicative _ _ Cond => stem + "tos" ; Relative Pres => pal_C3_1 stem + "oties" ; Relative Fut => stem + "šoties" ; - Relative Past => NON_EXISTENT ; - Relative Cond => NON_EXISTENT ; + Relative Past => NON_EXISTENT ; + Relative Cond => NON_EXISTENT ; Debitive => pal_C3_6 stem + "s" ; + DebitiveRelative => pal_C3_6 stem + "oties" ; - Imperative Sg => pal_C3_1 stem + "ies" ; - Imperative Pl => pal_C3_1 stem + "ieties" ; + Imperative Sg => pal_C3_1 stem + "ies" ; + Imperative Pl => pal_C3_1 stem + "ieties" ; - Participle g n c => participle_reflexive g n c (stem + "j") + Participle g n c => mkParticiple_Refl g n c (stem + "j") } } ; mkVerb_Irreg : Str -> Verb = \lemma -> case lemma of { - "būt" => mkVerb_toBe ; - "iet" => mkVerb_Walk ; - "gulēt" => mkVerb_Sleep + "būt" => mkVerb_Irreg_Be ; + "iet" => mkVerb_Irreg_Walk ; + "gulēt" => mkVerb_Irreg_Sleep + -- TODO: dot, ..? + -- TODO: move to IrregLav? } ; - mkVerb_toBe : Verb = { + mkVerb_Irreg_Be : Verb = { s = table { Pos => table { Indicative P1 Sg Pres => "esmu" ; Indicative P2 Sg Pres => "esi" ; Indicative P3 _ Pres => "ir" ; + Debitive => "jābūt" ; - x => (mkVerb_C1 "būt" "esu" "biju").s ! x -- the incorrect form 'esu' will be overriden + + x => (mkVerb_C1 "būt" "esu" "biju").s ! x -- the incorrect 'esu' will be overriden } ; Neg => table { Indicative P1 Sg Pres => "neesmu" ; Indicative P2 Sg Pres => "neesi" ; Indicative P3 _ Pres => "nav" ; - Debitive => NON_EXISTENT; - DebitiveRelative => NON_EXISTENT; - x => (mkVerb_C1 "nebūt" "neesu" "nebiju").s ! x -- the incorrect form 'neesu' will be overriden + + Debitive => NON_EXISTENT ; + + DebitiveRelative => NON_EXISTENT ; + + x => (mkVerb_C1 "nebūt" "neesu" "nebiju").s ! x -- the incorrect 'neesu' will be overriden } } } ; - mkVerb_Walk : Verb = { + mkVerb_Irreg_Walk : Verb = { s = table { Pos => table { - Indicative P3 _ Pres => "iet" ; + Indicative P3 _ Pres => "iet" ; Debitive => "jāiet" ; - x => (mkVerb_C1 "iet" "eju" "gāju" ).s ! x -- the incorrect form 'esu' will be overriden + x => (mkVerb_C1 "iet" "eju" "gāju" ).s ! x } ; Neg => table { - Indicative P3 _ Pres => "neiet" ; - Debitive => NON_EXISTENT; - DebitiveRelative => NON_EXISTENT; - x => (mkVerb_C1 "neiet" "neeju" "negāju" ).s ! x -- the incorrect form 'neesu' will be overriden + Indicative P3 _ Pres => "neiet" ; + Debitive => NON_EXISTENT ; + DebitiveRelative => NON_EXISTENT ; + x => (mkVerb_C1 "neiet" "neeju" "negāju" ).s ! x } } } ; - mkVerb_Sleep : Verb = { + mkVerb_Irreg_Sleep : Verb = { s = table { Pos => table { - Indicative P2 Sg Pres => (mkVerb_C3 "gulēt").s ! Indicative P2 Sg Pres; - Indicative p n Pres => (mkVerb_C3 "guļēt").s ! Indicative p n Pres; - Relative Pres => (mkVerb_C3 "guļēt").s ! Relative Pres; - Debitive => (mkVerb_C3 "guļēt").s ! Debitive; - DebitiveRelative => (mkVerb_C3 "guļēt").s ! DebitiveRelative; + Indicative P2 Sg Pres => (mkVerb_C3 "gulēt").s ! Indicative P2 Sg Pres ; + Indicative p n Pres => (mkVerb_C3 "guļēt").s ! Indicative p n Pres ; + + -- Here and there: the incorrect 'guļēt' contains intentional palatalization + + Relative Pres => (mkVerb_C3 "guļēt").s ! Relative Pres ; + + Debitive => (mkVerb_C3 "guļēt").s ! Debitive ; + + DebitiveRelative => (mkVerb_C3 "guļēt").s ! DebitiveRelative ; + x => (mkVerb_C3 "gulēt").s ! x } ; Neg => table { - Indicative P2 Sg Pres => (mkVerb_C3 "negulēt").s ! Indicative P2 Sg Pres; - Indicative p n Pres => (mkVerb_C3 "neguļēt").s ! Indicative p n Pres; - Relative Pres => (mkVerb_C3 "neguļēt").s ! Relative Pres; - Debitive => NON_EXISTENT; - DebitiveRelative => NON_EXISTENT; + Indicative P2 Sg Pres => (mkVerb_C3 "negulēt").s ! Indicative P2 Sg Pres ; + Indicative p n Pres => (mkVerb_C3 "neguļēt").s ! Indicative p n Pres ; + + Relative Pres => (mkVerb_C3 "neguļēt").s ! Relative Pres ; + + Debitive => NON_EXISTENT ; + + DebitiveRelative => NON_EXISTENT ; + x => (mkVerb_C3 "negulēt").s ! x } } } ; - -- Auxiliaries (palatalization rules) + -- Auxiliaries: palatalization rules -- Ref. to the Java implementation: mija6 - pal_C1_1 : Str -> Str -> Str = \stem3,stem -> - case stem of { + -- stem3: Indicative P1 Sg Past + -- stem1: Infinitive + pal_C1_1 : Str -> Str -> Str = \stem3,stem1 -> + case stem1 of { s + "s" => case stem3 of { _ + "d" => s + "dī" ; _ + "t" => s + "tī" ; _ + "s" => s + "sī" ; - _ => stem + _ => stem1 } ; - s + "z" => s + "zī" ; -- lauzt -> lauzīs - _ => stem + s + "z" => s + "zī" ; -- e.g. 'lauzt' => 'lauzīs' + _ => stem1 } ; -- Ref. to the Java implementation: mija7 - pal_C1_2 : Str -> Str -> Str = \stem3,stem -> - case stem of { + -- stem3: Indicative P1 Sg Past + -- stem2: Indicative P1 Sg Pres + pal_C1_2 : Str -> Str -> Str = \stem3,stem2 -> + case stem2 of { s + "š" => case stem3 of { _ + "s" => s + "s" ; - _ => stem + _ => stem2 } ; - s + "t" => case stem of { - _ + "met" => stem ; - _ + "cērt" => stem; - _ => s + "ti" - } ; - -- s + "ž" => s + "d" ; -- aizkomentēts jo noveda pie laužu -> laud nevis lauz + s + "t" => case stem2 of { + _ + "met" => stem2 ; + _ + "cērt" => stem2 ; + _ => s + "ti" + } ; + --s + "ž" => s + "d" ; -- FIXME: 'laužu' => 'lauz' not 'laud' s + "ļ" => s + "l" ; s + "mj" => s + "m" ; s + "bj" => s + "b" ; s + "pj" => s + "p" ; s + "k" => s + "c" ; s + "g" => s + "dz" ; - _ => stem + _ => stem2 } ; -- Ref. to the Java implementation: mija11 - pal_C1_3 : Str -> Str = \stem -> - case stem of { + -- stem3: Indicative P1 Sg Past + pal_C1_3 : Str -> Str = \stem3 -> + case stem3 of { s + "c" => s + "k" ; s + "dz" => s + "g" ; - _ => stem + _ => stem3 } ; -- Ref. to the Java implementation: mija14 + -- stem: Indicative P1 Sg Pres | Indicative P1 Sg Past pal_C1_4 : Str -> Str = \stem -> case stem of { s + "k" => s + "c" ; - _ => stem + _ => stem } ; -- Ref. to the Java implementation: mija2 pal_C3_1 : Str -> Str = \stem -> case stem of { s + "cī" => s + "k" ; - _ => Predef.tk 1 stem + _ => Predef.tk 1 stem } ; -- Ref. to the Java implementation: mija2a @@ -455,21 +504,20 @@ oper case stem of { _ + "ī" => "ā" + Predef.dp 1 ending ; _ + "inā" => "ā" + Predef.dp 1 ending ; - _ => ending + _ => ending } ; -- Ref. to the Java implementation: mija5 - pal_C3_3 : Str -> Str = \stem -> - "jā" + pal_C3_5 stem ; + pal_C3_3 : Str -> Str = \stem -> "jā" + pal_C3_5 stem ; -- Ref. to the Java implementation: mija8 pal_C3_4 : Str -> Str = \stem -> case stem of { s + "inā" => stem ; - s + "cī" => s + "kā" ; -- e.g. 'sacīt' + s + "cī" => s + "kā" ; s + "ī" => s + "ā" ; s + "ē" => s + "a" ; - _ => stem + _ => stem } ; -- Ref. to the Java implementation: mija9 @@ -477,9 +525,9 @@ oper case stem of { s + "dā" => Predef.tk 1 stem ; s + "ā" => s + "a" ; - s + "cī" => s + "ka" ; -- e.g. 'sacīt' + s + "cī" => s + "ka" ; -- e.g. 'sacīt' => 'saka' s + "ī" => s + "a" ; - _ => Predef.tk 1 stem + _ => Predef.tk 1 stem } ; -- Ref. to the Java implementation: mija12 @@ -489,91 +537,97 @@ oper s + "cī" => s + "kā" ; s + "ī" => s + "ā" ; s + "inā" => s + "inā" ; - _ => Predef.tk 1 stem + "a" + _ => Predef.tk 1 stem + "a" } ; - -- Participle paradigms - participle_normal : Gender -> Number -> Case -> Str -> Str = \g,n,c, stem -> participle_normal_l g n c stem stem; - participle_normal_l : Gender -> Number -> Case -> Str -> Str -> Str = \g,n,c, stem, lemma_stem -> - case g of { - Masc => case n of { - Sg => case c of { - Nom => lemma_stem + "is" ; - Gen => stem + "uša" ; - Dat => stem + "ušam" ; - Acc => stem + "ušu" ; - Loc => stem + "ušā" ; - Voc => NON_EXISTENT - } ; - Pl => case c of { - Nom => stem + "uši" ; - Gen => stem + "ušu" ; - Dat => stem + "ušiem" ; - Acc => stem + "ušus" ; - Loc => stem + "ušos" ; - Voc => NON_EXISTENT - } - } ; - Fem => case n of { - Sg => case c of { - Nom => stem + "usi" ; - Gen => stem + "ušas" ; - Dat => stem + "ušai" ; - Acc => stem + "ušu" ; - Loc => stem + "ušā" ; - Voc => NON_EXISTENT - }; - Pl => case c of { - Nom => stem + "ušas" ; - Gen => stem + "ušu" ; - Dat => stem + "ušām" ; - Acc => stem + "ušas" ; - Loc => stem + "ušās" ; - Voc => NON_EXISTENT - } - } - } ; + -- Participles: non-declinable and partially declinable participles, nominative cases of declinable participles + -- Declinable participles: syntactic function - attribute => category - adjective + -- TODO: declinable participles => adjectives + -- TODO: -ot, -am, -ām; -dams/dama, -damies/damās; -ošs/oša, -ams/ama, -āms/āma, -ts/ta - participle_reflexive : Gender -> Number -> Case -> Str -> Str = \g,n,c, stem -> participle_reflexive_l g n c stem stem; - participle_reflexive_l : Gender -> Number -> Case -> Str -> Str -> Str = \g,n,c, stem, lemma_stem -> + mkParticiple : Gender -> Number -> Case -> Str -> Str = \g,n,c,stem -> mkParticiple_IsUsi g n c stem stem ; + + mkParticiple_IsUsi : Gender -> Number -> Case -> Str -> Str -> Str = \g,n,c,stem,stem_lemma -> case g of { - Masc => case n of { - Sg => case c of { - Nom => lemma_stem + "ies" ; - Gen => NON_EXISTENT ; - Dat => NON_EXISTENT ; - Acc => stem + "ušos" ; - Loc => NON_EXISTENT ; - Voc => NON_EXISTENT - } ; - Pl => case c of { - Nom => stem + "ušies" ; - Gen => stem + "ušos" ; - Dat => NON_EXISTENT ; - Acc => stem + "ušos" ; - Loc => NON_EXISTENT ; - Voc => NON_EXISTENT - } - } ; - Fem => case n of { - Sg => case c of { - Nom => stem + "usies" ; - Gen => stem + "ušās" ; - Dat => NON_EXISTENT ; - Acc => stem + "ušos" ; - Loc => NON_EXISTENT ; - Voc => NON_EXISTENT - }; - Pl => case c of { - Nom => stem + "ušās" ; - Gen => stem + "ušos" ; - Dat => NON_EXISTENT ; - Acc => stem + "ušos" ; - Loc => NON_EXISTENT ; - Voc => NON_EXISTENT - } - } - } ; + Masc => case n of { + Sg => case c of { + Nom => stem_lemma + "is" ; + Gen => stem + "uša" ; + Dat => stem + "ušam" ; + Acc => stem + "ušu" ; + Loc => stem + "ušā" ; + Voc => NON_EXISTENT + } ; + Pl => case c of { + Nom => stem + "uši" ; + Gen => stem + "ušu" ; + Dat => stem + "ušiem" ; + Acc => stem + "ušus" ; + Loc => stem + "ušos" ; + Voc => NON_EXISTENT + } + } ; + Fem => case n of { + Sg => case c of { + Nom => stem + "usi" ; + Gen => stem + "ušas" ; + Dat => stem + "ušai" ; + Acc => stem + "ušu" ; + Loc => stem + "ušā" ; + Voc => NON_EXISTENT + } ; + Pl => case c of { + Nom => stem + "ušas" ; + Gen => stem + "ušu" ; + Dat => stem + "ušām" ; + Acc => stem + "ušas" ; + Loc => stem + "ušās" ; + Voc => NON_EXISTENT + } + } + } ; + + mkParticiple_Refl : Gender -> Number -> Case -> Str -> Str = \g,n,c,stem -> mkParticiple_Refl_IesUsies g n c stem stem ; + + mkParticiple_Refl_IesUsies : Gender -> Number -> Case -> Str -> Str -> Str = \g,n,c,stem,stem_lemma -> + case g of { + Masc => case n of { + Sg => case c of { + Nom => stem_lemma + "ies" ; + Gen => NON_EXISTENT ; + Dat => NON_EXISTENT ; + Acc => stem + "ušos" ; + Loc => NON_EXISTENT ; + Voc => NON_EXISTENT + } ; + Pl => case c of { + Nom => stem + "ušies" ; + Gen => stem + "ušos" ; + Dat => NON_EXISTENT ; + Acc => stem + "ušos" ; + Loc => NON_EXISTENT ; + Voc => NON_EXISTENT + } + } ; + Fem => case n of { + Sg => case c of { + Nom => stem + "usies" ; + Gen => stem + "ušās" ; + Dat => NON_EXISTENT ; + Acc => stem + "ušos" ; + Loc => NON_EXISTENT ; + Voc => NON_EXISTENT + } ; + Pl => case c of { + Nom => stem + "ušās" ; + Gen => stem + "ušos" ; + Dat => NON_EXISTENT ; + Acc => stem + "ušos" ; + Loc => NON_EXISTENT ; + Voc => NON_EXISTENT + } + } + } ; } ; diff --git a/lib/src/latvian/QuestionLav.gf b/lib/src/latvian/QuestionLav.gf index 3752ed9d7..0e240465a 100644 --- a/lib/src/latvian/QuestionLav.gf +++ b/lib/src/latvian/QuestionLav.gf @@ -20,7 +20,7 @@ lin QuestIAdv iadv cl = { s = \\m,p => iadv.s ++ cl.s ! m ! p } ; - QuestIComp icomp np = { s = \\m,p => icomp.s ++ buildVerb mkVerb_toBe m p np.a ++ np.s ! Nom } ; + QuestIComp icomp np = { s = \\m,p => icomp.s ++ buildVerb mkVerb_Irreg_Be m p np.a ++ np.s ! Nom } ; IdetQuant idet num = { s = \\g => idet.s ! g ! num.n ++ num.s ! g ! Nom ; diff --git a/lib/src/latvian/ResLav.gf b/lib/src/latvian/ResLav.gf index e45a05c72..b5bccb527 100644 --- a/lib/src/latvian/ResLav.gf +++ b/lib/src/latvian/ResLav.gf @@ -1,10 +1,5 @@ --# -path=.:../abstract:../common:../prelude --- This module contains operations that are needed to make the --- resource syntax work. To define everything that is needed to --- implement $Test$, it moreover contains regular lexical --- patterns needed for $Lex$. - resource ResLav = ParamX ** open Prelude in { flags @@ -12,8 +7,6 @@ flags coding = utf8 ; param - -- Some parameters, such as $Number$, are inherited from $ParamX$. - -- Nouns Case = Nom | Gen | Dat | Acc | Loc | Voc ; Gender = Masc | Fem ; diff --git a/lib/src/latvian/StructuralLav.gf b/lib/src/latvian/StructuralLav.gf index 9e35f6be5..211cb6381 100644 --- a/lib/src/latvian/StructuralLav.gf +++ b/lib/src/latvian/StructuralLav.gf @@ -13,7 +13,7 @@ flags coding = utf8 ; lin - language_title_Utt = ss "Latviešu valoda" ; + language_title_Utt = ss "latviešu valoda" ; -- TODO: kā ar loģikā lietotajiem 'visi', 'katrs' ? every_Det = { @@ -414,7 +414,7 @@ lin always_AdV = mkAdV "vienmēr" ; - how8many_IDet = { s = table { _ => "cik daudz"}; n = Sg }; --TODO jātestē kā to pielieto un vai nevajag vēl kaut ko + how8many_IDet = { s = table { _ => "cik"}; n = Sg }; --TODO jātestē kā to pielieto un vai nevajag vēl kaut ko everybody_NP = DetCN emptyPl_Det (UseN (mkN "visi")); @@ -424,6 +424,10 @@ lin somebody_NP = DetCN emptySg_Det (UseN (mkN "kāds")); something_NP = DetCN emptySg_Det (UseN (mkN "kaut kas")); + have_V2 = mkV2 (mkV "būt") nom_Prep ; + can8know_VV, can_VV = mkV "varēt" third_conjugation ; + must_VV = mkV "vajadzēt" third_conjugation ; + oper reflPron : Case => Str = table { Nom => NON_EXISTENT; diff --git a/lib/src/latvian/VerbLav.gf b/lib/src/latvian/VerbLav.gf index b346a00fd..9ce8e9f17 100644 --- a/lib/src/latvian/VerbLav.gf +++ b/lib/src/latvian/VerbLav.gf @@ -1,7 +1,7 @@ --# -path=.:../abstract:../common:../prelude -- FIXME: module relations. VerbLav is included in many places because of buildVerb, --- and includes ParadigmsVerbsLav because of mkVerb_toBe - +-- and includes ParadigmsVerbsLav because of mkVerb_Irreg_Be - -- they need to be reallocated somehow to ResLav or something similar. -- Not so simple since morphology itself needs ResLav & friends. @@ -49,7 +49,7 @@ lin ReflVP vp = insertObjPre (\\a => vp.p.s ++ reflPron ! (vp.p.c ! (fromAgr a).n)) vp ; - UseComp comp = { v = lin V mkVerb_toBe ; s2 = \\agr => comp.s ! agr } ; + UseComp comp = { v = lin V mkVerb_Irreg_Be ; s2 = \\agr => comp.s ! agr } ; AdvVP vp adv = insertObj (\\_ => adv.s) vp ; AdVVP adv vp = insertObjPre (\\_ => adv.s) vp ; @@ -81,21 +81,21 @@ oper in case mood of { Ind Simul tense => v.s ! pol ! (Indicative ag.p ag.n tense) ; --# notpresent - Ind Anter tense => mkVerb_toBe.s ! pol ! (Indicative ag.p ag.n tense) ++ part ; --# notpresent + Ind Anter tense => mkVerb_Irreg_Be.s ! pol ! (Indicative ag.p ag.n tense) ++ part ; --# notpresent -- FIXME(?): Rel _ Past => ... Rel _ Past => ResLav.NON_EXISTENT ; --# notpresent Rel Simul tense => v.s ! pol ! (Relative tense) ; --# notpresent - Rel Anter tense => mkVerb_toBe.s ! pol ! (Relative tense) ++ part ; --# notpresent + Rel Anter tense => mkVerb_Irreg_Be.s ! pol ! (Relative tense) ++ part ; --# notpresent - Deb Simul tense => mkVerb_toBe.s ! pol ! (Indicative P3 Sg tense) ++ --# notpresent + Deb Simul tense => mkVerb_Irreg_Be.s ! pol ! (Indicative P3 Sg tense) ++ --# notpresent v.s ! ResLav.Pos ! Debitive ; --# notpresent - Deb Anter tense => mkVerb_toBe.s ! pol ! (Indicative P3 Sg tense) ++ --# notpresent - mkVerb_toBe.s ! ResLav.Pos ! (Participle Masc Sg Nom) ++ --# notpresent + Deb Anter tense => mkVerb_Irreg_Be.s ! pol ! (Indicative P3 Sg tense) ++ --# notpresent + mkVerb_Irreg_Be.s ! ResLav.Pos ! (Participle Masc Sg Nom) ++ --# notpresent v.s ! ResLav.Pos ! Debitive ; --# notpresent Condit Simul => v.s ! pol ! (Indicative ag.p ag.n ParamX.Cond) ; --# notpresent - Condit Anter => mkVerb_toBe.s ! pol ! (Indicative ag.p ag.n ParamX.Cond) ++ part --# notpresent + Condit Anter => mkVerb_Irreg_Be.s ! pol ! (Indicative ag.p ag.n ParamX.Cond) ++ part --# notpresent } ; -- TODO: nav testēts