diff --git a/examples/bronzeage/BronzeageEng.gf b/examples/bronzeage/BronzeageEng.gf index ab67eba67..c2f14d3ff 100644 --- a/examples/bronzeage/BronzeageEng.gf +++ b/examples/bronzeage/BronzeageEng.gf @@ -1,4 +1,4 @@ ---# -path=.:compiled:prelude:resource-1.0/swadesh +--# -path=.:resource-1.0/present:prelude:compiled concrete BronzeageEng of Bronzeage = CatEng, SwadeshEng ** BronzeageI with (Lang = LangEng), diff --git a/examples/bronzeage/BronzeageFin.gf b/examples/bronzeage/BronzeageFin.gf index 762f6915b..ff4e9cbe0 100644 --- a/examples/bronzeage/BronzeageFin.gf +++ b/examples/bronzeage/BronzeageFin.gf @@ -1,4 +1,4 @@ ---# -path=.:compiled:resource-1.0/swadesh +--# -path=.:resource-1.0/present:prelude concrete BronzeageFin of Bronzeage = CatFin, SwadeshFin ** BronzeageI with (Lang = LangFin), diff --git a/examples/bronzeage/BronzeageFre.gf b/examples/bronzeage/BronzeageFre.gf index eee718fa5..3105decf6 100644 --- a/examples/bronzeage/BronzeageFre.gf +++ b/examples/bronzeage/BronzeageFre.gf @@ -1,4 +1,4 @@ ---# -path=.:compiled:prelude:resource-1.0/swadesh +--# -path=.:resource-1.0/present:prelude:compiled concrete BronzeageFre of Bronzeage = CatFre, SwadeshFre ** BronzeageI with (Lang = LangFre), diff --git a/examples/bronzeage/BronzeageGer.gf b/examples/bronzeage/BronzeageGer.gf index 6c0a083de..23ba21665 100644 --- a/examples/bronzeage/BronzeageGer.gf +++ b/examples/bronzeage/BronzeageGer.gf @@ -1,4 +1,4 @@ ---# -path=.:compiled:resource-1.0/swadesh +--# -path=.:resource-1.0/present:prelude:compiled concrete BronzeageGer of Bronzeage = CatGer, SwadeshGer ** BronzeageI with (Lang = LangGer), diff --git a/examples/bronzeage/BronzeageIta.gf b/examples/bronzeage/BronzeageIta.gf index 24da6a1f4..adebd04a3 100644 --- a/examples/bronzeage/BronzeageIta.gf +++ b/examples/bronzeage/BronzeageIta.gf @@ -1,4 +1,4 @@ ---# -path=.:compiled:prelude:resource-1.0/swadesh +--# -path=.:resource-1.0/present:prelude:compiled concrete BronzeageIta of Bronzeage = CatIta, SwadeshIta ** BronzeageI with (Lang = LangIta), diff --git a/examples/bronzeage/BronzeageNor.gf b/examples/bronzeage/BronzeageNor.gf index 8287d5fe0..5b64d38b9 100644 --- a/examples/bronzeage/BronzeageNor.gf +++ b/examples/bronzeage/BronzeageNor.gf @@ -1,4 +1,4 @@ ---# -path=.:compiled:prelude:resource-1.0/swadesh +--# -path=.:resource-1.0/present:prelude:compiled concrete BronzeageNor of Bronzeage = CatNor, SwadeshNor ** BronzeageI with (Lang = LangNor), diff --git a/examples/bronzeage/BronzeageSpa.gf b/examples/bronzeage/BronzeageSpa.gf index 3d8154796..3d0d67b42 100644 --- a/examples/bronzeage/BronzeageSpa.gf +++ b/examples/bronzeage/BronzeageSpa.gf @@ -1,4 +1,4 @@ ---# -path=.:compiled:prelude:resource-1.0/swadesh +--# -path=.:resource-1.0/present:prelude:compiled concrete BronzeageSpa of Bronzeage = CatSpa, SwadeshSpa ** BronzeageI with (Lang = LangSpa), diff --git a/examples/bronzeage/BronzeageSwe.gf b/examples/bronzeage/BronzeageSwe.gf index 053a20406..22f1a7659 100644 --- a/examples/bronzeage/BronzeageSwe.gf +++ b/examples/bronzeage/BronzeageSwe.gf @@ -1,4 +1,4 @@ ---# -path=.:compiled:prelude:resource-1.0/swadesh +--# -path=.:resource-1.0/present:prelude:compiled concrete BronzeageSwe of Bronzeage = CatSwe, SwadeshSwe ** BronzeageI with (Lang = LangSwe), diff --git a/examples/bronzeage/Swadesh.gf b/examples/bronzeage/Swadesh.gf new file mode 100644 index 000000000..4057d1ab4 --- /dev/null +++ b/examples/bronzeage/Swadesh.gf @@ -0,0 +1,243 @@ +-- Swadesh 207 +abstract Swadesh = Cat ** { + fun + + -- Pronouns + + i_NP : Pron ; + youSg_NP : Pron ; + he_NP : Pron ; + we_NP : Pron ; + youPl_NP : Pron ; + they_NP : Pron ; + whoPl_IP : IP ; -- only one who in Swadesh 207 + whoSg_IP : IP ; + whatPl_IP : IP ; -- only one what in Swadesh 207 + whatSg_IP : IP ; + + -- Determiners + + that_Det : Det ; + this_Det : Det ; + all_Det : Det ; + many_Det : Det ; + some_Det : Det ; + few_Det : Det ; + other_Det : Det ; + + -- Adverbs + + here_Adv : Adv ; + there_Adv : Adv ; + where_IAdv : IAdv ; + when_IAdv : IAdv ; + how_IAdv : IAdv ; + far_Adv : Adv ; + + -- Conjunctions + + and_Conj : Conj ; + + -- Prepositions + + at_Prep : Prep ; + in_Prep : Prep ; + with_Prep : Prep ; + + -- not -- ? + -- if -- ? + -- because -- ? + + -- Numerals + + one_Det : Det ; + two_Num : Num ; + three_Num : Num ; + four_Num : Num ; + five_Num : Num ; + + -- Adjectives + + bad_A : A ; + big_A : A ; + black_A : A ; + cold_A : A ; + correct_A : A ; + dirty_A : A ; + dry_A : A ; + dull_A : A ; + full_A : A ; + good_A : A ; + green_A : A ; + heavy_A : A ; + long_A : A ; + narrow_A : A ; + near_A : A ; + new_A : A ; + old_A : A ; + red_A : A ; + rotten_A : A ; + round_A : A ; + sharp_A : A ; + short_A : A ; + small_A : A ; + smooth_A : A ; + straight_A : A ; + thick_A : A ; + thin_A : A ; + warm_A : A ; + wet_A : A ; + white_A : A ; + wide_A : A ; + yellow_A : A ; + + left_A : A ; + right_A : A ; + + -- Nouns + + animal_N : N ; + ashes_N : N ; + back_N : N ; + bark_N : N ; + belly_N : N ; + bird_N : N ; + blood_N : N ; + bone_N : N ; + breast_N : N ; + child_N : N ; + cloud_N : N ; + day_N : N ; + dog_N : N ; + dust_N : N ; + ear_N : N ; + earth_N : N ; + egg_N : N ; + eye_N : N ; + fat_N : N ; + father_N : N ; + feather_N : N ; + fingernail_N : N ; + fire_N : N ; + fish_N : N ; + flower_N : N ; + fog_N : N ; + foot_N : N ; + forest_N : N ; + fruit_N : N ; + grass_N : N ; + guts_N : N ; + hair_N : N ; + hand_N : N ; + head_N : N ; + heart_N : N ; + horn_N : N ; + husband_N : N ; + ice_N : N ; + knee_N : N ; + lake_N : N ; + leaf_N : N ; + leg_N : N ; + liver_N : N ; + louse_N : N ; + man_N : N ; + meat_N : N ; + moon_N : N ; + mother_N : N ; + mountain_N : N ; + mouth_N : N ; + name_N : N ; + neck_N : N ; + night_N : N ; + nose_N : N ; + person_N : N ; + rain_N : N ; + river_N : N ; + road_N : N ; + root_N : N ; + rope_N : N ; + salt_N : N ; + sand_N : N ; + sea_N : N ; + seed_N : N ; + skin_N : N ; + sky_N : N ; + smoke_N : N ; + snake_N : N ; + snow_N : N ; + star_N : N ; + stick_N : N ; + stone_N : N ; + sun_N : N ; + tail_N : N ; + tongue_N : N ; + tooth_N : N ; + tree_N : N ; + water_N : N ; + wife_N : N ; + wind_N : N ; + wing_N : N ; + woman_N : N ; + worm_N : N ; + year_N : N ; + + -- Verbs + + bite_V : V2 ; + blow_V : V ; + breathe_V : V ; + burn_V : V ; + come_V : V ; + count_V : V2 ; + cut_V : V2 ; + die_V : V ; + dig_V : V ; + drink_V : V2 ; + eat_V : V2 ; + fall_V : V ; + fear_V : V2 ; + fight_V : V2 ; + float_V : V ; + flow_V : V ; + fly_V : V ; + freeze_V : V ; + give_V : V3 ; + hear_V : V2 ; + hit_V : V2 ; + hold_V : V2 ; + hunt_V : V2 ; + kill_V : V2 ; + know_V : V2 ; + laugh_V : V ; + lie_V : V ; + live_V : V ; + play_V : V ; + pull_V : V2 ; + push_V : V2 ; + rub_V : V2 ; + say_V : V ; + scratch_V : V2 ; + see_V : V2 ; + sew_V : V ; + sing_V : V ; + sit_V : V ; + sleep_V : V ; + smell_V : V2 ; + spit_V : V ; + split_V : V2 ; + squeeze_V : V2 ; + stab_V : V2 ; + stand_V : V ; + suck_V : V2 ; + swell_V : V ; + swim_V : V ; + think_V : V ; + throw_V : V2 ; + tie_V : V2 ; + turn_V : V ; + vomit_V : V ; + walk_V : V ; + wash_V : V2 ; + wipe_V : V2 ; + +} \ No newline at end of file diff --git a/examples/bronzeage/SwadeshEng.gf b/examples/bronzeage/SwadeshEng.gf new file mode 100644 index 000000000..d85de74e2 --- /dev/null +++ b/examples/bronzeage/SwadeshEng.gf @@ -0,0 +1,245 @@ +--# -path=.:../abstract:../common:../english:../../prelude + +concrete SwadeshEng of Swadesh = CatEng + ** open MorphoEng, LangEng, ParadigmsEng, IrregEng, Prelude in { + + lin + + -- Pronouns + + i_NP = i_Pron ; + youSg_NP = youSg_Pron ; + he_NP = he_Pron ; + we_NP = we_Pron ; + youPl_NP = youPl_Pron ; + they_NP = they_Pron ; + whoPl_IP = whoPl_IP ; + whoSg_IP = whoSg_IP ; + whatPl_IP = whatPl_IP ; + whatSg_IP = whatSg_IP ; + + -- Determiners + + this_Det = DetSg (SgQuant this_Quant) NoOrd ; + that_Det = DetSg (SgQuant that_Quant) NoOrd ; + all_Det = mkDeterminer Pl "all" ; + many_Det = many_Det ; + some_Det = someSg_Det ; + few_Det = mkDeterminer Pl "few" ; + other_Det = mkDeterminer Pl "other" ; + + + -- Adverbs + + here_Adv = here_Adv; + there_Adv = there_Adv; + where_IAdv = where_IAdv; + when_IAdv = when_IAdv; + how_IAdv = how_IAdv; + far_Adv = mkAdv "far" ; + + -- not : Adv ; -- ? + + -- Conjunctions + + and_Conj = and_Conj ; + + -- Prepositions + + at_Prep = ss "at" ; + in_Prep = ss "in" ; + with_Prep = ss "with" ; + + -- Numerals + + one_Det = DetSg one_Quant NoOrd ; + two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; + three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; + four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; + five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; + + -- Adjectives + + bad_A = bad_A ; + big_A = big_A ; + black_A = black_A ; + cold_A = cold_A ; + correct_A = (regA "correct") ; + dirty_A = dirty_A ; + dry_A = regA "dry" ; + dull_A = regA "dull" ; + full_A = regA "full" ; + good_A = good_A ; + green_A = green_A ; + heavy_A = regA "heavy" ; + long_A = long_A ; + narrow_A = narrow_A ; + near_A = regA "near" ; + new_A = new_A ; + old_A = old_A ; + red_A = red_A ; + rotten_A = (regA "rotten") ; + round_A = regA "round" ; + sharp_A = regA "sharp" ; + short_A = short_A ; + small_A = small_A ; + smooth_A = regA "smooth" ; + straight_A = regA "straight" ; + thick_A = thick_A ; + thin_A = thin_A ; + warm_A = warm_A ; + wet_A = regA "wet" ; ---- + white_A = white_A ; + wide_A = regA "wide" ; + yellow_A = yellow_A ; + + left_A = regA "left" ; + right_A = regA "right" ; + + -- Nouns + + animal_N = regN "animal" ; + ashes_N = regN "ash" ; -- FIXME: plural only? + back_N = regN "back" ; + bark_N = regN "bark" ; + belly_N = regN "belly" ; + bird_N = bird_N; + blood_N = regN "blood" ; + bone_N = regN "bone" ; + breast_N = regN "breast" ; + child_N = child_N ; + cloud_N = regN "cloud" ; + day_N = regN "day" ; + dog_N = dog_N ; + dust_N = regN "dust" ; + ear_N = regN "ear" ; + earth_N = regN "earth" ; + egg_N = regN "egg" ; + eye_N = regN "eye" ; + fat_N = regN "fat" ; + father_N = UseN2 father_N2 ; + feather_N = regN "feather" ; + fingernail_N = regN "fingernail" ; + fire_N = regN "fire" ; + fish_N = fish_N ; + flower_N = regN "flower" ; + fog_N = regN "fog" ; + foot_N = mk2N "foot" "feet" ; + forest_N = regN "forest" ; + fruit_N = fruit_N ; + grass_N = regN "grass" ; + guts_N = regN "gut" ; -- FIXME: no singular + hair_N = regN "hair" ; + hand_N = regN "hand" ; + head_N = regN "head" ; + heart_N = regN "heart" ; + horn_N = regN "horn" ; + husband_N = genderN masculine (regN "husband") ; + ice_N = regN "ice" ; + knee_N = regN "knee" ; + lake_N = lake_N ; + leaf_N = mk2N "leaf" "leaves" ; + leg_N = regN "leg" ; + liver_N = regN "liver" ; + louse_N = mk2N "louse" "lice" ; + man_N = man_N ; + meat_N = meat_N ; + moon_N = moon_N ; + mother_N = UseN2 mother_N2 ; + mountain_N = mountain_N ; + mouth_N = regN "mouth" ; + name_N = regN "name" ; + neck_N = regN "neck" ; + night_N = regN "night" ; + nose_N = regN "nose" ; + person_N = genderN human (regN "person") ; + rain_N = regN "rain" ; + river_N = river_N ; + road_N = regN "road" ; + root_N = regN "root" ; + rope_N = regN "rope" ; + salt_N = regN "salt" ; + sand_N = regN "sand" ; + sea_N = sea_N ; + seed_N = regN "seed" ; + skin_N = regN "skin" ; + sky_N = regN "sky" ; + smoke_N = regN "smoke" ; + snake_N = snake_N ; + snow_N = regN "snow" ; + star_N = star_N ; + stick_N = regN "stick" ; + stone_N = stone_N ; + sun_N = sun_N ; + tail_N = regN "tail" ; + tongue_N = regN "tongue" ; + tooth_N = mk2N "tooth" "teeth" ; + tree_N = tree_N ; + water_N = water_N ; + wife_N = genderN feminine (mk2N "wife" "wives") ; + wind_N = regN "wind" ; + wing_N = regN "wing" ; + woman_N = woman_N ; + worm_N = regN "worm" ; + year_N = regN "year" ; + + -- Verbs + + bite_V = dirV2 bite_V ; + blow_V = blow_V ; + breathe_V = dirV2 (regV "breathe") ; + burn_V = burn_V ; + come_V = come_V ; + count_V = dirV2 (regV "count") ; + cut_V = dirV2 cut_V ; + die_V = die_V ; + dig_V = dig_V ; + drink_V = dirV2 drink_V ; + eat_V = dirV2 eat_V ; + fall_V = fall_V ; + fear_V = dirV2 (regV "fear") ; + fight_V = dirV2 fight_V ; + float_V = regV "float" ; + flow_V = regV "flow" ; + fly_V = fly_V ; + freeze_V = freeze_V ; + give_V = dirdirV3 give_V ; + hear_V = dirV2 hear_V ; + hit_V = dirV2 hit_V ; + hold_V = dirV2 hold_V ; + hunt_V = dirV2 (regV "hunt") ; + kill_V = dirV2 (regV "kill") ; + know_V = dirV2 know_V ; + laugh_V = regV "laugh" ; + lie_V = lie_V ; + live_V = live_V ; + play_V = regV "play" ; + pull_V = dirV2 (regV "pull") ; + push_V = dirV2 (regV "push") ; + rub_V = dirV2 (regDuplV "rub") ; + say_V = say_V ; + scratch_V = dirV2 (regV "scratch") ; + see_V = dirV2 see_V ; + sew_V = sew_V ; + sing_V = sing_V ; + sit_V = sit_V ; + sleep_V = sleep_V ; + smell_V = dirV2 (regV "smell") ; + spit_V = spit_V ; + split_V = dirV2 split_V ; + squeeze_V = dirV2 (regV "squeeze") ; + stab_V = dirV2 (regDuplV "stab") ; + stand_V = stand_V ; + suck_V = dirV2 (regV "suck") ; + swell_V = swell_V ; + swim_V = swim_V ; + think_V = think_V ; + throw_V = dirV2 throw_V ; + tie_V = dirV2 (regV "tie") ; + turn_V = regV "turn" ; + vomit_V = regV "vomit" ; + walk_V = walk_V ; + wash_V = dirV2 (regV "wash") ; + wipe_V = dirV2 (regV "wipe") ; + +} \ No newline at end of file diff --git a/examples/bronzeage/SwadeshFin.gf b/examples/bronzeage/SwadeshFin.gf new file mode 100644 index 000000000..b41687bee --- /dev/null +++ b/examples/bronzeage/SwadeshFin.gf @@ -0,0 +1,260 @@ +--# -path=.:../present:../finnish:../common:../abstract:../../prelude + +concrete SwadeshFin of Swadesh = CatFin + ** open MorphoFin, LangFin, ParadigmsFin, Prelude in { + + flags optimize=values ; + + lin + + -- Pronouns + + i_NP = i_Pron ; + youSg_NP = youSg_Pron ; + he_NP = he_Pron ; + we_NP = we_Pron ; + youPl_NP = youPl_Pron ; + they_NP = they_Pron ; + whoPl_IP = whoPl_IP ; + whoSg_IP = whoSg_IP ; + whatPl_IP = whatPl_IP ; + whatSg_IP = whatSg_IP ; + + -- Determiners + + this_Det = DetSg (SgQuant this_Quant) NoOrd ; + that_Det = DetSg (SgQuant that_Quant) NoOrd ; + all_Det = mkDet Pl {s = \\nf => + let + kaiket = (nhn (sKorpi "kaikki" "kaiken" "kaikkena")).s + in + case nf of { + NCase Pl Nom => "kaikki" ; + _ => kaiket ! nf + } + } ; + many_Det = many_Det ; + some_Det = someSg_Det ; + few_Det = mkDet Sg (regN "harva") ; + other_Det = mkDet Sg (regN "muu") ; + + -- Adverbs + + here_Adv = here_Adv; + there_Adv = there_Adv; + where_IAdv = where_IAdv; + when_IAdv = when_IAdv; + how_IAdv = how_IAdv; + far_Adv = mkAdv "kaukana" ; + + -- not : Adv ; -- ? + + -- Conjunctions + + and_Conj = and_Conj ; + + -- Prepositions + + at_Prep = casePrep adessive ; + in_Prep = casePrep inessive ; + with_Prep = postGenPrep "kanssa" ; + + -- Numerals + + one_Det = DetSg one_Quant NoOrd ; + two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; + three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; + four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; + five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; + + -- Adjectives + + bad_A = bad_A ; + big_A = big_A ; + black_A = black_A ; + cold_A = cold_A ; + correct_A = regA "oikea" ; + dirty_A = dirty_A ; + dry_A = mkADeg (regN "kuiva") "kuivempi" "kuivin" ; + dull_A = mkADeg (regN "tyls") "tylsempi" "tylsin" ; + full_A = mkADeg (reg3N "tysi" "tyden" "tysi") "tydempi" "tysin" ; + good_A = good_A ; + green_A = green_A ; + heavy_A = regA "raskas" ; + long_A = long_A ; + narrow_A = narrow_A ; + near_A = regA "lheinen" ; + new_A = new_A ; + old_A = old_A ; + red_A = red_A ; + rotten_A = regA "mt" ; + round_A = regA "pyre" ; + sharp_A = regA "terv" ; + short_A = short_A ; + small_A = small_A ; + smooth_A = regA "sile" ; + straight_A = mkADeg (regN "suora") "suorempi" "suorin" ; + thick_A = thick_A ; + thin_A = thin_A ; + warm_A = warm_A ; + wet_A = mkADeg (regN "mrk") "mrempi" "mrin" ; + white_A = white_A ; + wide_A = regA "leve" ; + yellow_A = yellow_A ; + + left_A = mkA (regN "vasen") ; ---- + right_A = mkA (regN "oikea") ; + + -- Nouns + + animal_N = reg3N "elin" "elimen" "elimi" ; + ashes_N = regN "tuhka" ; + back_N = regN "selk" ; + bark_N = regN "kaarna" ; + belly_N = regN "vatsa" ; + bird_N = bird_N; + blood_N = nMeri "veri" ; + bone_N = regN "luu" ; + breast_N = regN "rinta" ; + child_N = child_N ; + cloud_N = reg2N "pilvi" "pilvi" ; + day_N = regN "piv" ; + dog_N = dog_N ; + dust_N = regN "ply" ; + ear_N = regN "korva" ; + earth_N = regN "maa" ; + egg_N = regN "muna" ; + eye_N = regN "silm" ; + fat_N = regN "rasva" ; + father_N = regN "is" ; + feather_N = reg3N "hyhen" "hyhenen" "hyheni" ; + fingernail_N = reg3N "kynsi" "kynnen" "kynsi" ; + fire_N = reg2N "tuli" "tulia" ; + fish_N = fish_N ; + flower_N = regN "kukka" ; + fog_N = regN "sumu" ; + foot_N = regN "jalka" ; + forest_N = regN "mets" ; + fruit_N = fruit_N ; + grass_N = regN "ruoho" ; + guts_N = regN "sislmys" ; --- suoli + hair_N = regN "hius" ; + hand_N = reg3N "ksi" "kden" "ksi" ; + head_N = regN "p" ; + heart_N = reg3N "sydn" "sydmen" "sydmi" ; + horn_N = reg2N "sarvi" "sarvia" ; + husband_N = man_N ; --- aviomies + ice_N = regN "j" ; + knee_N = reg2N "polvi" "polvia" ; + lake_N = lake_N ; + leaf_N = reg2N "lehti" "lehti" ; + leg_N = regN "jalka" ; --- sri + liver_N = regN "maksa" ; + louse_N = regN "lude" ; + man_N = man_N ; + meat_N = meat_N ; + moon_N = moon_N ; + mother_N = regN "iti" ; + mountain_N = mountain_N ; + mouth_N = regN "suu" ; + name_N = reg2N "nimi" "nimi" ; + neck_N = regN "niska" ; + night_N = regN "y" ; + nose_N = regN "nen" ; + person_N = regN "henkil" ; + rain_N = regN "sade" ; + river_N = river_N ; + road_N = regN "tie" ; + root_N = reg2N "juuri" "juuria" ; + rope_N = reg3N "kysi" "kyden" "kysi" ; + salt_N = regN "suola" ; + sand_N = regN "hiekka" ; + sea_N = sea_N ; + seed_N = regN "siemen" ; + skin_N = regN "nahka" ; + sky_N = reg3N "taivas" "taivaan" "taivaita" ; + smoke_N = regN "savu" ; + snake_N = snake_N ; + snow_N = sgpartN (nMeri "lumi") "lunta" ; + star_N = star_N ; + stick_N = regN "keppi" ; + stone_N = stone_N ; + sun_N = sun_N ; + tail_N = regN "hnt" ; + tongue_N = reg2N "kieli" "kieli" ; + tooth_N = regN "hammas" ; + tree_N = tree_N ; + water_N = water_N ; + wife_N = regN "vaimo" ; + wind_N = reg2N "tuuli" "tuulia" ; + wing_N = reg2N "siipi" "siipi" ; + woman_N = woman_N ; + worm_N = regN "mato" ; + year_N = reg3N "vuosi" "vuoden" "vuosia" ; + + -- Verbs + + bite_V = dirV2 (regV "purra") ; + blow_V = regV "puhaltaa" ; + breathe_V = dirV2 (regV "hengitt") ; + burn_V = regV "palaa" ; + come_V = come_V ; + count_V = dirV2 (regV "laskea") ; + cut_V = dirV2 (reg2V "leikata" "leikkasi") ; + die_V = regV "kuolla"; + dig_V = regV "kaivaa" ; + drink_V = dirV2 ( drink_V2) ; + eat_V = dirV2 ( eat_V2) ; + fall_V = reg3V "pudota" "putoan" "putosi" ; + fear_V = dirV2 (reg3V "pelt" "pelkn" "pelksi") ; + fight_V = dirV2 (regV "taistella") ; + float_V = regV "kellua" ; + flow_V = reg3V "virrata" "virtaan" "virtasi" ; + fly_V = regV "lent" ; + freeze_V = regV "jty" ; + give_V = dirdirV3 (regV "antaa") ; + hear_V = dirV2 ( hear_V2) ; + hit_V = dirV2 (regV "lyd") ; + hold_V = dirV2 (regV "pit") ; + hunt_V = dirV2 (regV "metsst") ; + kill_V = dirV2 (regV "tappaa") ; + know_V = dirV2 (reg2V "tuntea" "tunsin") ; + laugh_V = reg3V "nauraa" "nauran" "nauroi" ; + lie_V = reg3V "maata" "makaan" "makasi" ; + live_V = live_V ; + play_V = play_V2 ; + pull_V = dirV2 (regV "vet") ; + push_V = dirV2 (regV "tynt") ; + rub_V = dirV2 (regV "hieroa") ; + say_V = regV "sanoa" ; + scratch_V = dirV2 (regV "raapia") ; + see_V = ( see_V2) ; + sew_V = regV "kylv" ; + sing_V = regV "laulaa" ; + sit_V = regV "istua" ; + sleep_V = sleep_V ; + smell_V = dirV2 (reg2V "haistaa" "haistoi") ; + spit_V = regV "sylke" ; + split_V = dirV2 (reg2V "halkaista" "halkaisi") ; + squeeze_V = dirV2 (regV "puristaa") ; + stab_V = dirV2 (regV "pist") ; + stand_V = mkV "seist" "seisoo" "seison" "seisovat" "seisk" "seistn" + "seisoi" "seisoin" "seisoisi" "seissyt" "seisty" "seistyn" ; --- *seisoivt + suck_V = dirV2 (regV "ime") ; + swell_V = mkV "turvota" "turpoaa" "turpoan" "turpoavat" "turvotkaa" "turvotaan" + "turposi" "turposin" "turpoaisi" "turvonnut" "turvottu" "turvotun" ; + swim_V = reg3V "uida" "uin" "ui" ; + think_V = reg3V "ajatella" "ajattelen" "ajatteli" ; + throw_V = dirV2 (regV "heitt") ; + tie_V = dirV2 (regV "sitoa") ; + turn_V = regV "knty" ; + vomit_V = regV "oksentaa" ; + walk_V = walk_V ; + wash_V = dirV2 (regV "pest") ; + wipe_V = dirV2 (regV "pyyhki") ; + +oper + regA = regADeg ; ---- + + +} diff --git a/examples/bronzeage/SwadeshFre.gf b/examples/bronzeage/SwadeshFre.gf new file mode 100644 index 000000000..0a4ba93ca --- /dev/null +++ b/examples/bronzeage/SwadeshFre.gf @@ -0,0 +1,250 @@ +--# -path=.:../french:../common:../abstract:../../prelude:../romance + +concrete SwadeshFre of Swadesh = CatFre + ** open PhonoFre, MorphoFre, LangFre, ParadigmsFre, IrregFre, Prelude in { + + lin + + -- Pronouns + + i_NP = i_Pron ; + youSg_NP = youSg_Pron ; + he_NP = he_Pron ; + we_NP = we_Pron ; + youPl_NP = youPl_Pron ; + they_NP = they_Pron ; + whoPl_IP = whoPl_IP ; + whoSg_IP = whoSg_IP ; + whatPl_IP = whatPl_IP ; + whatSg_IP = whatSg_IP ; + + -- Determiners + + this_Det = DetSg (SgQuant this_Quant) NoOrd ; + that_Det = DetSg (SgQuant that_Quant) NoOrd ; + all_Det = { + s = \\g,c => prepCase c ++ genForms "tous" "toutes" ! g ++ "les" ; + n = Pl + } ; + many_Det = many_Det ; + some_Det = someSg_Det ; + few_Det = {s = \\g,c => prepCase c ++ "peu" ++ elisDe ; n = Pl} ; + other_Det = { + s = \\g,c => prepCase c ++ "d'autres" ; -- de d'autres + n = Pl + } ; + + -- Adverbs + + here_Adv = here_Adv; + there_Adv = there_Adv; + where_IAdv = where_IAdv; + when_IAdv = when_IAdv; + how_IAdv = how_IAdv; + far_Adv = mkAdv "loin" ; + + -- not : Adv ; -- ? + + -- Conjunctions + + and_Conj = and_Conj ; + + -- Prepositions + + at_Prep = dative ; + in_Prep = in_Prep ; + with_Prep = with_Prep ; + + -- Numerals + + one_Det = DetSg one_Quant NoOrd ; + two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; + three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; + four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; + five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; + + -- Adjectives + + bad_A = bad_A ; + big_A = big_A ; + black_A = black_A ; + cold_A = cold_A ; + correct_A = regA "correct" ; + dirty_A = dirty_A ; + dry_A = (mkA "sec" "sche" "secs" "sches") ; + dull_A = regA "mouss" ; + full_A = regA "plein" ; + good_A = good_A ; + green_A = green_A ; + heavy_A = regA "lourd" ; + long_A = long_A ; + narrow_A = narrow_A ; + near_A = regA "proche" ; + new_A = new_A ; + old_A = old_A ; + red_A = red_A ; + rotten_A = regA "pourri" ; + round_A = regA "rond" ; + sharp_A = regA "tranchant" ; + short_A = short_A ; + small_A = small_A ; + smooth_A = regA "lisse" ; + straight_A = regA "droite" ; + thick_A = thick_A ; + thin_A = thin_A ; + warm_A = warm_A ; + wet_A = regA "mouill" ; + white_A = white_A ; + wide_A = regA "large" ; + yellow_A = yellow_A ; + + left_A = regA "gauche" ; + right_A = regA "droite" ; + + -- Nouns + + animal_N = regN "animal" masculine ; + ashes_N = regN "cendre" masculine ; + back_N = regN "dos" masculine ; + bark_N = regN "corce" feminine ; + belly_N = regN "ventre" masculine ; + bird_N = bird_N; + blood_N = regN "sang" masculine ; + bone_N = regN "os" masculine ; + breast_N = regN "sein" masculine ; --- poitrine + child_N = child_N ; + cloud_N = regN "nuage" masculine ; + day_N = regN "jour" masculine ; + dog_N = dog_N ; + dust_N = regN "poussire" feminine ; + ear_N = regN "oreille" feminine ; + earth_N = regN "terre" feminine ; + egg_N = regN "oeuf" masculine ; + eye_N = mkN "oeil" "yeux" masculine ; + fat_N = regN "graisse" feminine ; + father_N = UseN2 father_N2 ; + feather_N = regN "plume" feminine ; + fingernail_N = regN "ongle" masculine ; + fire_N = regN "feu" masculine ; + fish_N = fish_N ; + flower_N = regN "fleur" feminine ; + fog_N = regN "brouillard" masculine ; + foot_N = regN "pied" masculine ; + forest_N = regN "fort" feminine ; + fruit_N = fruit_N ; + grass_N = regN "herbe" feminine ; + guts_N = regN "entraille" feminine ; + hair_N = regN "cheveu" masculine ; + hand_N = regN "main" feminine ; + head_N = regN "tte" feminine ; + heart_N = regN "coeur" masculine ; + horn_N = regN "corne" masculine ; + husband_N = regN "mari" masculine ; + ice_N = regN "glace" feminine ; + knee_N = regN "genou" masculine ; + lake_N = lake_N ; + leaf_N = regN "feuille" feminine ; + leg_N = regN "jambe" feminine ; + liver_N = regN "foie" masculine ; + louse_N = regN "pou" masculine ; + man_N = man_N ; + meat_N = meat_N ; + moon_N = moon_N ; + mother_N = UseN2 mother_N2 ; + mountain_N = mountain_N ; + mouth_N = regN "bouche" feminine ; + name_N = regN "nom" masculine ; + neck_N = mkN "cou" "cous" masculine ; + night_N = regN "nuit" feminine ; + nose_N = regN "nez" masculine ; + person_N = regN "personne" feminine ; + rain_N = regN "pluie" feminine ; + river_N = river_N ; + road_N = regN "route" feminine ; + root_N = regN "racine" feminine ; + rope_N = regN "corde" feminine ; + salt_N = regN "sel" masculine ; + sand_N = regN "sable" masculine ; + sea_N = sea_N ; + seed_N = regN "graine" feminine ; + skin_N = regN "peau" masculine ; + sky_N = mkN "ciel" "cieux" masculine ; + smoke_N = regN "fume" feminine ; + snake_N = snake_N ; + snow_N = regN "neige" feminine ; + star_N = star_N ; + stick_N = regN "bton" masculine ; + stone_N = stone_N ; + sun_N = sun_N ; + tail_N = regN "queue" feminine ; + tongue_N = regN "langue" feminine ; + tooth_N = regN "dent" feminine ; + tree_N = tree_N ; + water_N = water_N ; + wife_N = regN "femme" feminine ; + wind_N = regN "vent" masculine ; + wing_N = regN "aile" feminine ; + woman_N = woman_N ; + worm_N = regN "ver" masculine ; + year_N = regN "an" masculine ; --- anne + + -- Verbs + + bite_V = ( mordre_V2) ; + blow_V = regV "souffler" ; + breathe_V = dirV2 (regV "respirer") ; + burn_V = regV "brler" ; + come_V = venir_V ; + count_V = dirV2 (regV "conter") ; + cut_V = dirV2 (regV "tailler") ; + die_V = mourir_V ; + dig_V = regV "creuser" ; + drink_V = ( boire_V2) ; + eat_V = dirV2 (regV "manger") ; + fall_V = regV "tomber" ; + fear_V = ( craindre_V2) ; + fight_V = dirV2 (regV "lutter") ; + float_V = regV "flotter" ; + flow_V = regV "couler" ; + fly_V = regV "voler" ; + freeze_V = reg3V "geler" "gle" "glera" ; + give_V = dirdirV3 (regV "donner") ; + hear_V = ( entendre_V2) ; + hit_V = dirV2 (regV "frapper") ; + hold_V = ( tenir_V2) ; + hunt_V = dirV2 (regV "chasser") ; + kill_V = dirV2 (regV "tuer") ; + know_V = ( connatre_V2) ; + laugh_V = rire_V2 ; + lie_V = reflV tendre_V2 ; + live_V = vivre_V2 ; + play_V = regV "jouer" ; + pull_V = dirV2 (regV "tirer") ; + push_V = dirV2 (regV "pousser") ; + rub_V = dirV2 (regV "frotter") ; + say_V = dire_V2 ; + scratch_V = dirV2 (regV "gratter") ; + see_V = ( voir_V2) ; + sew_V = coudre_V2 ; + sing_V = regV "chanter" ; + sit_V = reflV asseoir_V2 ; + sleep_V = dormir_V2 ; + smell_V = ( sentir_V2) ; + spit_V = regV "cracher" ; + split_V = ( fendre_V2) ; + squeeze_V = dirV2 (regV "serrer") ; + stab_V = dirV2 (regV "poignarder") ; + stand_V = reflV (reg3V "lever" "lve" "lvera") ; + suck_V = dirV2 (regV "sucer") ; + swell_V = regV "gonfler" ; + swim_V = regV "nager" ; + think_V = regV "penser" ; + throw_V = dirV2 (regV "jeter") ; + tie_V = dirV2 (regV "lier") ; + turn_V = regV "tourner" ; + vomit_V = regV "vomir" ; + walk_V = regV "marcher" ; + wash_V = dirV2 (regV "laver") ; + wipe_V = dirV2 (regV "essuyer") ; + +} diff --git a/examples/bronzeage/SwadeshGer.gf b/examples/bronzeage/SwadeshGer.gf new file mode 100644 index 000000000..242d23cca --- /dev/null +++ b/examples/bronzeage/SwadeshGer.gf @@ -0,0 +1,245 @@ +--# -path=.:../abstract:../common:../german:../../prelude + +concrete SwadeshGer of Swadesh = CatGer + ** open MorphoGer, LangGer, ParadigmsGer, Prelude in { + + lin + + -- Pronouns + + i_NP = i_Pron ; + youSg_NP = youSg_Pron ; + he_NP = he_Pron ; + we_NP = we_Pron ; + youPl_NP = youPl_Pron ; + they_NP = they_Pron ; + whoPl_IP = whoPl_IP ; + whoSg_IP = whoSg_IP ; + whatPl_IP = whatPl_IP ; + whatSg_IP = whatSg_IP ; + + -- Determiners + + this_Det = DetSg (SgQuant this_Quant) NoOrd ; + that_Det = DetSg (SgQuant that_Quant) NoOrd ; +-- all_Det = mkDeterminer Pl "all" ; + many_Det = many_Det ; + some_Det = someSg_Det ; +-- few_Det = mkDeterminer Pl "few" ; +-- other_Det = mkDeterminer Pl "other" ; + + + -- Adverbs + + here_Adv = here_Adv; + there_Adv = there_Adv; + where_IAdv = where_IAdv; + when_IAdv = when_IAdv; + how_IAdv = how_IAdv; +-- far_Adv = mkAdv "far" ; + + -- not : Adv ; -- ? + + -- Conjunctions + + and_Conj = and_Conj ; + + -- Prepositions + +-- at_Prep = ss "at" ; +-- in_Prep = ss "in" ; +-- with_Prep = ss "with" ; + + -- Numerals + + one_Det = DetSg one_Quant NoOrd ; + two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; + three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; + four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; + five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; + + -- Adjectives + + bad_A = bad_A ; + big_A = big_A ; + black_A = black_A ; + cold_A = cold_A ; +-- correct_A = (regA "correct") ; + dirty_A = dirty_A ; +-- dry_A = regA "dry" ; +-- dull_A = regA "dull" ; +-- full_A = regA "full" ; + good_A = good_A ; + green_A = green_A ; +-- heavy_A = regA "heavy" ; + long_A = long_A ; + narrow_A = narrow_A ; +-- near_A = regA "near" ; + new_A = new_A ; + old_A = old_A ; + red_A = red_A ; +-- rotten_A = (regA "rotten") ; +-- round_A = regA "round" ; +-- sharp_A = regA "sharp" ; + short_A = short_A ; + small_A = small_A ; +-- smooth_A = regA "smooth" ; +-- straight_A = regA "straight" ; + thick_A = thick_A ; + thin_A = thin_A ; + warm_A = warm_A ; +-- wet_A = regA "wet" ; ---- + white_A = white_A ; +-- wide_A = regA "wide" ; + yellow_A = yellow_A ; + +-- left_A = regA "left" ; +-- right_A = regA "right" ; + + -- Nouns + +-- animal_N = regN "animal" ; +-- ashes_N = regN "ash" ; -- FIXME: plural only? +-- back_N = regN "back" ; +-- bark_N = regN "bark" ; +-- belly_N = regN "belly" ; + bird_N = bird_N; +-- blood_N = regN "blood" ; +-- bone_N = regN "bone" ; +-- breast_N = regN "breast" ; + child_N = child_N ; +-- cloud_N = regN "cloud" ; +-- day_N = regN "day" ; + dog_N = dog_N ; +-- dust_N = regN "dust" ; +-- ear_N = regN "ear" ; +-- earth_N = regN "earth" ; +-- egg_N = regN "egg" ; +-- eye_N = regN "eye" ; +-- fat_N = regN "fat" ; +--- father_N = UseN2 father_N2 ; +-- feather_N = regN "feather" ; +-- fingernail_N = regN "fingernail" ; +-- fire_N = regN "fire" ; + fish_N = fish_N ; +-- flower_N = regN "flower" ; +-- fog_N = regN "fog" ; +-- foot_N = mk2N "foot" "feet" ; +-- forest_N = regN "forest" ; + fruit_N = fruit_N ; +-- grass_N = regN "grass" ; +-- guts_N = regN "gut" ; -- FIXME: no singular +-- hair_N = regN "hair" ; +-- hand_N = regN "hand" ; +-- head_N = regN "head" ; +-- heart_N = regN "heart" ; +-- horn_N = regN "horn" ; +-- husband_N = genderN masculine (regN "husband") ; +-- ice_N = regN "ice" ; +-- knee_N = regN "knee" ; + lake_N = lake_N ; +-- leaf_N = mk2N "leaf" "leaves" ; +-- leg_N = regN "leg" ; +-- liver_N = regN "liver" ; +-- louse_N = mk2N "louse" "lice" ; + man_N = man_N ; + meat_N = meat_N ; + moon_N = moon_N ; +--- mother_N = UseN2 mother_N2 ; + mountain_N = mountain_N ; +-- mouth_N = regN "mouth" ; +-- name_N = regN "name" ; +-- neck_N = regN "neck" ; +-- night_N = regN "night" ; +-- nose_N = regN "nose" ; +-- person_N = genderN human (regN "person") ; +-- rain_N = regN "rain" ; + river_N = river_N ; +-- road_N = regN "road" ; +-- root_N = regN "root" ; +-- rope_N = regN "rope" ; +-- salt_N = regN "salt" ; +-- sand_N = regN "sand" ; + sea_N = sea_N ; +-- seed_N = regN "seed" ; +-- skin_N = regN "skin" ; +-- sky_N = regN "sky" ; +-- smoke_N = regN "smoke" ; + snake_N = snake_N ; +-- snow_N = regN "snow" ; + star_N = star_N ; +-- stick_N = regN "stick" ; + stone_N = stone_N ; + sun_N = sun_N ; +-- tail_N = regN "tail" ; +-- tongue_N = regN "tongue" ; +-- tooth_N = mk2N "tooth" "teeth" ; + tree_N = tree_N ; + water_N = water_N ; +-- wife_N = genderN feminine (mk2N "wife" "wives") ; +-- wind_N = regN "wind" ; +-- wing_N = regN "wing" ; + woman_N = woman_N ; +-- worm_N = regN "worm" ; +-- year_N = regN "year" ; + + -- Verbs + +-- bite_V = bite_V ; +-- blow_V = blow_V ; +-- breathe_V = dirV2 (regV "breathe") ; +-- burn_V = burn_V ; + come_V = come_V ; +-- count_V = dirV2 (regV "count") ; +-- cut_V = dirV2 cut_V ; + die_V = die_V ; +-- dig_V = dig_V ; + drink_V = drink_V2 ; + eat_V = eat_V2 ; +-- fall_V = fall_V ; +-- fear_V = dirV2 (regV "fear") ; +-- fight_V = dirV2 fight_V ; +-- float_V = regV "float" ; +-- flow_V = regV "flow" ; +-- fly_V = fly_V ; +-- freeze_V = freeze_V ; +-- give_V = dirdirV3 give_V ; + hear_V = hear_V2 ; +-- hit_V = dirV2 hit_V ; +-- hold_V = dirV2 hold_V ; +-- hunt_V = dirV2 (regV "hunt") ; +-- kill_V = dirV2 (regV "kill") ; +-- know_V = dirV2 know_V ; +-- laugh_V = regV "laugh" ; +-- lie_V = lie_V ; + live_V = live_V ; +-- play_V = regV "play" ; +-- pull_V = dirV2 (regV "pull") ; +-- push_V = dirV2 (regV "push") ; +-- rub_V = dirV2 (regDuplV "rub") ; +-- say_V = say_V ; +-- scratch_V = dirV2 (regV "scratch") ; +-- see_V = see_V2 ; +-- sew_V = sew_V ; +-- sing_V = sing_V ; +-- sit_V = sit_V ; + sleep_V = sleep_V ; +-- smell_V = dirV2 (regV "smell") ; +-- spit_V = spit_V ; +-- split_V = dirV2 split_V ; +-- squeeze_V = dirV2 (regV "squeeze") ; +-- stab_V = dirV2 (regDuplV "stab") ; +-- stand_V = stand_V ; +-- suck_V = dirV2 (regV "suck") ; +-- swell_V = swell_V ; +-- swim_V = swim_V ; +-- think_V = think_V ; +-- throw_V = dirV2 throw_V ; +-- tie_V = dirV2 (regV "tie") ; +-- turn_V = regV "turn" ; +-- vomit_V = regV "vomit" ; + walk_V = walk_V ; +-- wash_V = dirV2 (regV "wash") ; +-- wipe_V = dirV2 (regV "wipe") ; + +} diff --git a/examples/bronzeage/SwadeshIta.gf b/examples/bronzeage/SwadeshIta.gf new file mode 100644 index 000000000..618e40589 --- /dev/null +++ b/examples/bronzeage/SwadeshIta.gf @@ -0,0 +1,249 @@ +--# -path=.:../italian:../common:../abstract:../../prelude:../romance + +concrete SwadeshIta of Swadesh = CatIta + ** open PhonoIta, MorphoIta, LangIta, ParadigmsIta, BeschIta, Prelude in { + + lin + -- Pronouns + + i_NP = i_Pron ; + youSg_NP = youSg_Pron ; + he_NP = he_Pron ; + we_NP = we_Pron ; + youPl_NP = youPl_Pron ; + they_NP = they_Pron ; + whoPl_IP = whoPl_IP ; + whoSg_IP = whoSg_IP ; + whatPl_IP = whatPl_IP ; + whatSg_IP = whatSg_IP ; + + -- Determiners + + this_Det = DetSg (SgQuant this_Quant) NoOrd ; + that_Det = DetSg (SgQuant that_Quant) NoOrd ; + all_Det = { + s = \\g,c => prepCase c ++ genForms ["tutti i"] ["tutte le"] ! g ; + n = Pl + } ; + many_Det = many_Det ; + some_Det = someSg_Det ; + few_Det = {s = \\g,c => prepCase c ++ genForms "pochi" "poche" ! g ; n = Pl} ; + other_Det = { + s = \\g,c => prepCase c ++ genForms "altri" "altre" ! g ; + n = Pl + } ; + + -- Adverbs + + here_Adv = here_Adv; + there_Adv = there_Adv; + where_IAdv = where_IAdv; + when_IAdv = when_IAdv; + how_IAdv = how_IAdv; + far_Adv = mkAdv "lontano" ; + + -- not : Adv ; -- ? + + -- Conjunctions + + and_Conj = and_Conj ; + + -- Prepositions + + at_Prep = dative ; + in_Prep = in_Prep ; + with_Prep = with_Prep ; + + -- Numerals + + one_Det = DetSg one_Quant NoOrd ; + two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; + three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; + four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; + five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; + + -- Adjectives + + bad_A = bad_A ; + big_A = big_A ; + black_A = black_A ; + cold_A = cold_A ; + correct_A = regA "corretto" ; + dirty_A = dirty_A ; + dry_A = regA "secco" ; + dull_A = regA "noioso" ; + full_A = regA "pieno" ; + good_A = good_A ; + green_A = green_A ; + heavy_A = regA "pesante" ; + long_A = long_A ; + narrow_A = narrow_A ; + near_A = regA "vicino" ; + new_A = new_A ; + old_A = old_A ; + red_A = red_A ; + rotten_A = regA "marcio" ; + round_A = regA "rotondo" ; + sharp_A = regA "aguzzo" ; + short_A = short_A ; + small_A = small_A ; + smooth_A = regA "liscio" ; + straight_A = regA "diretto" ; + thick_A = thick_A ; + thin_A = thin_A ; + warm_A = warm_A ; + wet_A = regA "bagnato" ; + white_A = white_A ; + wide_A = regA "largo" ; + yellow_A = yellow_A ; + + left_A = regA "sinistro" ; + right_A = regA "destro" ; + + -- Nouns + + animal_N = regN "animale" ; + ashes_N = regN "cenere" ; + back_N = regN "schiena" ; + bark_N = regN "corteccia" ; + belly_N = regN "pancia" ; + bird_N = bird_N; + blood_N = regN "sangue" ; + bone_N = regN "osso" ; + breast_N = regN "seno" ; + child_N = child_N ; + cloud_N = regN "nuvola" ; + day_N = regN "giorno" ; + dog_N = dog_N ; + dust_N = regN "polvere" ; + ear_N = regN "orecchio" ; + earth_N = regN "terra" ; + egg_N = mkN "uovo" "uova" masculine ; -- fem in Pl + eye_N = regN "occhio" ; + fat_N = regN "grasso" ; + father_N = UseN2 father_N2 ; + feather_N = regN "piuma" ; + fingernail_N = regN "unghia" ; + fire_N = regN "fuoco" ; + fish_N = fish_N ; + flower_N = regN "fiore" ; + fog_N = regN "nebbia" ; + foot_N = regN "piede" ; + forest_N = regN "bosco" ; + fruit_N = fruit_N ; + grass_N = regN "erba" ; + guts_N = regN "intestino" ; + hair_N = regN "capello" ; + hand_N = femN (regN "mano") ; + head_N = regN "testa" ; + heart_N = regN "cuore" ; + horn_N = regN "corno" ; + husband_N = regN "marito" ; + ice_N = regN "ghiaccio" ; + knee_N = regN "ginocchio" ; + lake_N = lake_N ; + leaf_N = regN "foglia" ; + leg_N = regN "gamba" ; + liver_N = regN "fegato" ; + louse_N = regN "pidocchio" ; + man_N = man_N ; + meat_N = meat_N ; + moon_N = moon_N ; + mother_N = UseN2 mother_N2 ; + mountain_N = mountain_N ; + mouth_N = regN "bocca" ; + name_N = regN "nome" ; + neck_N = regN "collo" ; + night_N = femN (regN "notte") ; + nose_N = regN "naso" ; + person_N = regN "persona" ; + rain_N = regN "pioggia" ; + river_N = river_N ; + road_N = regN "strada" ; + root_N = femN (regN "radice") ; + rope_N = regN "corda" ; + salt_N = regN "sale" ; + sand_N = regN "sabbia" ; + sea_N = sea_N ; + seed_N = regN "seme" ; + skin_N = femN (regN "pelle") ; + sky_N = regN "cielo" ; + smoke_N = regN "fumo" ; + snake_N = snake_N ; + snow_N = femN (regN "neve") ; + star_N = star_N ; + stick_N = regN "bastone" ; + stone_N = stone_N ; + sun_N = sun_N ; + tail_N = regN "coda" ; + tongue_N = regN "lingua" ; + tooth_N = regN "dente" ; + tree_N = tree_N ; + water_N = water_N ; + wife_N = regN "donna" ; + wind_N = regN "vento" ; + wing_N = regN "ala" ; + woman_N = woman_N ; + worm_N = regN "verme" ; + year_N = regN "anno" ; + + -- Verbs + + bite_V = dirV2 (verboV (esplodere_51 "mordere")) ; + blow_V = regV "soffiare" ; + breathe_V = dirV2 (regV "respirare") ; + burn_V = regV "bruciare" ; + come_V = come_V ; + count_V = dirV2 (regV "contare") ; + cut_V = dirV2 (regV "tagliare") ; + die_V = die_V ; + dig_V = regV "scavare" ; + drink_V = dirV2 (drink_V2) ; + eat_V = dirV2 (regV "mangiare") ; + fall_V = essereV (verboV (cadere_28 "cadere")) ; + fear_V = dirV2 (fear_VS) ; + fight_V = dirV2 (regV "lottare") ; + float_V = regV "galleggiare" ; + flow_V = verboV (finire_100 "fluire") ; + fly_V = regV "volare" ; + freeze_V = regV "gelare" ; + give_V = dirdirV3 (verboV (dare_15 "dare")) ; + hear_V = dirV2 (hear_V2) ; + hit_V = dirV2 (regV "colpire") ; + hold_V = dirV2 (verboV (venire_110 "tenire")) ; + hunt_V = dirV2 (regV "cacciare") ; + kill_V = dirV2 (verboV (ridere_74 "uccidere")) ; + know_V = dirV2 (know_V2) ; + laugh_V = verboV (ridere_74 "ridere") ; + lie_V = verboV (piacere_64 "giacere") ; + live_V = live_V ; + play_V = regV "giocare" ; + pull_V = dirV2 (regV "tirare") ; + push_V = dirV2 (verboV (cingere_31 "spingere")) ; + rub_V = dirV2 (regV "strofinare") ; + say_V = say_VS ; + scratch_V = dirV2 (regV "graffiare") ; + see_V = dirV2 (see_V2) ; + sew_V = verboV (cucire_103 "cucire") ; + sing_V = regV "cantare" ; + sit_V = verboV (sedere_84 "sedere") ; --- refl? + sleep_V = sleep_V ; + smell_V = dirV2 (verboV (sentire_99 "sentire")) ; + spit_V = regV "sputare" ; + split_V = dirV2 (verboV (ridere_74 "dividere")) ; + squeeze_V = dirV2 (verboV (temere_20 "spremere")) ; + stab_V = dirV2 (regV "pugnalare") ; + stand_V = verboV (stare_16 "stare") ; ---- in piedi + suck_V = dirV2 (regV "succhiare") ; + swell_V = regV "gonfiare" ; + swim_V = regV "nuotare" ; + think_V = regV "pensare" ; + throw_V = dirV2 (regV "gettare") ; + tie_V = dirV2 (regV "legare") ; + turn_V = regV "tornare" ; + vomit_V = regV "vomitare" ; + walk_V = regV "camminare" ; + wash_V = dirV2 (regV "lavare") ; + wipe_V = dirV2 (regV "asciugare") ; + +} diff --git a/examples/bronzeage/SwadeshNor.gf b/examples/bronzeage/SwadeshNor.gf new file mode 100644 index 000000000..7ad64f3bc --- /dev/null +++ b/examples/bronzeage/SwadeshNor.gf @@ -0,0 +1,246 @@ +--# -path=.:../norwegian:../common:../abstract:../scandinavian:../../prelude + +concrete SwadeshNor of Swadesh = CatNor + ** open MorphoNor, LangNor, ParadigmsNor, IrregNor, Prelude in { + + lin + + -- Pronouns + + i_NP = i_Pron ; + youSg_NP = youSg_Pron ; + he_NP = he_Pron ; + we_NP = we_Pron ; + youPl_NP = youPl_Pron ; + they_NP = they_Pron ; + whoPl_IP = whoPl_IP ; + whoSg_IP = whoSg_IP ; + whatPl_IP = whatPl_IP ; + whatSg_IP = whatSg_IP ; + + -- Determiners + + this_Det = DetSg (SgQuant this_Quant) NoOrd ; + that_Det = DetSg (SgQuant that_Quant) NoOrd ; + all_Det = {s = \\_,_ => "alle" ; n = Pl ; det = DDef Indef} ; + many_Det = many_Det ; + some_Det = someSg_Det ; + few_Det = {s = \\_,_ => "f" ; n = Pl ; det = DDef Indef} ; + other_Det = {s = \\_,_ => "andre" ; n = Pl ; det = DDef Indef} ; + + -- Adverbs + + here_Adv = here_Adv ; + there_Adv = there_Adv ; + where_IAdv = where_IAdv ; + when_IAdv = when_IAdv ; + how_IAdv = how_IAdv ; + + -- not : Adv ; -- ? + + -- Conjunctions + + and_Conj = and_Conj ; + + -- Prepositions + + at_Prep = ss "ved" ; + in_Prep = ss "i" ; + with_Prep = ss "med" ; + + -- Numerals + + one_Det = DetSg one_Quant NoOrd ; + two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; + three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; + four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; + five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; + + -- Adjectives + + bad_A = bad_A ; + big_A = big_A ; + black_A = black_A ; + cold_A = cold_A ; + correct_A = regA "riktig" ; + dirty_A = dirty_A ; + dry_A = mk2A "trr" "trt" ; + dull_A = regA "slv" ; + full_A = regA "full" ; + good_A = good_A ; + green_A = green_A ; + heavy_A = irregADeg "tung" "tyngre" "tyngst" ; + left_A = mkA "venstre" "venstre" "venstre" ; + long_A = long_A ; + narrow_A = narrow_A ; + near_A = mkADeg "nre" "nre" "nre" "nrmere" "nrmest" ; + new_A = new_A ; + old_A = old_A ; + red_A = red_A ; + right_A = mkA "hyre" "hyre" "hyre" ; + rotten_A = mk3ADeg "rtten" "rttent" "rtne" ; + round_A = regA "rund" ; + sharp_A = mk2A "kvass" "kvast" ; + short_A = short_A ; + small_A = small_A ; + smooth_A = mk2A "slett" "slett" ; + straight_A = regA "rak" ; + thick_A = thick_A ; + thin_A = thin_A ; + warm_A = warm_A ; + wet_A = regA "vt" ; + white_A = white_A ; + wide_A = regA "bred" ; + yellow_A = yellow_A ; + + + -- Nouns + + animal_N = mk2N "dyr" "dyret" ; + ashes_N = mk2N "aske" "aska" ; + back_N = mk2N "rygg" "ryggen" ; + bark_N = mk2N "bark" "barken" ; + belly_N = mk2N "mage" "magen" ; + bird_N = bird_N ; + blood_N = mk2N "blod" "blodet" ; + bone_N = mk2N "bein" "beinet" ; + breast_N = mk2N "bryst" "brystet" ; + child_N = child_N ; + cloud_N = mk2N "sky" "skya" ; + day_N = mk2N "dag" "dagen" ; + dog_N = dog_N ; + dust_N = mk2N "stv" "stvet" ; + ear_N = mk2N "re" "ret" ; + earth_N = mk2N "jord" "jorda" ; + egg_N = mk2N "egg" "egget" ; + eye_N = mkN "ye" "yet" "yne" "ynene" ; + fat_N = mk2N "fett" "fettet" ; + father_N = mkN "far" "faren" "fedre" "fedrene" ; +-- father_N = UseN2 father_N2 ; + feather_N = mk2N "fjr" "fjra" ; + fingernail_N = mk2N "negl" "neglen" ; + fire_N = mk2N "ild" "ilden" ; + fish_N = fish_N ; + flower_N = mk2N "blomst" "blomsten" ; + fog_N = mk2N "tke" "tka" ; + foot_N = mk2N "fot" "ftter" ; + forest_N = mk2N "skog" "skogen" ; + fruit_N = fruit_N ; + grass_N = mk2N "gras" "graset" ; + guts_N = mk2N "tarm" "tarmen" ; ---- involler + hair_N = mk2N "hr" "hret" ; + hand_N = mk2N "hnd" "hnden" ; + + head_N = mk2N "hode" "hodet" ; + heart_N = mk2N "hjerte" "hjertet" ; + horn_N = mk2N "horn" "hornet" ; + husband_N = mkN "ektemann" "ektemannen" "ektemenn" "ektemennen" ; + ice_N = mk2N "is" "isen" ; + knee_N = mkN "kne" "kneet" "knr" "knne" ; + lake_N = lake_N ; + leaf_N = mk2N "lv" "lvet" ; + leg_N = mk2N "bein" "beinet" ; + liver_N = mkN "lever" "leveren" "levrer" "levrene" ; + louse_N = mk2N "lus" "lusa" ; + man_N = man_N ; + meat_N = meat_N ; + moon_N = moon_N ; + mother_N = mkN "mor" "moren" "mdre" "mdrene" ; +-- mother_N = UseN2 mother_N2 ; + mountain_N = mountain_N ; + mouth_N = mk2N "munn" "munnen" ; + name_N = mk2N "navn" "navnet" ; + neck_N = mk2N "nakke" "nakken" ; + night_N = mkN "natt" "natta" "netter" "nettene" ; + nose_N = mk2N "nese" "nesen" ; + person_N = mk2N "person" "personen" ; + rain_N = mk2N "regn" "regnet" ; + river_N = river_N ; + road_N = mk2N "vei" "veien" ; + root_N = mkN "rot" "rota" "rtter" "rttene" ; + rope_N = mk2N "tau" "tauet" ; + salt_N = mk2N "salt" "saltet" ; + sand_N = mk2N "sand" "sanden" ; + sea_N = sea_N ; + seed_N = mk2N "fr" "fret" ; + skin_N = mk2N "skinn" "skinnet" ; + sky_N = mkN "himmel" "himmelen" "himler" "himlene" ; + smoke_N = mk2N "ryk" "ryken" ; + snake_N = snake_N ; + snow_N = mk2N "sn" "snen" ; + star_N = star_N ; + stick_N = mk2N "pinne" "pinnen" ; + stone_N = stone_N ; + sun_N = sun_N ; + tail_N = mk2N "hale" "halen" ; + tongue_N = mk2N "tunge" "tunga" ; + tooth_N = mkN "tann" "tanna" "tenner" "tennene" ; + tree_N = tree_N ; + water_N = water_N ; + wife_N = mk2N "kone" "kona" ; + wind_N = mk2N "vind" "vinden" ; + wing_N = mk2N "vinge" "vingen" ; + woman_N = woman_N ; + worm_N = mk2N "mark" "marken" ; + year_N = mk2N "r" "ret" ; + + -- Verbs + + bite_V = dirV2 (IrregNor.bite_V) ; + blow_V = mk2V "blse" "blste" ; + breathe_V = dirV2 (regV "puste") ; + burn_V = brenne_V ; + come_V = komme_V ; + count_V = dirV2 (regV "regne") ; + cut_V = dirV2 (skjre_V) ; + die_V = d_V ; + dig_V = mk2V "grave" "gravde" ; + drink_V = dirV2 (drikke_V) ; + eat_V = dirV2 (mk2V "spise" "spiste") ; + fall_V = falle_V ; + fear_V = dirV2 (regV "frykte") ; + fight_V = dirV2 (slss_V) ; + float_V = flyte_V ; + flow_V = renne_V ; + fly_V = fly_V ; + freeze_V = fryse_V ; + give_V = dirdirV3 gi_V ; + hear_V = dirV2 (mk2V "hre" "hrde") ; + hit_V = dirV2 (sl_V) ; + hold_V = dirV2 (holde_V) ; + hunt_V = dirV2 (regV "jakte") ; + kill_V = dirV2 (mk2V "drepe" "drepte") ; + know_V = dirV2 (vite_V) ; + laugh_V = mkV "le" "ler" "les" "lo" "ledd" "le" ; + lie_V = ligge_V ; + live_V = mk2V "leve" "levde" ; + play_V = mk2V "leke" "lekte" ; + pull_V = dirV2 (dra_V) ; + push_V = dirV2 (irregV "skyve" "skjv" "skjvet") ; + rub_V = dirV2 (gni_V) ; + say_V = si_V ; + scratch_V = dirV2 (regV "kl") ; + see_V = dirV2 (se_V) ; + sew_V = mk2V "sy" "sydde" ; + sing_V = synge_V ; + sit_V = sitte_V ; + sleep_V = sove_V ; + smell_V = dirV2 (regV "lukte") ; + spit_V = regV "spytte" ; + split_V = dirV2 (mk2V "klyve" "klyvde") ; + squeeze_V = dirV2 (mk2V "klemme" "klemte") ; + stab_V = dirV2 (stikke_V) ; + stand_V = st_V ; + suck_V = dirV2 (suge_V) ; + swell_V = partV (regV "hovne") "opp" ; + swim_V = regV "simme" ; + think_V = mk2V "tenke" "tenkte" ; + throw_V = dirV2 (regV "kaste") ; + tie_V = dirV2 (regV "knytte") ; + turn_V = mk2V "vende" "vendte" ; + vomit_V = partV (regV "kaste") "opp" ; + walk_V = g_V ; + wash_V = dirV2 (regV "vaske") ; + wipe_V = dirV2 (regV "trke") ; + +} diff --git a/examples/bronzeage/SwadeshRus.gf b/examples/bronzeage/SwadeshRus.gf new file mode 100644 index 000000000..43be5fbfa --- /dev/null +++ b/examples/bronzeage/SwadeshRus.gf @@ -0,0 +1,247 @@ +--# -path=.:../abstract:../../prelude + +concrete SwadeshRus of Swadesh = CatRus + ** open ResourceRus, SyntaxRus, ParadigmsRus, + BasicRus, Prelude in { +flags coding=utf8 ; + lin + + -- Pronouns + + i_NP = i_Pron ; + youSg_NP = youSg_Pron ; + he_NP = he_Pron ; + we_NP = we_Pron ; + youPl_NP = youPl_Pron ; + they_NP = they_Pron ; + whoPl_IP = whoPl_IP ; + whoSg_IP = whoSg_IP ; + whatPl_IP = whatPl_IP ; + whatSg_IP = whatSg_IP ; + + -- Determiners + + this_Det = this_Det ; + that_Det = that_Det ; + all_Det = all_NDet ; + many_Det = many_Det ; + some_Det = someSg_Det ; + few_Det = adjInvar "мало" ** {n = Sg; g = PNoGen; c= Nom} ; + other_Det = drugojDet ** {n = Sg; g = PNoGen; c= Nom} ; + + + -- Adverbs + + here_Adv = here_Adv ; + there_Adv = there_Adv ; + where_IAdv = where_IAdv ; + when_IAdv = when_IAdv ; + how_IAdv = how_IAdv ; + + -- not : Adv ; -- ? + + -- Conjunctions + + and_Conj = and_Conj ; + + -- Prepositions + + at_Prep = { s2 = "у" ; c = genitive} ; + in_Prep = { s2 = "в" ; c = prepositional} ; + with_Prep = { s2 = "с" ; c = instructive} ; + + -- Numerals + + one_Det = DetSg one_Quant NoOrd ; + two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; + three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; + four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; + five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; + + -- Adjectives + + bad_A = bad_A ; + big_A = big_A ; + black_A = black_A ; + cold_A = cold_A ; + correct_A = mkA (AStaruyj "правильн") "правильнее"; + dirty_A = dirty_A ; + dry_A = mkA (AMolodoj "сух") "суше"; + dull_A = mkA (AStaruyj "скучн") "скучнее"; + far_A = mkA (AKhoroshij "далекий") "дальше"; + full_A = mkA (AStaruyj "полн") "полнее"; + good_A = good_A ; + green_A = green_A ; + heavy_A = mkA (AStaruyj "тяжел") "тяжелее"; + left_A = AStaruyj "лев"; + long_A = long_A ; + narrow_A = narrow_A ; + near_A = mkA (AMalenkij "близк") "ближе"; + new_A = new_A ; + old_A = old_A ; + red_A = red_A ; + right_A = AStaruyj "прав"; + rotten_A = mkA (AMolodoj "гнил") "гнилее"; + round_A = mkA (AStaruyj "кругл") "круглее"; + sharp_A = mkA (AStaruyj "остр") "острее"; + short_A = short_A ; + small_A = small_A ; + smooth_A = mkA (AMalenkij "гладк") "глаже"; + straight_A = mkA (AMolodoj "прям") "прямее"; + thick_A = thick_A ; + thin_A = thin_A ; + warm_A = warm_A ; + wet_A = mkA (AStaruyj "мокр") "мокрее"; + white_A = white_A ; + wide_A = mkA (AMalenkij "широк") "шире"; + yellow_A = yellow_A ; + + + -- Nouns + + animal_N = nZhivotnoe "животн" ; + ashes_N = nPepel "пеп" ; + back_N = nMashina "спин" ; + bark_N = mkN "лай" "лая" "лаю" "лай" "лаем" "лае" "лаи" "лаев" "лаям" "лаи" "лаями" "лаях" masculine inanimate; + belly_N = nTelefon "живот" ; + bird_N = bird_N ; + blood_N = nBol "кров" ; + bone_N = nBol "кост" ; + breast_N = nBol "грудь" ; + child_N = child_N ; + cloud_N = nChislo "облак" ; + day_N = mkN "день" "дня" "дню" "день" "днём" "дне" "дни" "дней" "дням" "дни" "днями" "днях" masculine inanimate ; + dog_N = dog_N ; + dust_N = nBol "пыл" ; + ear_N = nChislo "ухо" ; + earth_N = nTetya "земл" ; + egg_N = nChislo "яйц" ; + eye_N = nAdres "глаз" ; + fat_N = nBank "жир" ; + father_N = mkN "отец" "отца" "отцу" "отца" "отцом" "отце" "отцы" "отцов" "отцам" "отцов" "отцами" "отцах" masculine animate ; +-- father_N = UseN2 father_N2 ; + feather_N = mkN "перо" "пера" "перу" "пера" "пером" "пере" "перья" "перьев" "перьям" "перьев" "перьями" "перьях" neuter inanimate ; + fingernail_N = mkN "ноготь" "ногтя" "ногтю" "ногтя" "ногтем" "ногте" "ногти" "ногтей" "ногтям" "ногтей" "ногтями" "ногтях" masculine inanimate ; + fire_N = mkN "огонь" "огня" "огню" "огня" "огнём" "огне" "огни" "огней" "огням" "огней" "огнями" "огнях" masculine inanimate ; + fish_N = fish_N ; + flower_N = mkN "отец" "отца" "отцу" "отца" "отцом" "отце" "отцы" "отцов" "отцам" "отцов" "отцами" "отцах" masculine animate ; + fog_N = nTelefon "туман" ; + foot_N = nTetya "ступн" ; + forest_N = nAdres "лес" ; + fruit_N = fruit_N ; + grass_N = nMashina "трав" ; + guts_N = nBol "внутренност" ; + hair_N = nTelefon "волос" ; + hand_N = nNoga "рук" ; + head_N = nMashina "голов" ; + heart_N = mkN "сердце" "сердца" "сердцу" "сердца" "сердцем" "сердце" "сердца" "сердец" "сердцам" "сердец" "сердцами" "сердцах" neuter inanimate; + horn_N = nAdres "рог" ; + husband_N = mkN "муж" "мужа" "мужу" "мужа" "мужем" "муже" "мужья" "мужей" "мужьям" "мужей" "мужьями" "мужьях" masculine animate ; + ice_N = mkN "лёд" "льда" "льду" "льда" "льдом" "льде" "льды" "льдов" "льдам" "льдов" "льдами" "льдах" masculine inanimate ; + knee_N = mkN "колено" "колена" "колену" "колена" "коленом" "колене" "колени" "колен" "коленам" "колен" "коленями" "коленях" neuter inanimate ; + lake_N = lake_N ; + leaf_N = nStul "лист" ; + leg_N = nNoga "ног" ; + liver_N = nBol "печен" ; + louse_N = mkN "вошь" "вши" "вши" "вошь" "вошью" "вше" "вши" "вшей" "вшам" "вшей" "вшами" "вшах" feminine animate ; + man_N = man_N ; + meat_N = meat_N ; + moon_N = moon_N ; + mother_N = mkN "мать" "матери" "матери" "мать" "матерью" "матери" "матери" "матерей" "матерям" "матерей" "матерями" "матерях" feminine animate ; +--- mother_N = UseN2 mother_N2 ; + mountain_N = mountain_N ; + mouth_N = mkN "рот" "рта" "рту" "рот" "ртом" "рте" "рты" "ртов" "ртам" "рты" "ртами" "ртах" masculine inanimate; + name_N = mkN "имя" "имени" "имени" "имя" "именем" "имени" "имена" "имён" "именам" "имена" "именами" "именах" neuter inanimate; + neck_N = nTetya "ше" ; + night_N = nBol "ноч" ; + nose_N = nTelefon "нос" ; + person_N = nBol "личность" ; + rain_N = nNol "дожд" ; + river_N = river_N ; + road_N = nNoga "дорог" ; + root_N = nUroven "кор" ; + rope_N = nNoga "веревк" ; + salt_N = nBol "сол" ; + sand_N = mkN "песок" "песка" "песку" "песок" "песком" "песке" "пески" "песков" "пескам" "песков" "песками" "песках" masculine inanimate ; + sea_N = sea_N ; + seed_N = mkN "семя" "семени" "семении" "семя" "семенем" "семени" "семена" "семян" "семенам" "семена" "семенами" "семенах" neuter inanimate ; + skin_N = nEdinica "кож" ; + sky_N = mkN "небо" "неба" "небу" "небо" "небом" "небе" "небеса" "небес" "небесам" "небес" "небесами" "небесах" neuter inanimate ; + smoke_N = nTelefon "дым" ; + snake_N = snake_N ; + snow_N = nAdres "снег" ; + star_N = star_N ; + stick_N = nNoga "палк" ; + stone_N = stone_N ; + sun_N = sun_N ; + tail_N = nTelefon "хвост" ; + tongue_N = nBank "язык" ; + tooth_N = nTelefon "зуб" ; + tree_N = tree_N ; + water_N = water_N ; + wife_N = nMashina "жен" ; + wind_N = mkN "ветер" "ветра" "ветру" "ветер" "ветром" "ветра" "ветров" "ветра" "ветрам" "ветров" "ветрами" "ветрах" masculine inanimate ; + wing_N = mkN "крыло" "крыла" "крылу" "крыло" "крылом" "крыле" "крылья" "крыльев" "крыльям" "крылья" "крыльями" "крыльях" neuter inanimate ; + woman_N = woman_N ; + worm_N = nNol "черв" ; + year_N = nAdres "год" ; + + -- Verbs + + bite_V = mkRegVerb imperfective first "куса" "ю" "кусал" "кусай" "кусать"; + blow_V = mkRegVerb imperfective first "ду" "ю" "дул" "дуй" "дуть" ; + breathe_V = mkRegVerb imperfective second "дыш" "у" "дышал" "дыши" "дышать" ; + burn_V = mkRegVerb imperfective second "гор" "ю" "горел" "гори" "гореть" ; + come_V = come_V ; + count_V = mkRegVerb imperfective first "счита" "ю" "считал" "считай" "считать" ; + cut_V = mkRegVerb imperfective first "реж" "у" "резал" "режь" "резать" ; + die_V = die_V ; + dig_V = mkRegVerb imperfective first "копа" "ю" "копал" "копай" "копать" ; + drink_V = mkRegVerb imperfective firstE "пь" "ю" "пил" "пей" "пить" ; + eat_V = mkVerbum imperfective "ем" "ешь" "ест" "едим" "едите" "едят" "ел" "ешь" "есть" ; + fall_V = mkRegVerb imperfective first "пада" "ю" "падал" "падай" "падать" ; + fear_V = mkRegVerb imperfective second "бо" "ю" "боял" "бой" "боять" ; + fight_V = mkRegVerb imperfective firstE "дер" "у" "драл" "дери" "драть" ; + float_V = mkRegVerb imperfective firstE "плыв" "у" "плыл" "плыви" "плыть" ; + flow_V = mkRegVerb imperfective firstE "тек" "у" "тёк" "теки" "течь" ; + fly_V = mkRegVerb imperfective second "лета" "ю" "летал" "летай" "летать" ; + freeze_V = mkRegVerb imperfective first "замерза" "ю" "замерзал" "замерзай" "замерзать" ; + give_V = mkRegVerb imperfective firstE "да" "ю" "давал" "давай" "давать" ; + hear_V = mkRegVerb imperfective first "слыш" "у" "слышал" "слышь" "слышать" ; + hit_V = mkRegVerb imperfective first "ударя" "ю" "ударял" "ударяй" "ударять" ; + hold_V = mkRegVerb imperfective second "держ" "у" "держал" "держи" "держать" ; + hunt_V = mkRegVerb imperfective second "охоч" "у" "охотил" "охоть" "охотить" ; + kill_V = mkRegVerb imperfective first "убива" "ю" "убивал" "убивай" "убивать" ; + know_V = mkRegVerb imperfective first "зна" "ю" "знал" "знай" "знать" ; + laugh_V = mkRegVerb imperfective firstE "сме" "ю" "смеял" "смей" "смеять" ; + lie_V = mkRegVerb imperfective firstE "лг" "у" "лгал" "лги" "лгать" ; + live_V = live_V ; + play_V = mkRegVerb imperfective first "игра" "ю" "играл" "играй" "играть" ; + pull_V = mkRegVerb imperfective first "тян" "у" "тянул" "тяни" "тянуть" ; + push_V = mkRegVerb imperfective first "толка" "ю" "толкал" "толкай" "толкать" ; + rub_V = mkRegVerb imperfective firstE "тр" "у" "тёр" "три" "тереть" ; + say_V = mkRegVerb imperfective second "говор" "ю" "говорил" "говори" "говорить"; + scratch_V = mkRegVerb imperfective first "чеш" "у" "чесал" "чеши" "чесать" ; see_V = mkRegVerb imperfective second "смотр" "ю" "смотрел" "смотри" "смотреть" ; + sew_V = mkRegVerb imperfective firstE "шь" "ю" "шил" "шей" "шить" ; + sing_V = mkRegVerb imperfective firstE "по" "ю" "пел" "пой" "петь" ; + sit_V = mkVerbum imperfective "сижу" "сидишь" "сидит" "сидим" "сидите" "сидят" "сидел" "сиди" "сидеть" ; + sleep_V = sleep_V ; + smell_V = mkRegVerb imperfective first "пахн" "у" "пахнул" "пахни" "пахнуть" ; + spit_V = mkRegVerb imperfective firstE "плю" "ю" "плевал" "плюй" "плевать" ; + split_V = mkRegVerb imperfective first "разбива" "ю" "разбивал" "разбей" "разбивать" ; + squeeze_V = mkRegVerb imperfective first "сжима" "ю" "сжимал" "сжимай" "сжимать" ; + stab_V = mkRegVerb imperfective first "кол" "ю" "колол" "коли" "колоть" ; + stand_V = mkRegVerb imperfective second "сто" "ю" "стоял" "стой" "стоять" ; + suck_V = mkRegVerb imperfective firstE "сос" "у" "сосал" "соси" "сосать" ; + swell_V = mkRegVerb imperfective first "опуха" "ю" "опухал" "опухай" "опухать" ; + swim_V = mkRegVerb imperfective first "плава" "ю" "плавал" "плавай" "плавать" ; + think_V = mkRegVerb imperfective first "дума" "ю" "думал" "думай" "думать" ; + throw_V = mkRegVerb imperfective first "броса" "ю" "бросал" "бросай" "бросать" ; + tie_V = mkRegVerb imperfective first "вяж" "у" "вязал" "вяжи" "вязать" ; + turn_V = mkRegVerb imperfective first "поворачива" "ю" "поворачивал" "поворачивай" "поворачивать" ; + vomit_V = mkRegVerb imperfective firstE "рв" "у" "рвал" "рви" "рвать" ; + walk_V = walk_V ; + wash_V = mkRegVerb imperfective first "мо" "ю" "мыл" "мой" "мыть" ; + wipe_V = mkRegVerb imperfective first "вытира" "ю" "вытирал" "вытирай" "вытирать" ; + +}; diff --git a/examples/bronzeage/SwadeshSpa.gf b/examples/bronzeage/SwadeshSpa.gf new file mode 100644 index 000000000..c7a940835 --- /dev/null +++ b/examples/bronzeage/SwadeshSpa.gf @@ -0,0 +1,253 @@ +--# -path=.:../spanish:../common:../abstract:../../prelude:../romance + +concrete SwadeshSpa of Swadesh = CatSpa + ** open PhonoSpa, MorphoSpa, LangSpa, ParadigmsSpa, BeschSpa, Prelude in { + +-- words contributed by Ana Bove, May 2005 + + lin + + -- Pronouns + + i_NP = i_Pron ; + youSg_NP = youSg_Pron ; + he_NP = he_Pron ; + we_NP = we_Pron ; + youPl_NP = youPl_Pron ; + they_NP = they_Pron ; + whoPl_IP = whoPl_IP ; + whoSg_IP = whoSg_IP ; + whatPl_IP = whatPl_IP ; + whatSg_IP = whatSg_IP ; + + -- Determiners + + this_Det = DetSg (SgQuant this_Quant) NoOrd ; + that_Det = DetSg (SgQuant that_Quant) NoOrd ; + all_Det = { + s = \\g,c => prepCase c ++ genForms ["todos los"] ["todas las"] ! g ; + n = Pl + } ; + many_Det = many_Det ; + some_Det = someSg_Det ; + few_Det = {s = \\g,c => prepCase c ++ genForms "pocos" "pocas" ! g ; n = Pl} ; + other_Det = { + s = \\g,c => prepCase c ++ genForms "otros" "otras" ! g ; + n = Pl + } ; + + -- Adverbs + + here_Adv = here_Adv; + there_Adv = there_Adv; + where_IAdv = where_IAdv; + when_IAdv = when_IAdv; + how_IAdv = how_IAdv; + far_Adv = mkAdv "lejos" ; ----? + + -- not : Adv ; -- ? + + -- Conjunctions + + and_Conj = and_Conj ; + + -- Prepositions + + at_Prep = dative ; + in_Prep = in_Prep ; + with_Prep = with_Prep ; + + -- Numerals + + one_Det = DetSg one_Quant NoOrd ; + two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; + three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; + four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; + five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; + + + -- Adjectives + + bad_A = bad_A ; + big_A = big_A ; + black_A = black_A ; + cold_A = cold_A ; + correct_A = regA "correcto" ; + dirty_A = dirty_A ; + dry_A = regA "seco" ; + dull_A = regA "desafilado" ; + full_A = regA "lleno" ; + good_A = good_A ; + green_A = green_A ; + heavy_A = regA "pesado" ; + long_A = long_A ; + narrow_A = narrow_A ; + near_A = regA "cerca" ; + new_A = new_A ; + old_A = old_A ; + red_A = red_A ; + rotten_A = regA "podrido" ; + round_A = regA "redondo" ; + sharp_A = regA "filoso" ; -- afilado, puntiagudo + short_A = short_A ; + small_A = small_A ; + smooth_A = regA "liso" ; -- suave + straight_A = regA "directo" ; + thick_A = thick_A ; + thin_A = thin_A ; + warm_A = warm_A ; + wet_A = regA "mojado" ; + white_A = white_A ; + wide_A = regA "ancho" ; -- extenso + yellow_A = yellow_A ; + + left_A = regA "izquierda" ; + right_A = regA "derecha" ; + + -- Nouns + + animal_N = regN "animal" ; -- masc (sometimes fem when adj) + ashes_N = regN "ceniza" ; + back_N = regN "espalda" ; + bark_N = regN "corteza" ; + belly_N = regN "panza" ; -- barriga + bird_N = bird_N; + blood_N = femN (regN "sangre") ; + bone_N = regN "hueso" ; + breast_N = regN "seno" ; -- pecho + child_N = child_N ; + cloud_N = femN (regN "nube") ; + day_N = mascN (regN "da") ; + dog_N = dog_N ; + dust_N = regN "polvo" ; + ear_N = regN "oreja" ; + earth_N = regN "tierra" ; + egg_N = regN "huevo" ; + eye_N = regN "ojo" ; + fat_N = regN "grasa" ; + father_N = UseN2 father_N2 ; + feather_N = regN "pluma" ; + fingernail_N = regN "ua" ; + fire_N = regN "fuego" ; + fish_N = fish_N ; + flower_N = femN (regN "flor") ; + fog_N = regN "niebla" ; + foot_N = regN "pie" ; + forest_N = regN "bosque" ; + fruit_N = fruit_N ; + grass_N = regN "pasto" ; -- hierba, csped (masc) + guts_N = regN "tripa" ; -- gut=intestino ---- pl.t. tripas + hair_N = regN "cabello" ; -- pelo + hand_N = femN (regN "mano") ; + head_N = regN "cabeza" ; + heart_N = mkN "corazn" "corazones" masculine ; + horn_N = regN "cuerno" ; + husband_N = regN "marido" ; -- esposo + ice_N = regN "hielo" ; + knee_N = regN "rodilla" ; + lake_N = lake_N ; + leaf_N = regN "hoja" ; + leg_N = regN "pierna" ; + liver_N = regN "hgado" ; + louse_N = regN "piojo" ; + man_N = man_N ; + meat_N = meat_N ; + moon_N = moon_N ; + mother_N = UseN2 mother_N2 ; + mountain_N = mountain_N ; + mouth_N = regN "boca" ; + name_N = regN "nombre" ; + neck_N = regN "cuello" ; + night_N = femN (regN "noche") ; + nose_N = femN (regN "nariz") ; + person_N = regN "persona" ; + rain_N = regN "lluvia" ; + river_N = river_N ; + road_N = femN (regN "calle") ; -- camino + root_N = femN (regN "raz") ; + rope_N = regN "cuerda" ; + salt_N = femN (regN "sal") ; + sand_N = regN "arena" ; + sea_N = sea_N ; + seed_N = regN "semilla" ; + skin_N = femN (regN "piel") ; -- fem + sky_N = regN "cielo" ; + smoke_N = regN "humo" ; + snake_N = snake_N ; + snow_N = femN (regN "nieve") ; -- fem + star_N = star_N ; + stick_N = mkN "bastn" "bastones" masculine ; -- palo + stone_N = stone_N ; + sun_N = sun_N ; + tail_N = regN "cola" ; + tongue_N = regN "lengua" ; + tooth_N = regN "diente" ; + tree_N = tree_N ; + water_N = water_N ; + wife_N = regN "esposa" ; + wind_N = regN "viento" ; + wing_N = regN "ala" ; + woman_N = woman_N ; + worm_N = regN "gusano" ; -- lombriz (fem) + year_N = regN "ao" ; + + -- Verbs + + bite_V = dirV2 (verboV (morder_50b "morder")) ; + blow_V = regV "soplar" ; + breathe_V = dirV2 (regV "respirar") ; + burn_V = regV "quemar" ; + come_V = come_V ; + count_V = dirV2 (verboV (contar_38b "contar")) ; + cut_V = dirV2 (regV "cortar") ; + die_V = die_V ; + dig_V = regV "escarbar" ; + drink_V = dirV2 (regV "tomar") ; + eat_V = dirV2 (regV "comer") ; + fall_V = verboV (caer_20 "caer") ; + fear_V = dirV2 (fear_VS) ; + fight_V = dirV2 (regV "pelear") ; + float_V = regV "flotar" ; + flow_V = verboV (influir_45 "fluir") ; -- circular + fly_V = regV "volar" ; + freeze_V = regV "congelar" ; + give_V = dirdirV3 (verboV (dar_27 "dar")) ; + hear_V = dirV2 (hear_V2) ; + hit_V = dirV2 (regV "golpear") ; + hold_V = dirV2 (verboV (tener_4 "tener")) ; + hunt_V = dirV2 (regV "cazar") ; + kill_V = dirV2 (regV "matar") ; + know_V = dirV2 (know_V2) ; + laugh_V = regV "reir" ; ----V rer_67 + lie_V = reflV (regV "acostar") ; -- "acostarse" + live_V = live_V ; + play_V = regV "jugar" ; + pull_V = dirV2 (regV "tirar") ; + push_V = dirV2 (regV "empujar") ; + rub_V = dirV2 (regV "resfregar") ; + say_V = say_VS ; + scratch_V = dirV2 (regV "rascar") ; + see_V = dirV2 (see_V2) ; + sew_V = regV "coser" ; + sing_V = regV "cantar" ; + sit_V = reflV (regV "sentar") ; + sleep_V = sleep_V ; + smell_V = dirV2 (verboV (oler_52 "oler")) ; + spit_V = regV "escupir" ; + split_V = dirV2 (regV "separar") ; -- dividir,) ; + squeeze_V = dirV2 (regV "exprimir") ; + stab_V = dirV2 (regV "apualar") ; + stand_V = verboV (estar_2 "estar") ; ---- "estar de pie" ; + suck_V = dirV2 (regV "chupar") ; + swell_V = regV "tragar" ; + swim_V = regV "nadar" ; + think_V = regV "pensar" ; + throw_V = dirV2 (regV "tirar") ; + tie_V = dirV2 (regV "atar") ; + turn_V = regV "doblar" ; + vomit_V = regV "vomitar" ; + walk_V = regV "caminar" ; + wash_V = dirV2 (regV "lavar") ; + wipe_V = dirV2 (regV "secar") ; + +} diff --git a/examples/bronzeage/SwadeshSwe.gf b/examples/bronzeage/SwadeshSwe.gf new file mode 100644 index 000000000..d9a6e9523 --- /dev/null +++ b/examples/bronzeage/SwadeshSwe.gf @@ -0,0 +1,249 @@ +--# -path=.:../swedish:../common:../abstract:../scandinavian:../../prelude + +concrete SwadeshSwe of Swadesh = CatSwe + ** open MorphoSwe, LangSwe, ParadigmsSwe, IrregSwe, Prelude in { + + lin + + -- Pronouns + + i_NP = i_Pron ; + youSg_NP = youSg_Pron ; + he_NP = he_Pron ; + we_NP = we_Pron ; + youPl_NP = youPl_Pron ; + they_NP = they_Pron ; + whoPl_IP = whoPl_IP ; + whoSg_IP = whoSg_IP ; + whatPl_IP = whatPl_IP ; + whatSg_IP = whatSg_IP ; + + -- Determiners + + this_Det = DetSg (SgQuant this_Quant) NoOrd ; + that_Det = DetSg (SgQuant that_Quant) NoOrd ; + all_Det = {s = \\_,_ => "alla" ; n = Pl ; det = DDef Indef} ; + many_Det = many_Det ; + some_Det = someSg_Det ; + few_Det = {s = \\_,_ => "f" ; n = Pl ; det = DDef Indef} ; + other_Det = {s = \\_,_ => "andra" ; n = Pl ; det = DDef Indef} ; + + + -- Adverbs + + here_Adv = here_Adv ; + there_Adv = there_Adv ; + where_IAdv = where_IAdv ; + when_IAdv = when_IAdv ; + how_IAdv = how_IAdv ; + far_Adv = mkAdv ["lngt borta"] ; + + -- not : Adv ; -- ? + + -- Conjunctions + + and_Conj = and_Conj ; + + -- Prepositions + + at_Prep = ss "vid" ; + in_Prep = ss "i" ; + with_Prep = ss "med" ; + + -- Numerals + + one_Det = DetSg one_Quant NoOrd ; + two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; + three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; + four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; + five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; + + -- Adjectives + + bad_A = bad_A ; + big_A = big_A ; + black_A = black_A ; + cold_A = cold_A ; + correct_A = regA "riktig" ; + dirty_A = dirty_A ; + dry_A = regA "torr" ; + dull_A = mk2A "sl" "sltt"; + full_A = regA "full" ; + good_A = good_A ; + green_A = green_A ; + heavy_A = irregA "tung" "tyngre" "tyngst" ; + left_A = regA "vnster" ; ---- + long_A = long_A ; + narrow_A = narrow_A ; + near_A = mkA "nra" "nra" "nra" "nra" + "nrmare" "nrmast" "nrmaste" ; + new_A = new_A ; + old_A = old_A ; + red_A = red_A ; + right_A = regA "hger" ; ---- + rotten_A = mk3A "rutten" "ruttet" "ruttna" ; + round_A = regA "rund" ; + sharp_A = regA "vass" ; + short_A = short_A ; + small_A = small_A ; + smooth_A = regA "slt" ; + straight_A = regA "rak" ; + thick_A = thick_A ; + thin_A = thin_A ; + warm_A = warm_A ; + wet_A = regA "vt" ; + white_A = white_A ; + wide_A = mk2A "bred" "brett" ; + yellow_A = yellow_A ; + + + -- Nouns + + animal_N = mk2N "djur" "djur" ; + ashes_N = mk2N "aska" "askor" ; + back_N = mk2N "rygg" "ryggar" ; + bark_N = mk2N "bark" "barkar" ; + belly_N = mk2N "mage" "magar" ; + bird_N = bird_N ; + blood_N = mk2N "blod" "blod" ; + bone_N = mk2N "ben" "ben" ; + breast_N = mk2N "brst" "brst" ; + child_N = child_N ; + cloud_N = mk2N "moln" "moln" ; + day_N = mk2N "dag" "dagar" ; + dog_N = dog_N ; + dust_N = mk2N "damm" "damm" ; + ear_N = mkN "ra" "rat" "ron" "ronen" ; + earth_N = mk2N "jord" "jordar" ; + egg_N = mk2N "gg" "gg" ; + eye_N = mkN "ga" "gat" "gon" "gonen" ; + fat_N = mk2N "fett" "fett" ; + father_N = (mkN "far" "fadern" "fder" "fderna") ; +-- father_N = UseN2 father_N2 ; + feather_N = mk2N "fjder" "fjdrar" ; + fingernail_N = mkN "nagel" "nageln" "naglar" "naglarna"; + fire_N = mk2N "eld" "eldar" ; + fish_N = fish_N ; + flower_N = mk2N "blomma" "blommor" ; + fog_N = mk2N "dimma" "dimmor" ; + foot_N = mk2N "fot" "ftter" ; + forest_N = mk2N "skog" "skogar" ; + fruit_N = fruit_N ; + grass_N = mk2N "grs" "grs" ; + guts_N = mk2N "inlva" "inlvor" ; + hair_N = mk2N "hr" "hr" ; + hand_N = mk2N "hand" "hnder" ; + head_N = mkN "huvud" "huvudet" "huvuden" "huvudena" ; + heart_N = mkN "hjrta" "hjrtat" "hjrtan" "hjrtana" ; + horn_N = mk2N "horn" "horn" ; + husband_N = (mk2N "make" "makar") ; + ice_N = mk2N "is" "isar" ; + knee_N = mkN "kn" "knet" "knn" "knna" ; + lake_N = lake_N ; + leaf_N = mk2N "lv" "lv" ; + leg_N = mk2N "ben" "ben" ; + liver_N = mkN "lever" "levern" "levrar" "levrarna"; + louse_N = mkN "lus" "lusen" "lss" "lssen" ; + man_N = man_N ; + meat_N = meat_N ; + moon_N = moon_N ; + mother_N = mkN "mor" "modern" "mdrar" "mdrarna" ; +-- mother_N = UseN2 mother_N2 ; + mountain_N = mountain_N ; + mouth_N = mk2N "mun" "munnar" ; + name_N = mk2N "namn" "namn" ; + neck_N = mk2N "nacke" "nackar" ; + night_N = mk2N "natt" "ntter" ; + nose_N = mk2N "nsa" "nsor" ; + person_N = mk2N "person" "personer" ; + rain_N = mk2N "regn" "regn" ; + river_N = river_N ; + road_N = mk2N "vg" "vgar" ; + root_N = mk2N "rot" "rtter" ; + rope_N = mk2N "rep" "rep" ; + salt_N = mk2N "salt" "salter" ; + sand_N = mk2N "sand" "sander" ; + sea_N = sea_N ; + seed_N = mkN "fr" "fret" "frn" "frna" ; + skin_N = mk2N "skinn" "skinn" ; + sky_N = mk2N "himmel" "himlar" ; + smoke_N = mk2N "rk" "rkar" ; + snake_N = snake_N ; + snow_N = mkN "sn" "snn" "sner" "snerna" ; + star_N = star_N ; + stick_N = mk2N "pinne" "pinnar" ; + stone_N = stone_N ; + sun_N = sun_N ; + tail_N = mk2N "svans" "svansar" ; + tongue_N = mk2N "tunga" "tungor" ; + tooth_N = mk2N "tand" "tnder" ; + tree_N = tree_N ; + water_N = water_N ; + wife_N = mk2N "fru" "fruar" ; + wind_N = mk2N "vind" "vindar" ; + wing_N = mk2N "vinge" "vingar" ; + woman_N = woman_N ; + worm_N = mk2N "mask" "maskar" ; + year_N = mk2N "r" "r" ; + + -- Verbs + + bite_V = dirV2 (bita_V) ; + blow_V = mk2V "blsa" "blste" ; + breathe_V = dirV2 (depV (regV "anda")) ; + burn_V = brinna_V ; -- FIXME: brnna? + come_V = komma_V ; + count_V = dirV2 (regV "rkna") ; + cut_V = dirV2 (skra_V) ; + die_V = d_V ; + dig_V = mk2V "grva" "grvde" ; + drink_V = dirV2 (dricka_V) ; + eat_V = dirV2 (ta_V) ; + fall_V = falla_V ; + fear_V = dirV2 (regV "frukta") ; + -- FIXME: passive forms are very strange + fight_V = dirV2 (mkV "slss" "slss" "slss" "slogs" "slagits" "slagen") ; + float_V = flyta_V ; + flow_V = rinna_V ; + fly_V = flyga_V ; + freeze_V = frysa_V ; + give_V = dirdirV3 giva_V ; ---- + hear_V = dirV2 (mk2V "hra" "hrde") ; + hit_V = dirV2 (sl_V) ; + hold_V = dirV2 (hlla_V) ; + hunt_V = dirV2 (regV "jaga") ; + kill_V = dirV2 (regV "dda") ; + know_V = dirV2 (veta_V) ; + laugh_V = regV "skratta" ; + lie_V = ligga_V ; + live_V = leva_V ; + play_V = mk2V "leka" "lekte" ; + pull_V = dirV2 (draga_V) ; + push_V = dirV2 (mk2V "trycka" "tryckte") ; + rub_V = dirV2 (gnida_V) ; + say_V = sga_V ; + scratch_V = dirV2 (regV "klia") ; + see_V = dirV2 (se_V) ; + sew_V = sy_V ; + sing_V = sjunga_V ; + sit_V = sitta_V ; + sleep_V = sova_V ; + smell_V = dirV2 (regV "lukta") ; + spit_V = regV "spotta" ; + split_V = dirV2 (klyva_V) ; + squeeze_V = dirV2 (klmma_V) ; + stab_V = dirV2 (sticka_V) ; + stand_V = st_V ; + suck_V = dirV2 (suga_V) ; + swell_V = svlla_V ; + swim_V = regV "simma" ; + think_V = mk2V "tnka" "tnkte" ; + throw_V = dirV2 (regV "kasta") ; + tie_V = dirV2 (knyta_V) ; + turn_V = vnda_V ; + vomit_V = mk2V "spy" "spydde" ; + walk_V = g_V ; + wash_V = dirV2 (regV "tvtta") ; + wipe_V = dirV2 (regV "torka") ; + +} diff --git a/src/GF/Compile/Compile.hs b/src/GF/Compile/Compile.hs index c364e1adf..8655e0ae7 100644 --- a/src/GF/Compile/Compile.hs +++ b/src/GF/Compile/Compile.hs @@ -84,7 +84,7 @@ compileModule opts st0 file | grammar1 <- case suff of "cf" -> putp ("- parsing" +++ suff +++ file) $ getCFGrammar opts file "ebnf" -> putp ("- parsing" +++ suff +++ file) $ getEBNFGrammar opts file - "gfm" -> putp ("- parsing" +++ suff +++ file) $ getSourceGrammar file + "gfm" -> putp ("- parsing" +++ suff +++ file) $ getSourceGrammar opts file _ -> putp ("- parsing old gf" +++ file) $ getOldGrammar opts file let mods = modules grammar1 let env = compileEnvShSt st0 [] @@ -195,7 +195,7 @@ compileOne opts env@((_,srcgr,_),_) file = do -- for compiled resource, parse and organize, then update environment "gfr" -> do - sm0 <- putp ("| reading" +++ file) $ getSourceModule file + sm0 <- putp ("| reading" +++ file) $ getSourceModule opts file sm <- {- putp "creating indirections" $ -} ioeErr $ extendModule mos sm0 ---- experiment with not optimizing gfr ---- sm:_ <- putp " optimizing " $ ioeErr $ evalModule mos sm1 @@ -206,7 +206,8 @@ compileOne opts env@((_,srcgr,_),_) file = do -- for gf source, do full compilation _ -> do - sm0 <- putpOpt ("- parsing" +++ file) ("- compiling" +++ file ++ "... ") $ getSourceModule file + sm0 <- putpOpt ("- parsing" +++ file) ("- compiling" +++ file ++ "... ") $ + getSourceModule opts file (k',sm) <- makeSourceModule opts (fst env) sm0 cm <- putpp " generating code... " $ generateModuleCode opts path sm ft <- getReadTimes file diff --git a/src/GF/Compile/GetGrammar.hs b/src/GF/Compile/GetGrammar.hs index 4eebc2845..019e2f3d2 100644 --- a/src/GF/Compile/GetGrammar.hs +++ b/src/GF/Compile/GetGrammar.hs @@ -44,16 +44,25 @@ import GF.Infra.ReadFiles ---- import Data.Char (toUpper) import Data.List (nub) import Control.Monad (foldM) +import System (system) -getSourceModule :: FilePath -> IOE SourceModule -getSourceModule file = do +getSourceModule :: Options -> FilePath -> IOE SourceModule +getSourceModule opts file0 = do + file <- case getOptVal opts usePreprocessor of + Just p -> do + let tmp = "_gf_preproc.tmp" + cmd = p +++ file0 ++ ">" ++ tmp + ioeIO $ system cmd + -- ioeIO $ putStrLn $ "preproc" +++ cmd + return tmp + _ -> return file0 string <- readFileIOE file let tokens = myLexer string mo1 <- ioeErr $ {- err2err $ -} pModDef tokens ioeErr $ transModDef mo1 -getSourceGrammar :: FilePath -> IOE SourceGrammar -getSourceGrammar file = do +getSourceGrammar :: Options -> FilePath -> IOE SourceGrammar +getSourceGrammar opts file = do string <- readFileIOE file let tokens = myLexer string gr1 <- ioeErr $ {- err2err $ -} pGrammar tokens diff --git a/src/GF/Infra/Option.hs b/src/GF/Infra/Option.hs index 6dc68e257..81ddd44af 100644 --- a/src/GF/Infra/Option.hs +++ b/src/GF/Infra/Option.hs @@ -313,6 +313,7 @@ pathList = aOpt "path" uniCoding = aOpt "coding" probFile = aOpt "probs" noparseFile = aOpt "noparse" +usePreprocessor = aOpt "preproc" -- peb 16/3-05: gfcConversion :: String -> Option diff --git a/src/GF/Shell/HelpFile.hs b/src/GF/Shell/HelpFile.hs index ecb8c5bc4..e61c5cc6a 100644 --- a/src/GF/Shell/HelpFile.hs +++ b/src/GF/Shell/HelpFile.hs @@ -74,6 +74,7 @@ txtHelpFile = "\n -optimize select an optimization to override file-defined flags" ++ "\n -conversion select parsing method (values strict|nondet)" ++ "\n -probs read probabilities from file (format (--# prob) Fun Double)" ++ + "\n -preproc use a preprocessor on each source file" ++ "\n -noparse read nonparsable functions from file (format --# noparse Funs) " ++ "\n examples:" ++ "\n i English.gf -- ordinary import of Concrete" ++ diff --git a/src/GF/Shell/ShellCommands.hs b/src/GF/Shell/ShellCommands.hs index 9918e5225..59500e7fa 100644 --- a/src/GF/Shell/ShellCommands.hs +++ b/src/GF/Shell/ShellCommands.hs @@ -170,7 +170,7 @@ optionsOfCommand co = case co of "cat lang lexer parser number depth rawtrees unlexer optimize path conversion printer" CImport _ -> both "old v s src gfc retain nocf nocheckcirc cflexer noemit o ex prob" - "abs cnc res path optimize conversion cat probs noparse" + "abs cnc res path optimize conversion cat preproc probs noparse" CRemoveLanguage _ -> none CEmptyState -> none CStripState -> none diff --git a/src/HelpFile b/src/HelpFile index 7edc19af7..a44470f0b 100644 --- a/src/HelpFile +++ b/src/HelpFile @@ -45,6 +45,7 @@ i, import: i File -optimize select an optimization to override file-defined flags -conversion select parsing method (values strict|nondet) -probs read probabilities from file (format (--# prob) Fun Double) + -preproc use a preprocessor on each source file -noparse read nonparsable functions from file (format --# noparse Funs) examples: i English.gf -- ordinary import of Concrete