forked from GitHub/gf-rgl
The Czech resource was too incomplete to compile a Syntax/Grammar client:
Sentence, Idiom and Question defined almost nothing, and many Structural
words were absent, so MissingCze's notYet stubs were reached at PMCFG
generation time.
Added:
CatCze lincat VV
SentenceCze AdvS, ExtAdvS, SSubjS, EmbedS, EmbedQS, ImpVP
IdiomCze ImpP3, ExistNP, ImpersCl, GenericCl
VerbCze CompCN, ComplVS, ComplVV, PassV2
NounCze SentCN, PredetNP
AdverbCze SubjS
QuestionCze QuestIAdv
PhraseCze UttImpSg, UttImpPl, UttImpPol
StructuralCze all_Predet, both7and_DConj, between_Prep, by8means_Prep,
can_VV, either7or_DConj, every_Det, if_Subj, no_Quant,
on_Prep, someSg_Det, that_Subj, under_Prep, where_IAdv
ExtendCze ExistsNP no longer excluded
Three of these approximate, because VerbForms lacks the required forms:
ImpVP uses the 1st person plural present ("předpokládáme, že ...") as there
is no imperative; PassV2 uses the reflexive passive ("číslo se dělí") as
passpart is commented out in ResCze; ImpP3 uses "nechť", which suits
mathematical text more than the "let John walk" of the RGL example.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
111 lines
2.5 KiB
Plaintext
111 lines
2.5 KiB
Plaintext
concrete NounCze of Noun =
|
|
CatCze
|
|
**
|
|
|
|
open ResCze, Prelude in {
|
|
|
|
lin
|
|
DetCN det cn = {
|
|
s,prep,clit = \\c => det.s ! cn.g ! c ++ numSizeForm cn.s det.size c ;
|
|
a = numSizeAgr cn.g det.size P3 ;
|
|
hasClit = False ;
|
|
} ;
|
|
|
|
MassNP cn = {
|
|
s,prep,clit = \\c => cn.s ! Sg ! c ;
|
|
a = Ag cn.g Sg P3 ;
|
|
hasClit = False ;
|
|
} ;
|
|
|
|
DetQuant quant num = {
|
|
s = \\g,c => num.s ! g ! c ++ quant.s ! g ! numSizeNumber num.size ! c ;
|
|
size = num.size
|
|
} ;
|
|
|
|
DefArt = {s = \\_,_,_ => []} ;
|
|
IndefArt = {s = \\_,_,_ => []} ;
|
|
NumPl = {s = \\_,_ => [] ; size = Num2_4} ; ---- size
|
|
NumSg = {s = \\_,_ => [] ; size = Num1} ;
|
|
|
|
UsePron pron = {
|
|
s = table {
|
|
Nom | Voc => pron.nom ;
|
|
Gen => pron.gen ;
|
|
Dat => pron.dat ;
|
|
Acc => pron.acc ;
|
|
Loc => pron.loc ;
|
|
Ins => pron.ins
|
|
} ;
|
|
clit = table {
|
|
Nom => pron.cnom ;
|
|
Voc => pron.nom ;
|
|
Gen => pron.cgen ;
|
|
Dat => pron.cdat ;
|
|
Acc => pron.cacc ;
|
|
Loc => pron.loc ;
|
|
Ins => pron.ins
|
|
} ;
|
|
prep = table {
|
|
Nom | Voc => pron.nom ;
|
|
Gen => pron.pgen ;
|
|
Dat => pron.pdat ;
|
|
Acc => pron.pacc ;
|
|
Loc => pron.loc ;
|
|
Ins => pron.pins
|
|
} ;
|
|
a = pron.a ;
|
|
hasClit = True ;
|
|
} ;
|
|
|
|
PossPron pron = justDemPronFormsAdjective pron.poss ;
|
|
|
|
UsePN pn = {
|
|
s,clit,prep = \\c => pn.s ! c ;
|
|
a = Ag pn.g Sg P3 ;
|
|
hasClit = False ;
|
|
} ;
|
|
|
|
AdjCN ap cn = {
|
|
s = \\n,c => preOrPost (notB ap.isPost) (ap.s ! cn.g ! n ! c) (cn.s ! n ! c) ;
|
|
g = cn.g
|
|
} ;
|
|
|
|
RelCN cn rs = {
|
|
s = \\n,c => cn.s ! n ! c ++ rs.s ! Ag cn.g n P3 ;
|
|
g = cn.g
|
|
} ;
|
|
|
|
AdvCN cn adv = {
|
|
s = \\n,c => cn.s ! n ! c ++ adv.s ;
|
|
g = cn.g
|
|
} ;
|
|
|
|
AdvNP np adv = {
|
|
s,clit = \\c => np.s ! c ++ adv.s ;
|
|
prep = \\c => np.prep ! c ++ adv.s ;
|
|
a = np.a ;
|
|
hasClit = False ;
|
|
} ;
|
|
|
|
UseN n = nounFormsNoun n ;
|
|
|
|
ApposCN cn np = {
|
|
s = \\n,c => cn.s ! n ! c ++ np.s ! c ; ---- TODO check apposition order
|
|
g = cn.g
|
|
} ;
|
|
|
|
NumCard c = c ;
|
|
NumDigits ds = ds ** {s = \\_,_ => ds.s} ;
|
|
NumDecimal ds = ds ** {s = \\_,_ => ds.s} ;
|
|
NumNumeral nu = nu ;
|
|
|
|
SentCN cn sc = cn ** {s = \\n,c => cn.s ! n ! c ++ sc.s} ;
|
|
|
|
PredetNP pred np = np ** {
|
|
s = \\c => pred.s ++ np.s ! c ;
|
|
clit = \\c => pred.s ++ np.clit ! c ;
|
|
prep = \\c => pred.s ++ np.prep ! c
|
|
} ;
|
|
|
|
}
|