forked from GitHub/gf-core
German numerals and almost all Basic
This commit is contained in:
@@ -7,7 +7,7 @@ flags
|
||||
|
||||
lin
|
||||
airplane_N = regN "Flugzeug" ;
|
||||
already_Adv = ss "schon" ;
|
||||
already_Adv = mkAdv "schon" ;
|
||||
answer_V2S = mkV2S (regV "antworten") datPrep ;
|
||||
apartment_N = regN "Wohnung" ;
|
||||
apple_N = reg2N "Apfel" "Äpfel" masculine ;
|
||||
@@ -127,102 +127,101 @@ lin
|
||||
narrow_A = regA "schmal" ;
|
||||
new_A = regA "neu" ;
|
||||
newspaper_N = regN "Zeitung" ;
|
||||
{-
|
||||
oil_N = regN "Öl" ; ----
|
||||
old_A = mkA "alt" "gammalt" "gamla" "gamla" "äldre" "äldst" "äldsta" ;
|
||||
open_V2 = dirV2 (regV "öppna") ;
|
||||
paint_V2A = mkV2A (regV "måla") [] ;
|
||||
paper_N = mkN "papper" "pappret" "papper" "pappren" ;
|
||||
peace_N = regN "fred" ; ---- ar?
|
||||
pen_N = regN "penna" ;
|
||||
planet_N = reg2N "planet" "planeter" ;
|
||||
plastic_N = reg2N "plast" "plaster" ;
|
||||
play_V2 = dirV2 (regV "spela") ;
|
||||
policeman_N = reg2N "polis" "poliser" ;
|
||||
priest_N = reg2N "präst" "präster" ;
|
||||
probable_AS = mkAS (regA "sannolik") ;
|
||||
queen_N = regN "drottning" ;
|
||||
radio_N = regN "radio" ; ----
|
||||
rain_V0 = mkV0 (regV "regna") ;
|
||||
read_V2 = dirV2 (mk2V "läsa" "läste") ;
|
||||
red_A = mk2A "röd" "rött" ;
|
||||
religion_N = reg2N "religion" "religioner" ;
|
||||
restaurant_N = reg2N "restaurang" "restauranger" ;
|
||||
river_N = mkN "å" "ån" "åar" "åarna" ;
|
||||
rock_N = regN "sten" ;
|
||||
roof_N = regN "tak" ;
|
||||
rubber_N = mkN "gummi" "gummit" "gummin" "gummina" ;
|
||||
run_V = (irregV "springa" "sprang" "sprungit") ;
|
||||
say_VS = mkVS (mkV "säga" "säger" "säg" "sade" "sagt" "sagd") ;
|
||||
school_N = regN "skola";
|
||||
science_N = reg2N "vetenskap" "vetenskaper" ;
|
||||
sea_N = mkN "sjö" "sjön" "sjöar" "sjöarna" ;
|
||||
seek_V2 = dirV2 (mk2V "söka" "sökte") ;
|
||||
see_V2 = dirV2 (mkV "se" "ser" "se" "såg" "sett" "sedd") ;
|
||||
sell_V3 = dirV3 (irregV "sälja" "sålde" "sålt") "till" ;
|
||||
send_V3 = dirV3 (regV "skicka") "till" ;
|
||||
sheep_N = reg2N "får" "får" ;
|
||||
ship_N = regN "skepp" ;
|
||||
shirt_N = regN "skjorta" ;
|
||||
shoe_N = regN "sko" ;
|
||||
shop_N = reg2N "affär" "affären" ;
|
||||
short_A = regA "kort" ;
|
||||
silver_N = mkN "silver" "silvret" "silver" "silvren" ;
|
||||
sister_N = reg2N "syster" "systrar" ;
|
||||
sleep_V = (irregV "sova" "sov" "sovit") ;
|
||||
small_A = mkA "liten" "litet" "lilla" "små" "mindre" "minst" "minsta" ;
|
||||
snake_N = regN "orm" ;
|
||||
sock_N = regN "strumpa" ;
|
||||
speak_V2 = dirV2 (regV "tala") ;
|
||||
star_N = regN "stjärna" ;
|
||||
steel_N = regN "stål" ;
|
||||
stone_N = regN "sten" ;
|
||||
stove_N = regN "spis" ;
|
||||
student_N = reg2N "student" "studenter" ;
|
||||
stupid_A = mk3A "dum" "dumt" "dumma" ;
|
||||
sun_N = regN "sol" ;
|
||||
switch8off_V2 = dirV2 (partV (irregV "stänga" "stängde" "stängt") "av") ;
|
||||
switch8on_V2 = dirV2 (partV (irregV "slå" "slog" "slagit") "på") ;
|
||||
table_N = regN "bord" ;
|
||||
talk_V3 = mkV3 (regV "prata") "till" "om" ;
|
||||
teacher_N = reg2N "lärare" "lärare" ;
|
||||
teach_V2 = dirV2 (regV "undervisa") ;
|
||||
television_N = reg2N "television" "televisioner" ;
|
||||
thick_A = regA "tjock" ;
|
||||
thin_A = mk2A "tunn" "tunt" ;
|
||||
train_N = regN "tåg" ;
|
||||
travel_V = mk2V "resa" "reste" ;
|
||||
tree_N = regN "träd" ;
|
||||
old_A = mkA "alt" "alt" "älter" "ältest" ;
|
||||
open_V2 = dirV2 (regV "öffnen") ;
|
||||
paint_V2A =
|
||||
mkV2A (irregV "streichen" "streicht" "strich" "striche" "gestrichen") accPrep ; ----
|
||||
paper_N = reg2N "Papier" "Papiere" neuter ;
|
||||
peace_N = regN "Frieden" ; ----
|
||||
pen_N = regN "Bleistift" ; ----
|
||||
planet_N = regN "Planete" ; ----
|
||||
plastic_N = reg2N "Plastik" "Plastiken" feminine ; ----
|
||||
play_V2 = dirV2 (regV "spielen") ;
|
||||
policeman_N = reg2N "Polizist" "Polizisten" masculine ;
|
||||
priest_N = regN "Priest" ; ----
|
||||
probable_AS = mkAS (regA "wahrscheinlich") ;
|
||||
queen_N = reg2N "Königin" "königinnen" feminine ;
|
||||
radio_N = reg2N "Radio" "Radios" neuter ; ----
|
||||
rain_V0 = mkV0 (regV "regnen") ;
|
||||
read_V2 = dirV2 (irregV "lesen" "liest" "las" "läse" "gelesen") ;
|
||||
red_A = regA "rot" ;
|
||||
religion_N = regN "Religion" ;
|
||||
restaurant_N = reg2N "Restaurant" "Restaurants" neuter ;
|
||||
river_N = reg2N "Fluß" "Flüße" masculine ;
|
||||
rock_N = regN "Stein" ;
|
||||
---- roof_N = regN "tak" ;
|
||||
---- rubber_N = mkN "gummi" "gummit" "gummin" "gummina" ;
|
||||
run_V = seinV (irregV "laufen" "läuft" "lief" "liefe" "gelaufen") ;
|
||||
say_VS = mkVS (regV "sagen") ;
|
||||
school_N = regN "Schule";
|
||||
science_N = reg2N "Wissenschaft" "Wissenschaften" feminine ;
|
||||
sea_N = reg2N "Meer" "Meere" neuter ;
|
||||
seek_V2 = dirV2 (regV "suchen") ;
|
||||
see_V2 = dirV2 (irregV "sehen" "sieht" "sah" "sähe" "gesehen") ;
|
||||
sell_V3 = accdatV3 (regV "verkaufen") ;
|
||||
send_V3 = accdatV3 (regV "schicken") ;
|
||||
sheep_N = reg2N "Schaf" "Schäfe" feminine ; ----
|
||||
ship_N = regN "Schiff" ; ----
|
||||
shirt_N = reg2N "Hemd" "Hemde" neuter ; ----
|
||||
shoe_N = regN "Schuh" ;
|
||||
shop_N = reg2N "Laden" "Läden" masculine ;
|
||||
short_A = regA "kurz" ;
|
||||
silver_N = reg2N "Silber" "Silber" neuter ; ----
|
||||
sister_N = reg2N "Schwester" "Schwester" feminine ;
|
||||
sleep_V = irregV "schlafen" "schläft" "schlief" "schliefe" "geschlafen" ;
|
||||
small_A = regA "Klein" ;
|
||||
snake_N = regN "Schlange" ;
|
||||
sock_N = reg2N "Strumpf" "Strümpfe" masculine ; ----
|
||||
speak_V2 = dirV2 (irregV "sprechen" "spricht" "sprach" "spräche" "gesprochen") ;
|
||||
star_N = regN "Sterne" ;
|
||||
steel_N = regN "Stahl" ; ----
|
||||
stone_N = regN "Stein" ; ----
|
||||
---- stove_N = regN "spis" ;
|
||||
student_N = reg2N "Student" "Studenten" masculine ;
|
||||
stupid_A = mkA "dumm" "dumm" "dümmer" "dümmst" ; ----
|
||||
sun_N = regN "Sonne" ;
|
||||
switch8off_V2 = dirV2 (prefixV "aus" (regV "schalten")) ;
|
||||
switch8on_V2 = dirV2 (prefixV "ein" (regV "schalten")) ;
|
||||
table_N = regN "Tisch" ;
|
||||
talk_V3 = mkV3 (regV "reden") datPrep von_Prep ;
|
||||
teacher_N = reg2N "Lehrer" "Lehrer" masculine ;
|
||||
teach_V2 = dirV2 (no_geV (regV "unterrichten")) ;
|
||||
television_N = reg2N "Ferhsehen" "Fernsehen" neuter;
|
||||
thick_A = regA "dick" ;
|
||||
thin_A = regA "dünn" ;
|
||||
train_N = reg2N "Zug" "Züge" masculine ;
|
||||
travel_V = regV "reisen" ;
|
||||
tree_N = reg2N "Baum" "Bäume" masculine ; ----
|
||||
---- trousers_N = regN "trousers" ; ---- pl t !
|
||||
ugly_A = regA "ful" ;
|
||||
understand_V2 = dirV2 (mkV "förstå" "förstår" "förstå" "förstod" "förstått" "förstådd") ;
|
||||
university_N = regN "universitet" ;
|
||||
village_N = mkN "by" "byn" "byar" "byarna" ;
|
||||
wait_V2 = mkV2 (regV "vänta") "på" ;
|
||||
walk_V = (mkV "gå" "går" "gå" "gick" "gått" "gången") ;
|
||||
warm_A = regA "varm" ;
|
||||
war_N = regN "krig" ;
|
||||
watch_V2 = mkV2 (regV "titta") "på" ;
|
||||
water_N = mkN "vatten" "vattnet" "vatten" "vattnen" ;
|
||||
white_A = regA "vit" ;
|
||||
window_N = mkN "fönster" "fönstret" "fönster" "fönstren" ;
|
||||
wine_N = mkN "vin" "vinet" "viner" "vinerna" ; ----
|
||||
win_V2 = dirV2 (irregV "vinna" "vann" "vunnit") ;
|
||||
woman_N = regN "kvinna" ;
|
||||
wonder_VQ = mkVQ (regV "undra") ;
|
||||
wood_N = mkN "trä" "träet" "träen" "träena" ; ---- ?
|
||||
write_V2 = dirV2 (irregV "skriva" "skrev" "skrivit") ;
|
||||
yellow_A = regA "gul" ;
|
||||
young_A = irregA "ung" "yngre" "yngst" ;
|
||||
ugly_A = regA "häßlich" ;
|
||||
understand_V2 = dirV2 (irregV "verstehen" "versteht" "verstand" "verstände" "verstanden") ;
|
||||
university_N = reg2N "Universitet" "Universiteten" feminine ;
|
||||
village_N = reg2N "Dorf" "Dörfer" neuter ;
|
||||
wait_V2 = mkV2 (regV "warten") (mkPrep "auf" accusative) ;
|
||||
walk_V = seinV (irregV "gehen" "geht" "ging" "ginge" "gegangen") ;
|
||||
warm_A = mkA "warm" "warm" "wärmer" "wärmst" ;
|
||||
war_N = regN "Krieg" ; ----
|
||||
watch_V2 = mkV2 (regV "schauen") (mkPrep "an" accusative) ;
|
||||
water_N = reg2N "Wasser" "Wasser" neuter ;
|
||||
white_A = regA "weiß" ;
|
||||
window_N = reg2N "Fenster" "Fenster" neuter ; ----
|
||||
wine_N = regN "Wein" ;
|
||||
win_V2 = dirV2 (irregV "gewinnen" "gewinnt" "gewann" "gewänne" "gewonnen") ; ----
|
||||
woman_N = reg2N "Frau" "Frauen" feminine ;
|
||||
wonder_VQ = mkVQ (reflV (regV "wundern") accusative) ; ----
|
||||
wood_N = reg2N "Holz" "Hölzer" neuter ; ----
|
||||
write_V2 = dirV2 (irregV "schreiben" "schreibt" "schrieb" "schriebe" "geschrieben") ;
|
||||
yellow_A = regA "gelb" ;
|
||||
young_A = mkA "jung" "jung" "jünger" "jüngst" ;
|
||||
|
||||
do_V2 = dirV2 (irregV "tun" "tut" "tat" "täte" "getan") ;
|
||||
now_Adv = mkAdv "jetzt" ;
|
||||
song_N = reg2N "Lied" "Lieder" neuter ;
|
||||
-- add_V3 = mkV3 (partV (irregV "lägga" "lade" "lagt") "till") [] "till" ;
|
||||
number_N = reg2N "Zahl" "Zahlen" feminine ;
|
||||
put_V2 = dirV2 (regV "setzen") ;
|
||||
stop_V = seinV (irregV "halten" "hält" "hielt" "hielte" "gehalten") ;
|
||||
-- jump_V = regV "hoppa" ;
|
||||
|
||||
do_V2 = dirV2 (mkV "göra" "gör" "gör" "gjorde" "gjort" "gjord") ;
|
||||
now_Adv = mkAdv "nu" ;
|
||||
already_Adv = mkAdv "redan" ;
|
||||
song_N = reg2N "sång" "sånger" ;
|
||||
add_V3 = mkV3 (partV (irregV "lägga" "lade" "lagt") "till") [] "till" ;
|
||||
number_N = mkN "nummer" "numret" "numren" "numren" ;
|
||||
put_V2 = mkV2 (mkV "sätta" "sätter" "sätt" "satte" "satt" "satt") [] ;
|
||||
stop_V = regV "stanna" ;
|
||||
jump_V = regV "hoppa" ;
|
||||
-}
|
||||
} ;
|
||||
|
||||
@@ -51,7 +51,7 @@ concrete CatGer of Cat = open ResGer, Prelude in {
|
||||
Det = {s : Gender => Case => Str ; n : Number ; a : Adjf} ;
|
||||
QuantSg, QuantPl = {s : Gender => Case => Str ; a : Adjf} ;
|
||||
Predet = {s : Number => Gender => Case => Str} ;
|
||||
Num = {s : Gender => Case => Str} ;
|
||||
Num = {s : Str} ;
|
||||
Ord = {s : AForm => Str} ;
|
||||
|
||||
-- Adverb
|
||||
@@ -60,7 +60,7 @@ concrete CatGer of Cat = open ResGer, Prelude in {
|
||||
|
||||
-- Numeral
|
||||
|
||||
Numeral = {s : CardOrd => Str ; n : Number} ;
|
||||
Numeral = {s : CardOrd => Str} ;
|
||||
|
||||
-- Structural
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ concrete LangGer of Lang =
|
||||
VerbGer,
|
||||
AdjectiveGer,
|
||||
AdverbGer,
|
||||
-- NumeralGer,
|
||||
NumeralGer,
|
||||
SentenceGer,
|
||||
QuestionGer,
|
||||
RelativeGer,
|
||||
|
||||
@@ -61,5 +61,32 @@ oper
|
||||
_ => Predef.tk 2 v
|
||||
} ;
|
||||
|
||||
-- For $Numeral$.
|
||||
|
||||
LinDigit = {s : DForm => CardOrd => Str} ;
|
||||
|
||||
cardOrd : Str -> Str -> CardOrd => Str = \drei,dritte ->
|
||||
table {
|
||||
NCard => drei ;
|
||||
NOrd a => (regA (init dritte)).s ! Posit ! a
|
||||
} ;
|
||||
|
||||
cardReg : Str -> CardOrd => Str = \zehn ->
|
||||
cardOrd zehn (zehn + "te") ;
|
||||
|
||||
mkDigit : (x1,_,_,x4 : Str) -> LinDigit =
|
||||
\drei,dreizehn,dreissig,dritte ->
|
||||
{s = table {
|
||||
DUnit => cardOrd drei dritte ;
|
||||
DTeen => cardReg dreizehn ;
|
||||
DTen => cardOrd dreissig (dreissig + "ste")
|
||||
}
|
||||
} ;
|
||||
|
||||
regDigit : Str -> LinDigit = \vier ->
|
||||
mkDigit vier (vier + "zehn") (vier + "zig") (vier + "te") ;
|
||||
|
||||
invNum : CardOrd = NCard ;
|
||||
|
||||
} ;
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ concrete NounGer of Noun = CatGer ** open ResGer, Prelude in {
|
||||
a = quant.a
|
||||
in {
|
||||
s = \\g,c => quant.s ! g ! c ++
|
||||
num.s ! g ! c ++ ord.s ! agrAdj g (adjfCase a c) n c ;
|
||||
num.s ++ ord.s ! agrAdj g (adjfCase a c) n c ;
|
||||
n = n ;
|
||||
a = a
|
||||
} ;
|
||||
@@ -54,16 +54,16 @@ concrete NounGer of Noun = CatGer ** open ResGer, Prelude in {
|
||||
a = Weak
|
||||
} ;
|
||||
|
||||
NoNum = {s = \\_,_ => []} ;
|
||||
NoNum = {s = []} ;
|
||||
NoOrd = {s = \\_ => []} ;
|
||||
|
||||
NumInt n = {s = \\_,_ => n.s} ;
|
||||
NumInt n = {s = n.s} ;
|
||||
OrdInt n = {s = \\_ => n.s ++ "."} ;
|
||||
|
||||
NumNumeral numeral = {s = \\_,_ => numeral.s ! NCard} ;
|
||||
NumNumeral numeral = {s = numeral.s ! NCard} ;
|
||||
OrdNumeral numeral = {s = \\af => numeral.s ! NOrd af} ;
|
||||
|
||||
AdNum adn num = {s = \\g,c => adn.s ++ num.s ! g ! c} ;
|
||||
AdNum adn num = {s = adn.s ++ num.s} ;
|
||||
|
||||
OrdSuperl a = {s = a.s ! Superl} ;
|
||||
|
||||
|
||||
@@ -1,44 +1,46 @@
|
||||
--concrete NumeralGer of Numeral = CatGer ** open ResGer in {
|
||||
--
|
||||
--lincat
|
||||
-- Digit = {s : DForm => CardOrd => Str} ;
|
||||
-- Sub10 = {s : DForm => CardOrd => Str ; n : Number} ;
|
||||
-- Sub100 = {s : CardOrd => Str ; n : Number} ;
|
||||
-- Sub1000 = {s : CardOrd => Str ; n : Number} ;
|
||||
-- Sub1000000 = {s : CardOrd => Str ; n : Number} ;
|
||||
--
|
||||
--lin num x = x ;
|
||||
--lin n2 = let two = mkNum "two" "twelve" "twenty" "second" in
|
||||
-- {s = \\f,c => case <f,c> of {
|
||||
-- <teen,NOrd> => "twelfth" ;
|
||||
-- _ => two.s ! f ! c
|
||||
-- }
|
||||
-- } ;
|
||||
--
|
||||
--lin n3 = mkNum "three" "thirteen" "thirty" "third" ;
|
||||
--lin n4 = mkNum "four" "fourteen" "forty" "fourth" ;
|
||||
--lin n5 = mkNum "five" "fifteen" "fifty" "fifth" ;
|
||||
--lin n6 = regNum "six" ;
|
||||
--lin n7 = regNum "seven" ;
|
||||
--lin n8 = mkNum "eight" "eighteen" "eighty" "eighth" ;
|
||||
--lin n9 = regNum "nine" ;
|
||||
--
|
||||
--lin pot01 = mkNum "one" "eleven" "ten" "first" ** {n = Sg} ;
|
||||
--lin pot0 d = d ** {n = Pl} ;
|
||||
--lin pot110 = regCardOrd "ten" ** {n = Pl} ;
|
||||
--lin pot111 = regCardOrd "eleven" ** {n = Pl} ;
|
||||
--lin pot1to19 d = {s = d.s ! teen} ** {n = Pl} ;
|
||||
--lin pot0as1 n = {s = n.s ! unit} ** {n = n.n} ;
|
||||
--lin pot1 d = {s = d.s ! ten} ** {n = Pl} ;
|
||||
--lin pot1plus d e = {
|
||||
-- s = \\c => d.s ! ten ! NCard ++ "-" ++ e.s ! unit ! c ; n = Pl} ;
|
||||
--lin pot1as2 n = n ;
|
||||
--lin pot2 d = {s = \\c => d.s ! unit ! NCard ++ mkCard c "hundred"} ** {n = Pl} ;
|
||||
--lin pot2plus d e = {
|
||||
-- s = \\c => d.s ! unit ! NCard ++ "hundred" ++ "and" ++ e.s ! c ; n = Pl} ;
|
||||
--lin pot2as3 n = n ;
|
||||
--lin pot3 n = {
|
||||
-- s = \\c => n.s ! NCard ++ mkCard c "thousand" ; n = Pl} ;
|
||||
--lin pot3plus n m = {
|
||||
-- s = \\c => n.s ! NCard ++ "thousand" ++ m.s ! c ; n = Pl} ;
|
||||
--}
|
||||
concrete NumeralGer of Numeral = CatGer ** open MorphoGer in {
|
||||
|
||||
lincat
|
||||
Digit = {s : DForm => CardOrd => Str} ;
|
||||
Sub10 = {s : DForm => CardOrd => Str} ;
|
||||
Sub100, Sub1000, Sub1000000 =
|
||||
{s : CardOrd => Str} ;
|
||||
|
||||
lin
|
||||
num x = x ;
|
||||
|
||||
n2 = mkDigit "zwei" "zwölf" "zwanzig" "zweite" ;
|
||||
n3 = mkDigit "drei" "dreizehn" "dreissig" "dritte" ;
|
||||
n4 = regDigit "vier" ;
|
||||
n5 = regDigit "fünf" ;
|
||||
n6 = regDigit "sechs" ;
|
||||
n7 = mkDigit "sieben" "siebzehn" "siebzig" "siebte" ;
|
||||
n8 = mkDigit "acht" "achzehn" "achzig" "achte" ;
|
||||
n9 = regDigit "neun" ;
|
||||
|
||||
pot01 = {
|
||||
s = \\f => table {
|
||||
NCard => "ein" ; ----
|
||||
NOrd af => (regA "erst").s ! Posit ! af
|
||||
} ;
|
||||
n = Sg
|
||||
} ;
|
||||
pot0 d = {s = \\f,g => d.s ! f ! g ; n = Pl} ;
|
||||
pot110 = {s = cardReg "zehn"} ;
|
||||
pot111 = {s = cardReg "elf"} ;
|
||||
pot1to19 d = {s = d.s ! DTeen} ;
|
||||
pot0as1 n = {s = n.s ! DUnit} ;
|
||||
pot1 d = {s = d.s ! DTen} ;
|
||||
pot1plus d e = {s = \\g => e.s ! DUnit ! invNum ++ "und" ++ d.s ! DTen ! g} ;
|
||||
pot1as2 n = n ;
|
||||
pot2 d =
|
||||
{s = \\g => d.s ! DUnit ! invNum ++ cardOrd "hundert" "hunderte" ! g} ;
|
||||
pot2plus d e =
|
||||
{s = \\g => d.s ! DUnit ! invNum ++ "hundert" ++ e.s ! g} ;
|
||||
pot2as3 n = n ;
|
||||
pot3 n =
|
||||
{s = \\g => n.s ! invNum ++ cardOrd "tausend" "tausendte" ! g} ; ----
|
||||
pot3plus n m =
|
||||
{s = \\g => n.s ! invNum ++ "tausend" ++ m.s ! g ; n = Pl} ;
|
||||
|
||||
}
|
||||
@@ -122,6 +122,13 @@ oper
|
||||
|
||||
mkA2 : A -> Prep -> A2 ;
|
||||
|
||||
--2 Adverbs
|
||||
|
||||
-- Adverbs are just strings.
|
||||
|
||||
mkAdv : Str -> Adv ;
|
||||
|
||||
|
||||
--2 Prepositions
|
||||
|
||||
-- A preposition is formed from a string and a case.
|
||||
@@ -301,6 +308,8 @@ oper
|
||||
|
||||
mkA2 = \a,p -> a ** {c2 = p ; lock_A2 = <>} ;
|
||||
|
||||
mkAdv s = {s = s ; lock_Adv = <>} ;
|
||||
|
||||
mkPrep s c = {s = s ; c = c ; lock_Prep = <>} ;
|
||||
accPrep = mkPrep [] accusative ;
|
||||
datPrep = mkPrep [] dative ;
|
||||
|
||||
@@ -73,7 +73,7 @@ resource ParamGer = ParamX ** {
|
||||
--2 For $Numeral$
|
||||
|
||||
CardOrd = NCard | NOrd AForm ;
|
||||
DForm = unit | teen | ten ;
|
||||
DForm = DUnit | DTeen | DTen ;
|
||||
|
||||
--2 Transformations between parameter types
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ concrete QuestionGer of Question = CatGer ** open ResGer in {
|
||||
n = idet.n
|
||||
in {
|
||||
s = \\c =>
|
||||
idet.s ! g ! c ++ num.s ! g ! c ++ ord.s ! agrAdj g Weak n c ++
|
||||
idet.s ! g ! c ++ num.s ++ ord.s ! agrAdj g Weak n c ++
|
||||
cn.s ! Weak ! n ! c ;
|
||||
n = n
|
||||
} ;
|
||||
|
||||
@@ -385,30 +385,4 @@ resource ResGer = ParamGer ** open Prelude in {
|
||||
|
||||
infPart : Bool -> Str = \b -> if_then_Str b [] "zu" ;
|
||||
|
||||
-- For $Numeral$.
|
||||
--
|
||||
-- mkNum : Str -> Str -> Str -> Str -> {s : DForm => CardOrd => Str} =
|
||||
-- \two, twelve, twenty, second ->
|
||||
-- {s = table {
|
||||
-- unit => table {NCard => two ; NOrd => second} ;
|
||||
-- teen => \\c => mkCard c twelve ;
|
||||
-- ten => \\c => mkCard c twenty
|
||||
-- }
|
||||
-- } ;
|
||||
--
|
||||
-- regNum : Str -> {s : DForm => CardOrd => Str} =
|
||||
-- \six -> mkNum six (six + "teen") (six + "ty") (regOrd six) ;
|
||||
--
|
||||
-- regCardOrd : Str -> {s : CardOrd => Str} = \ten ->
|
||||
-- {s = table {NCard => ten ; NOrd => regOrd ten}} ;
|
||||
--
|
||||
-- mkCard : CardOrd -> Str -> Str = \c,ten ->
|
||||
-- (regCardOrd ten).s ! c ;
|
||||
--
|
||||
-- regOrd : Str -> Str = \ten ->
|
||||
-- case last ten of {
|
||||
-- "y" => init ten + "ieth" ;
|
||||
-- _ => ten + "th"
|
||||
-- } ;
|
||||
--
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user