mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-10-02 15:13:39 -06:00
59 lines
1.7 KiB
Plaintext
59 lines
1.7 KiB
Plaintext
--# -path=.:../abstract:../common:../prelude
|
|
|
|
concrete SymbolCze of Symbol = CatCze ** open Prelude, ResCze in {
|
|
|
|
lincat
|
|
Symb, [Symb] = SS ;
|
|
|
|
lin
|
|
MkSymb s = s ;
|
|
|
|
BaseSymb = infixSS "a" ;
|
|
ConsSymb = infixSS bindComma ;
|
|
|
|
SymbPN s = symbolPN s.s ;
|
|
IntPN i = symbolPN i.s ;
|
|
FloatPN f = symbolPN f.s ;
|
|
|
|
-- unlike a bare symbol, a cardinal used as a name still declines
|
|
NumPN card = lin PN {s = \\c => card.s ! Neutr ! c ; g = Neutr} ;
|
|
|
|
-- the numeral is an invariable label: "úroveň pět", "na úrovni pět"
|
|
CNNumNP cn card =
|
|
let s : Case => Str = \\c => cn.s ! Sg ! c ++ card.s ! cn.g ! Nom in npForms s s ** {
|
|
clit = s ;
|
|
a = Ag cn.g Sg P3 ; m = Mod cn.g Sg ;
|
|
hasClit = False ; isDrop = False ; isPron = False ;
|
|
} ;
|
|
|
|
CNIntNP cn i =
|
|
let s : Case => Str = \\c => cn.s ! Sg ! c ++ i.s in npForms s s ** {
|
|
clit = s ;
|
|
a = Ag cn.g Sg P3 ; m = Mod cn.g Sg ;
|
|
hasClit = False ; isDrop = False ; isPron = False ;
|
|
} ;
|
|
|
|
-- as DetCN in NounCze, with the symbols in apposition
|
|
CNSymbNP det cn xs =
|
|
let s : Case => Str = \\c => det.s ! nounGender cn (numSizeNumber det.size) ! c ++ numSizeForm cn.s det.size c ++ xs.s ;
|
|
agr = numeralAgr (nounGender cn (numSizeNumber det.size)) det P3
|
|
in npForms s s ** {
|
|
clit = s ;
|
|
a = agr ;
|
|
m = numeralModAgr (nounGender cn (numSizeNumber det.size)) det ;
|
|
hasClit = False ; isDrop = False ; isPron = False ;
|
|
} ;
|
|
|
|
SymbS sy = sentence False sy.s [] [] ;
|
|
|
|
SymbNum sy = invarNumeral sy.s ; -- "n čísel", like numerals from 5 up
|
|
SymbOrd sy = {s = \\g,n,c =>
|
|
glue sy.s ((adjFormsAdjective (mladyAdjForms "-tý")).s ! g ! n ! c)
|
|
} ;
|
|
|
|
oper
|
|
symbolPN : Str -> PN
|
|
= \s -> lin PN {s = \\_ => s ; g = Neutr} ;
|
|
|
|
}
|