1
0
forked from GitHub/gf-rgl
Files
gf-rgl/src/persian/ConstructionPes.gf
2019-02-20 17:33:31 +01:00

89 lines
2.3 KiB
Plaintext

--# -path=.:abstract:prelude:api:common
concrete ConstructionPes of Construction = CatPes ** open
Prelude,
ParadigmsPes,
(P=ParadigmsPes),
SyntaxPes,
(S=SyntaxPes),
SymbolicPes,
StructuralPes,
(E=ExtendPes),
(R=ResPes),
(L=LexiconPes) in {
lincat
Timeunit = N ;
Weekday = N ;
Monthday = NP ;
Month = N ;
Year = NP ;
Language = N ;
lin
weekdayN w = w ;
monthN m = m ;
-- weekdayPN w = mkPN w ;
-- monthPN m = mkPN m ;
timeunitAdv n time =
let n_card : Card = n ;
n_hours_NP : NP = mkNP n_card time ;
in S.mkAdv during_Prep n_hours_NP ; ---- /IL
weekdayPunctualAdv w = lin Adv (S.mkUtt (mkNP w)) ; -- on Sunday
-- TODO
weekdayHabitualAdv, -- on Sundays
weekdayNextAdv, -- next Sunday
weekdayLastAdv = weekdayPunctualAdv ; -- last Sunday
monthAdv january =
let january_NP : NP = mkNP january ;
in S.mkAdv in_Prep january_NP ;
yearAdv y = S.mkAdv in_Prep y ;
intYear = symb ;
intMonthday = symb ;
languageCN l = mkCN l ;
languageNP l = mkNP l ;
InLanguage l = S.mkAdv in_Prep (mkNP l) ;
english_Language = mkLanguage "انگلیسی" ;
finnish_Language = mkLanguage "فنلاند" ;
swedish_Language = mkLanguage "سوئدی" ;
arabicLanguage = mkLanguage "عربی" ;
finnishLanguage = mkLanguage "فنلاندی" ;
frenchLanguage = mkLanguage "فرانسوی" ;
persianLanguage = mkLanguage "فارسی" ;
romanianLanguage = mkLanguage "رومانیایی" ;
polishLanguage = mkLanguage "لهستانی" ;
bulgarianLanguage = mkLanguage "بلغاری" ;
somaliLanguage = mkLanguage "سومالیایی" ;
turkishLanguage = mkLanguage "ترکی" ;
kurdishLanguage = mkLanguage "کردی" ;
-- : Card -> CN -> A -> AP
n_units_AP card cn a =
let ap = mkAP a in ap ** {
s = \\ez =>
ap.s ! ez
++ (mkUtt (mkNP card cn)).s ---- just guessing /IL
} ;
hungry_VP = mkVP (mkA "گرسنه") ;
thirsty_VP = mkVP (mkA "تشنه") ;
have_name_Cl p n = mkCl (mkNP (E.GenNP p) L.name_N) n ;
what_name_QCl p = mkQCl what_IAdv (mkNP (E.GenNP p) L.name_N) ;
how_old_QCl p = mkQCl howMuchAge_IAdv (mkNP (mkNP (E.GenNP p)) (P.mkAdv "سال")) ;
oper
howMuchAge_IAdv = lin IAdv {s = "چند"} ;
what_IAdv = lin IAdv {s = "چه چیزی"} ;
mkLanguage : Str -> N = mkN ;
}