some Czech APs are post-positioned

This commit is contained in:
Michal Mechura
2020-04-21 23:53:53 +02:00
parent 572447a8b1
commit c1ba6d84c2
3 changed files with 15 additions and 15 deletions

View File

@@ -3,9 +3,9 @@ concrete AdjectiveCze of Adjective = CatCze ** open ResCze, Prelude in {
lin lin
PositA a = adjFormsAdjective a ** {isPost = False} ; PositA a = adjFormsAdjective a ** {isPost = False} ;
AdAP ada ap = ap ** {s = \\g,n,c => ada.s ++ ap.s ! g ! n ! c} ; AdAP ada ap = ap ** {s = \\g,n,c => ada.s ++ ap.s ! g ! n ! c} ;
ComplA2 a np = ComplA2 a np =
let ap = adjFormsAdjective a let ap = adjFormsAdjective a
in in
@@ -14,10 +14,10 @@ concrete AdjectiveCze of Adjective = CatCze ** open ResCze, Prelude in {
isPost = True ; isPost = True ;
} ; } ;
UseA2 a = adjFormsAdjective a ** {isPost = False} ; UseA2 a = adjFormsAdjective a ** {isPost = True} ;
UseComparA a = adjFormsAdjective a ** {isPost = False} ; ---- TODO: this gives positive forms UseComparA a = adjFormsAdjective a ** {isPost = False} ; ---- TODO: this gives positive forms
AdvAP ap adv = ap ** {s = \\g,n,c => ap.s ! g ! n ! c ++ adv.s} ; AdvAP ap adv = ap ** {s = \\g,n,c => ap.s ! g ! n ! c ++ adv.s; isPost = True} ;
} }

View File

@@ -7,7 +7,7 @@ concrete CatCze of Cat =
Text = {s : Str} ; Text = {s : Str} ;
Phr = {s : Str} ; Phr = {s : Str} ;
Utt = {s : Str} ; Utt = {s : Str} ;
S = {s : Str} ; S = {s : Str} ;
Cl = {subj,clit,compl : Str ; verb : VerbForms ; a : Agr} ; Cl = {subj,clit,compl : Str ; verb : VerbForms ; a : Agr} ;
Comp = {s : Agr => Str} ; Comp = {s : Agr => Str} ;
@@ -28,17 +28,17 @@ concrete CatCze of Cat =
A = ResCze.AdjForms ; A = ResCze.AdjForms ;
AP = ResCze.Adjective ** {isPost : Bool} ; -- {s : Gender => Number => Case => Str} AP = ResCze.Adjective ** {isPost : Bool} ; -- {s : Gender => Number => Case => Str}
A2 = ResCze.AdjForms ** {c : ComplementCase} ; A2 = ResCze.AdjForms ** {c : ComplementCase} ;
AdA = {s : Str} ; AdA = {s : Str} ;
N = ResCze.NounForms ; N = ResCze.NounForms ;
CN = ResCze.Noun ; -- {s : Number => Case => Str ; g : Gender} CN = ResCze.Noun ; -- {s : Number => Case => Str ; g : Gender}
NP = {s,clit,prep : Case => Str ; a : Agr ; hasClit : Bool} ; -- clit,prep differ for pronouns NP = {s,clit,prep : Case => Str ; a : Agr ; hasClit : Bool} ; -- clit,prep differ for pronouns
PN = {s : Case => Str ; g : Gender} ; PN = {s : Case => Str ; g : Gender} ;
Det = Determiner ; -- {s : Gender => Case => Str ; size : NumSize} ; -- can contain a numeral, therefore NumSize Det = Determiner ; -- {s : Gender => Case => Str ; size : NumSize} ; -- can contain a numeral, therefore NumSize
Quant = {s : Gender => Number => Case => Str} ; -- same as AP Quant = {s : Gender => Number => Case => Str} ; -- same as AP
Num = Determiner ; Num = Determiner ;
Card = Determiner ; -- {s : Gender => Case => Str ; size : NumSize} ; Card = Determiner ; -- {s : Gender => Case => Str ; size : NumSize} ;
Pron = PronForms ; Pron = PronForms ;
Adv = {s : Str} ; Adv = {s : Str} ;
@@ -46,9 +46,9 @@ concrete CatCze of Cat =
Conj = {s1,s2 : Str} ; ---- may need a number Conj = {s1,s2 : Str} ; ---- may need a number
Pol = {s : Str ; p : Bool} ; Pol = {s : Str ; p : Bool} ;
Temp = {s : Str ; t : CTense} ; Temp = {s : Str ; t : CTense} ;
Tense = {s : Str ; t : CTense} ; Tense = {s : Str ; t : CTense} ;
Ant = {s : Str ; t : CTense} ; Ant = {s : Str ; t : CTense} ;
PConj = {s : Str} ; PConj = {s : Str} ;
Voc = {s : Str} ; Voc = {s : Str} ;

View File

@@ -64,7 +64,7 @@ lin
} ; } ;
AdjCN ap cn = { AdjCN ap cn = {
s = \\n,c => ap.s ! cn.g ! n ! c ++ cn.s ! n ! c ; s = \\n,c => preOrPost (notB ap.isPost) (ap.s ! cn.g ! n ! c) (cn.s ! n ! c) ;
g = cn.g g = cn.g
} ; } ;
@@ -77,21 +77,21 @@ lin
s = \\n,c => cn.s ! n ! c ++ adv.s ; s = \\n,c => cn.s ! n ! c ++ adv.s ;
g = cn.g g = cn.g
} ; } ;
AdvNP np adv = { AdvNP np adv = {
s,clit = \\c => np.s ! c ++ adv.s ; s,clit = \\c => np.s ! c ++ adv.s ;
prep = \\c => np.prep ! c ++ adv.s ; prep = \\c => np.prep ! c ++ adv.s ;
a = np.a ; a = np.a ;
hasClit = False ; hasClit = False ;
} ; } ;
UseN n = nounFormsNoun n ; UseN n = nounFormsNoun n ;
ApposCN cn np = { ApposCN cn np = {
s = \\n,c => cn.s ! n ! c ++ np.s ! c ; ---- TODO check apposition order s = \\n,c => cn.s ! n ! c ++ np.s ! c ; ---- TODO check apposition order
g = cn.g g = cn.g
} ; } ;
NumCard c = c ; NumCard c = c ;
NumDigits ds = ds ** {s = \\_,_ => ds.s} ; NumDigits ds = ds ** {s = \\_,_ => ds.s} ;
NumNumeral nu = nu ; NumNumeral nu = nu ;