1
0
forked from GitHub/gf-core

took back smart type of Int ; Digits type in resource and some adjustments of Det syntax (not yet for romance and russian)

This commit is contained in:
aarne
2007-12-17 18:12:46 +00:00
parent eb10ccbe7c
commit 2d5f98dc05
31 changed files with 560 additions and 96 deletions

View File

@@ -47,7 +47,7 @@ concrete CatGer of Cat =
NP = {s : Case => Str ; a : Agr} ;
Pron = {s : NPForm => Str ; a : Agr} ;
Det = {s : Gender => Case => Str ; n : Number ; a : Adjf} ;
QuantSg, QuantPl = {s : Gender => Case => Str ; a : Adjf} ;
--- QuantSg, QuantPl = {s : Gender => Case => Str ; a : Adjf} ; DEPREC
Quant = {s : Number => Gender => Case => Str ; a : Adjf} ;
Predet = {s : Number => Gender => Case => Str} ;
Num = {s : Str; n : Number } ;
@@ -55,7 +55,8 @@ concrete CatGer of Cat =
-- Numeral
Numeral = {s : CardOrd => Str; n : Number } ;
Numeral = {s : CardOrd => Str ; n : Number } ;
Digits = {s : CardOrd => Str ; n : Number } ;
-- Structural

View File

@@ -36,7 +36,7 @@ concrete NounGer of Noun = CatGer ** open ResGer, Prelude in {
n = Sg ;
a = quant.a
in {
s = \\g,c => quant.s ! g ! c ++
s = \\g,c => quant.s ! n ! g ! c ++
ord.s ! agrAdj g (adjfCase a c) n c ;
n = n ;
a = a
@@ -46,12 +46,13 @@ concrete NounGer of Noun = CatGer ** open ResGer, Prelude in {
n = num.n ;
a = quant.a
in {
s = \\g,c => quant.s ! g ! c ++
s = \\g,c => quant.s ! n ! g ! c ++
num.s ++ ord.s ! agrAdj g (adjfCase a c) n c ;
n = n ;
a = a
} ;
{- --- DEPREC
SgQuant q = {
s = q.s ! Sg ;
a = q.a
@@ -60,6 +61,7 @@ concrete NounGer of Noun = CatGer ** open ResGer, Prelude in {
s = q.s ! Pl ;
a = q.a
} ;
-}
PossPron p = {
s = \\n,g,c => p.s ! NPPoss (gennum g n) c ;
@@ -76,6 +78,9 @@ concrete NounGer of Noun = CatGer ** open ResGer, Prelude in {
} ;
OrdInt n = {s = \\_ => n.s ++ "."} ;
NumDigits numeral = {s = numeral.s ! NCard; n = numeral.n } ;
OrdDigits numeral = {s = \\af => numeral.s ! NOrd af} ;
NumNumeral numeral = {s = numeral.s ! NCard; n = numeral.n } ;
OrdNumeral numeral = {s = \\af => numeral.s ! NOrd af} ;
@@ -97,8 +102,7 @@ concrete NounGer of Noun = CatGer ** open ResGer, Prelude in {
} ;
MassDet = {
s = \\g,c => [] ;
n = Sg ;
s = \\_,g,c => [] ;
a = Strong
} ;

View File

@@ -45,4 +45,42 @@ lin
pot3plus n m =
{s = \\g => n.s ! invNum ++ "tausend" ++ m.s ! g ; n = Pl} ;
lincat
Dig = TDigit ;
lin
IDig d = d ;
IIDig d i = {
s = \\o => d.s ! o ++ i.s ! o ;
n = Pl
} ;
---- TODO: case endings of ordinals
D_0 = mkDig "0" ;
D_1 = mk3Dig "1" "1e" Sg ;
D_2 = mk2Dig "2" "2e" ;
D_3 = mkDig "3" ;
D_4 = mkDig "4" ;
D_5 = mkDig "5" ;
D_6 = mkDig "6" ;
D_7 = mkDig "7" ;
D_8 = mkDig "8" ;
D_9 = mkDig "9" ;
oper
mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o Pl ;
mkDig : Str -> TDigit = \c -> mk2Dig c (c + "e") ;
mk3Dig : Str -> Str -> Number -> TDigit = \c,o,n -> {
s = table {NCard => c ; NOrd _ => o} ;
n = n
} ;
TDigit = {
n : Number ;
s : CardOrd => Str
} ;
}

View File

@@ -34,7 +34,7 @@ concrete StructuralGer of Structural = CatGer **
everything_NP = nameNounPhrase {s = caselist "alles" "alles" "allem" "alles"} ;
everywhere_Adv = ss "überall" ;
few_Det = detLikeAdj Pl "wenig" ;
first_Ord = {s = (regA "erst").s ! Posit} ;
---- first_Ord = {s = (regA "erst").s ! Posit} ;
for_Prep = mkPrep "für" Acc ;
from_Prep = mkPrep "aus" Dat ;
he_Pron = mkPronPers "er" "ihn" "ihm" "seiner" "sein" Masc Sg P3 ;
@@ -59,11 +59,7 @@ concrete StructuralGer of Structural = CatGer **
"mußte" "mußtest" "mußten" "mußtet"
"müßte" "gemußt" []
VHaben) ;
one_Quant = {
s = \\g,c => "ein" + pronEnding ! GSg g ! c ;
n = Sg ;
a = Strong
} ;
--- one_Quant = DEPREC
only_Predet = {s = \\_,_,_ => "nur"} ;
no_Phr = ss "nein" ;
on_Prep = mkPrep "auf" Dat ;