diff --git a/examples/attempto/AttemptoGer.gf b/examples/attempto/AttemptoGer.gf new file mode 100644 index 000000000..abfd44df5 --- /dev/null +++ b/examples/attempto/AttemptoGer.gf @@ -0,0 +1,7 @@ +--# -path=.:/Users/aarne/GF/next-lib/present + +concrete AttemptoGer of Attempto = AttemptoI with + (Syntax = SyntaxGer), + (Symbolic = SymbolicGer), + (LexAttempto = LexAttemptoGer) ; + diff --git a/examples/attempto/LexAttemptoGer.gf b/examples/attempto/LexAttemptoGer.gf new file mode 100644 index 000000000..f97b46456 --- /dev/null +++ b/examples/attempto/LexAttemptoGer.gf @@ -0,0 +1,15 @@ +instance LexAttemptoGer of LexAttempto = + open ExtraGer, SyntaxGer, ParadigmsGer, ConstructX, IrregGer in { + +oper + possible_A = mkA "möglich" ; + necessary_A = mkA "nötig" ; + own_A = mkA "eigen" ; + have_VV = SyntaxGer.must_VV ; + provably_Adv = mkAdv "beweisbar" ; + provable_A = mkA "beweisbar" ; + false_A = mkA "falsch" ; + + genitiveNP np cn = mkNP (mkNP the_Art cn) (SyntaxGer.mkAdv possess_Prep np) ; + +} diff --git a/examples/attempto/TestAttempto.gf b/examples/attempto/TestAttempto.gf index 33eee9c86..39ddc48e5 100644 --- a/examples/attempto/TestAttempto.gf +++ b/examples/attempto/TestAttempto.gf @@ -4,7 +4,7 @@ fun card_N : CN ; water_MCN : MCN ; john_PN : PN ; - apple_PN : PN ; + apple_N : CN ; sleep_V : V ; young_A : A ; dog_N : CN ; diff --git a/examples/attempto/TestAttemptoEng.gf b/examples/attempto/TestAttemptoEng.gf index 9a475cc18..75c1c4755 100644 --- a/examples/attempto/TestAttemptoEng.gf +++ b/examples/attempto/TestAttemptoEng.gf @@ -6,7 +6,7 @@ concrete TestAttemptoEng of TestAttempto = AttemptoEng ** lin card_N = mkkN "card" ; lin water_MCN = mkCN (mkkN "water") ; lin john_PN = mkPN "john" ; -lin apple_PN = mkPN "apple" ; +lin apple_N = mkkN "apple" ; lin sleep_V = IrregEng.sleep_V ; lin young_A = mkA "young" ; lin dog_N = mkkN "dog" ; diff --git a/examples/attempto/TestAttemptoFre.gf b/examples/attempto/TestAttemptoFre.gf index 7901852ca..2bdfb2173 100644 --- a/examples/attempto/TestAttemptoFre.gf +++ b/examples/attempto/TestAttemptoFre.gf @@ -6,7 +6,7 @@ concrete TestAttemptoFre of TestAttempto = AttemptoFre ** lin card_N = mkkN "carte" ; lin water_MCN = mkgN "eau" feminine ; lin john_PN = mkPN "John" ; -lin apple_PN = mkPN "pomme" ; +lin apple_N = mkkN "pomme" ; lin sleep_V = mkV IrregFre.dormir_V2 ; lin young_A = mkA "jeune" ; lin dog_N = mkkN "chien" ; diff --git a/examples/attempto/TestAttemptoGer.gf b/examples/attempto/TestAttemptoGer.gf new file mode 100644 index 000000000..722d6ae05 --- /dev/null +++ b/examples/attempto/TestAttemptoGer.gf @@ -0,0 +1,87 @@ +--# -path=.:/Users/aarne/GF/next-lib/present + +concrete TestAttemptoGer of TestAttempto = AttemptoGer ** + open SyntaxGer, ParadigmsGer, IrregGer, (C = ConstructX) in { + +lin card_N = mkkN "Karte" ; +lin water_MCN = mkgN "Wasser" "Wasser" neuter ; +lin john_PN = mkPN "John" ; +lin apple_N = mkgN "Apfel" "Äpfel" masculine ; +lin sleep_V = IrregGer.schlafen_V ; +lin young_A = mkA "jung" ; +lin dog_N = mkgN "Hund" "Hünde" masculine ; +lin animal_N = mkgN "Tier" "Tiere" neuter ; +lin wait_V = mkV "warten" ; +lin man_N = mkgN "Mann" "Männer" masculine ; +lin woman_N = mkgN "Frau" "Frauen" feminine ; +lin give_V3 = accdatV3 geben_V ; +lin tired_A = mkA "müde" ; +lin rich_A = mkA "reich" ; +lin customer_N = mkgN "Kunde" "Kunden" masculine ; +lin enter_V2 = mkV2 (mkV "ein" treten_V) (mkPrep "in" accusative) ; +lin bank_N = mkgN "Bank" "Banken" feminine ; +lin satisfied_A = mkA "zufrieden" ; +lin lucky_A = mkA "glücklich" ; +lin well_known_A = mkA "bekannt" ; +lin important_A = mkA "wichtig" ; +lin expensive_A = mkA "teuer" ; +lin fill_in_V2 = mkV2 (mkV "ab" (mkV "füllen")) ; +lin form_N = mkgN "Formulär" "Formuläre" neuter ; +lin age_N = mkgN "Alter" "Älter" masculine ; +lin teacher_N = mkgN "Lehrer" "Lehrer" masculine ; +lin successful_A = mkA "erfolgreich" ; +lin fond_A2 = mkA2 (mkA "verliebt") (mkPrep "in" dative) ; +lin garden_N = mkgN "Garten" "Gärten" masculine ; +lin morning_N = mkgN "Morgen" "Morgen" masculine ; +lin code_N = mkkN "Code" ; +lin drinkable_A = mkA "trinkbar" ; +lin work_V = mkV "arbeiten" ; +lin admitted_A = mkA "zugelassen" ; +lin eat_V2 = mkV2 essen_V ; +lin burger_N = mkgN "Hamburger" "Hamburger" masculine ; +lin earn_V2 = mkV2 (no_geV (mkV "verdienen")) ; +lin income_N = mkgN "Einkommen" "Einkommen" neuter ; +lin england_PN = mkPN "England" ; +lin beginning_N = mkgN "Anfang" "Anfänge" masculine ; +lin office_N = mkgN "Büro" "Büros" neuter ; +lin interested_A2 = mkA2 (mkA "interessiert") (mkPrep "an" accusative) ; ---- +lin classroom_N = mkkN "Klasse" ; +lin manually_Adv = mkAdv "manuell" ; +lin slot_N = mkgN "Hohl" "Höhle" masculine ; ---- +lin patiently_Adv = mkAdv "geduldig" ; +lin course_N = mkkN "Kurse" ; ---- +lin carefully_Adv = mkAdv "vorsichtig" ; +lin time_N = mkgN "Zeit" "Zeiten" feminine ; +lin believe_V = mkV "glauben" ; +lin seriously_Adv = mkAdv "seriös" ; ---- +lin clerk_N = mkgN "Angestellt" "Angestellten" masculine ; ---- +lin screen_N = mkgN "Schirm" "Schirme" neuter ; +lin blink_V = mkV "blinken" ; ---- +lin bed_N = mkgN "Bett" "Bette" neuter ; +lin container_N = mkgN "Gehälter" "Gehälter" masculine ; +lin automated_teller_N = mkgN "Automat" "Automate" neuter ; +lin reject_V2 = mkV2 (mkV "verwerfen") ; ---- +lin accept_V2 = mkV2 (mkV "an" nehmen_V) ; +lin type_V2 = mkV2 "typen" ; ---- +lin know_V = wissen_V ; +lin manager_N = mkgN "Manager" "Managers" masculine ; ---- +lin oversleep_V = schlafen_V ; ---- +lin valid_A = mkA "gültig" ; +lin see_V2 = mkV2 sehen_V ; +lin bark_V = mkV "bellen" ; +lin go_V2 = mkV2 gehen_V to_Prep ; +lin brother_N = mkgN "Bruder" "Brüder" masculine ; +lin mary_PN = mkPN "Mary" ; +lin machine_N = mkkN "maschine" ; +lin correct_A = mkA "korrekt" ; + +oper + mkkN : Str -> CN = \n -> mkCN (ParadigmsGer.mkN n) ; + mkgN : Str -> Str -> Gender -> CN = \s,n,g -> mkCN (ParadigmsGer.mkN s n g) ; + +lin + in_Prep = SyntaxGer.in_Prep ; + at_Prep = SyntaxGer.to_Prep ; + into_Prep = mkPrep "in" accusative ; + +} diff --git a/examples/attempto/TestAttemptoSwe.gf b/examples/attempto/TestAttemptoSwe.gf index 831e8232f..ee2822b07 100644 --- a/examples/attempto/TestAttemptoSwe.gf +++ b/examples/attempto/TestAttemptoSwe.gf @@ -6,7 +6,7 @@ concrete TestAttemptoSwe of TestAttempto = AttemptoSwe ** lin card_N = mkkN "kort" neutrum ; lin water_MCN = mkkN "vatten" neutrum ; lin john_PN = mkPN "john" ; -lin apple_PN = mkPN "apple" ; +lin apple_N = mkkN "äpple" neutrum ; lin sleep_V = IrregSwe.sova_V ; lin young_A = mkA "ung" ; lin dog_N = mkkN "hund" utrum ; diff --git a/next-lib/src/german/ParadigmsGer.gf b/next-lib/src/german/ParadigmsGer.gf index 446bbe07d..03a70a946 100644 --- a/next-lib/src/german/ParadigmsGer.gf +++ b/next-lib/src/german/ParadigmsGer.gf @@ -215,14 +215,18 @@ mkV : overload { mkV2 : overload { +-- Two-place regular verbs with direct object (accusative, transitive verbs). + + mkV2 : Str -> V2 ; + +-- Two-place verbs with direct object. + + mkV2 : V -> V2 ; + -- Two-place verbs with a preposition. mkV2 : V -> Prep -> V2 ; --- Two-place verbs with direct object (accusative, transitive verbs). - - mkV2 : V -> V2 ; - -- Two-place verbs with object in the given case. mkV2 : V -> Case -> V2 @@ -498,8 +502,9 @@ mkV2 : overload { datV2 : V -> V2 ; mkV2 = overload { - mkV2 : V -> Prep -> V2 = prepV2; + mkV2 : Str -> V2 = \s -> dirV2 (regV s) ; mkV2 : V -> V2 = dirV2 ; + mkV2 : V -> Prep -> V2 = prepV2; mkV2 : V -> Case -> V2 = \v,c -> prepV2 v (mkPrep [] c) };