mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-10-25 09:13:18 -06:00
extensions from Codex
This commit is contained in:
1 parent
ef9dd1ca40
commit
4e259e4150
15 files changed
+238
-30
No files matched your search
@@ -20,6 +20,8 @@ concrete AdjectiveTha of Adjective = CatTha ** open ResTha, Prelude in {
|
|||||||
|
|
||||||
AdAP ada ap = thbind ap ada ;
|
AdAP ada ap = thbind ap ada ;
|
||||||
|
|
||||||
|
AdvAP ap adv = thbind ap adv ;
|
||||||
|
|
||||||
UseA2 a = a ;
|
UseA2 a = a ;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -4,6 +4,8 @@ concrete AdverbTha of Adverb = CatTha **
|
|||||||
lin
|
lin
|
||||||
PositAdvAdj a = a ;
|
PositAdvAdj a = a ;
|
||||||
|
|
||||||
|
PositAdAAdj a = a ;
|
||||||
|
|
||||||
PrepNP prep np = thbind prep np ;
|
PrepNP prep np = thbind prep np ;
|
||||||
|
|
||||||
ComparAdvAdj cadv a np = ss (thbind a.s cadv.s cadv.p np.s) ;
|
ComparAdvAdj cadv a np = ss (thbind a.s cadv.s cadv.p np.s) ;
|
||||||
|
|||||||
@@ -47,6 +47,8 @@ concrete CatTha of Cat = CommonX ** open ResTha, Prelude in {
|
|||||||
Predet = {s1,s2 : Str} ;
|
Predet = {s1,s2 : Str} ;
|
||||||
Ord = {s : Str} ;
|
Ord = {s : Str} ;
|
||||||
Num = {s : Str ; hasC : Bool} ;
|
Num = {s : Str ; hasC : Bool} ;
|
||||||
|
ACard = {s : Str} ;
|
||||||
|
DAP = Determiner ** {adj : Str} ;
|
||||||
|
|
||||||
-- Numeral
|
-- Numeral
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,10 @@ concrete ConjunctionTha of Conjunction = CatTha ** open Prelude, Coordination in
|
|||||||
ConjAdv = conjunctDistrSS ;
|
ConjAdv = conjunctDistrSS ;
|
||||||
ConjNP = conjunctDistrSS ;
|
ConjNP = conjunctDistrSS ;
|
||||||
ConjAP = conjunctDistrSS ;
|
ConjAP = conjunctDistrSS ;
|
||||||
|
ConjCN conj xs = {
|
||||||
|
s = conj.s1 ++ xs.s1 ++ conj.s2 ++ xs.s2 ;
|
||||||
|
c = xs.c
|
||||||
|
} ;
|
||||||
ConjRS = conjunctDistrSS ;
|
ConjRS = conjunctDistrSS ;
|
||||||
|
|
||||||
-- These fun's are generated from the list cat's.
|
-- These fun's are generated from the list cat's.
|
||||||
@@ -18,6 +22,8 @@ concrete ConjunctionTha of Conjunction = CatTha ** open Prelude, Coordination in
|
|||||||
ConsNP = consrSS thcomma ;
|
ConsNP = consrSS thcomma ;
|
||||||
BaseAP = twoSS ;
|
BaseAP = twoSS ;
|
||||||
ConsAP = consrSS thcomma ;
|
ConsAP = consrSS thcomma ;
|
||||||
|
BaseCN x y = twoSS x y ** {c = y.c} ;
|
||||||
|
ConsCN x xs = consrSS thcomma x xs ** {c = xs.c} ;
|
||||||
BaseRS = twoSS ;
|
BaseRS = twoSS ;
|
||||||
ConsRS = consrSS thcomma ;
|
ConsRS = consrSS thcomma ;
|
||||||
|
|
||||||
@@ -26,6 +32,7 @@ concrete ConjunctionTha of Conjunction = CatTha ** open Prelude, Coordination in
|
|||||||
[Adv] = {s1,s2 : Str} ;
|
[Adv] = {s1,s2 : Str} ;
|
||||||
[NP] = {s1,s2 : Str} ;
|
[NP] = {s1,s2 : Str} ;
|
||||||
[AP] = {s1,s2 : Str} ;
|
[AP] = {s1,s2 : Str} ;
|
||||||
|
[CN] = {s1,s2,c : Str} ;
|
||||||
[RS] = {s1,s2 : Str} ;
|
[RS] = {s1,s2 : Str} ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
|
|||||||
+41
-14
@@ -23,6 +23,22 @@ lin
|
|||||||
how_far_QCl x = mkQCl (lin IComp (ss ("ไกล" + "เท่า" + "ไร"))) (lin NP x) ;
|
how_far_QCl x = mkQCl (lin IComp (ss ("ไกล" + "เท่า" + "ไร"))) (lin NP x) ;
|
||||||
|
|
||||||
-- some more things
|
-- some more things
|
||||||
|
n_units_AP card unit a = lin AP {
|
||||||
|
s = R.thbind a.s card.s unit.s
|
||||||
|
} ;
|
||||||
|
|
||||||
|
n_units_of_NP card unit np = lin NP {
|
||||||
|
s = R.thbind card.s unit.s "ของ" np.s
|
||||||
|
} ;
|
||||||
|
|
||||||
|
n_unit_CN card unit cn = lin CN {
|
||||||
|
s = R.thbind cn.s card.s unit.s ; c = cn.c
|
||||||
|
} ;
|
||||||
|
|
||||||
|
bottle_of_CN np = lin CN {s = R.thbind "ขวด" "ของ" np.s ; c = "ขวด"} ;
|
||||||
|
cup_of_CN np = lin CN {s = R.thbind "ถ้วย" "ของ" np.s ; c = "ถ้วย"} ;
|
||||||
|
glass_of_CN np = lin CN {s = R.thbind "แก้ว" "ของ" np.s ; c = "แก้ว"} ;
|
||||||
|
|
||||||
---- weather_adjCl ap = mkCl (mkVP (lin AP ap)) ;
|
---- weather_adjCl ap = mkCl (mkVP (lin AP ap)) ;
|
||||||
|
|
||||||
---- is_right_VP = mkVP (ParadigmsTha.mkA "对") ;
|
---- is_right_VP = mkVP (ParadigmsTha.mkA "对") ;
|
||||||
@@ -38,6 +54,19 @@ lincat
|
|||||||
lin
|
lin
|
||||||
weekdayPunctualAdv w = SyntaxTha.mkAdv (mkPrep []) (mkNP w) ;
|
weekdayPunctualAdv w = SyntaxTha.mkAdv (mkPrep []) (mkNP w) ;
|
||||||
weekdayHabitualAdv w = SyntaxTha.mkAdv (mkPrep []) (mkNP a_Quant plNum (mkCN w)) ;
|
weekdayHabitualAdv w = SyntaxTha.mkAdv (mkPrep []) (mkNP a_Quant plNum (mkCN w)) ;
|
||||||
|
-- Weekday names already include วัน; the temporal modifier follows them.
|
||||||
|
weekdayNextAdv w = lin Adv {s = R.thbind w.s "ถัดไป"} ;
|
||||||
|
weekdayLastAdv w = lin Adv {s = R.thbind w.s "ที่แล้ว"} ;
|
||||||
|
monthAdv m = lin Adv {s = R.thbind "เดือน" m.s} ;
|
||||||
|
yearAdv y = lin Adv {s = R.thbind "ปี" y.s} ;
|
||||||
|
dayMonthAdv d m = lin Adv {s = R.thbind "วันที่" d.s "เดือน" m.s} ;
|
||||||
|
monthYearAdv m y = lin Adv {s = R.thbind "เดือน" m.s "ปี" y.s} ;
|
||||||
|
dayMonthYearAdv d m y = lin Adv {
|
||||||
|
s = R.thbind "วันที่" d.s "เดือน" m.s "ปี" y.s
|
||||||
|
} ;
|
||||||
|
|
||||||
|
intYear i = lin NP {s = i.s} ;
|
||||||
|
intMonthday i = lin NP {s = i.s} ;
|
||||||
---- weekdayNextAdv w = lin Adv {s = "下" ++ w.s ; advType = timeAdvType} ;
|
---- weekdayNextAdv w = lin Adv {s = "下" ++ w.s ; advType = timeAdvType} ;
|
||||||
---- weekdayLastAdv w = lin Adv {s = "上" ++ w.s ; advType = timeAdvType} ;
|
---- weekdayLastAdv w = lin Adv {s = "上" ++ w.s ; advType = timeAdvType} ;
|
||||||
{-
|
{-
|
||||||
@@ -76,20 +105,18 @@ lin
|
|||||||
sunday_Weekday = mkN (R.thword "วัน" "อา" "ทิตย์") ;
|
sunday_Weekday = mkN (R.thword "วัน" "อา" "ทิตย์") ;
|
||||||
|
|
||||||
|
|
||||||
{-
|
lin january_Month = mkN "มกราคม" ;
|
||||||
lin january_Month = mkN "一月" ;
|
february_Month = mkN "กุมภาพันธ์" ;
|
||||||
lin february_Month = mkN "二月" ;
|
march_Month = mkN "มีนาคม" ;
|
||||||
lin march_Month = mkN "三月" ;
|
april_Month = mkN "เมษายน" ;
|
||||||
lin april_Month = mkN "四月" ;
|
may_Month = mkN "พฤษภาคม" ;
|
||||||
lin may_Month = mkN "五月" ;
|
june_Month = mkN "มิถุนายน" ;
|
||||||
lin june_Month = mkN "六月" ;
|
july_Month = mkN "กรกฎาคม" ;
|
||||||
lin july_Month = mkN "七月" ;
|
august_Month = mkN "สิงหาคม" ;
|
||||||
lin august_Month = mkN "八月t" ;
|
september_Month = mkN "กันยายน" ;
|
||||||
lin september_Month = mkN "九月" ;
|
october_Month = mkN "ตุลาคม" ;
|
||||||
lin october_Month = mkN "十月" ;
|
november_Month = mkN "พฤศจิกายน" ;
|
||||||
lin november_Month = mkN "十一月" ;
|
december_Month = mkN "ธันวาคม" ;
|
||||||
lin december_Month = mkN "十二月" ;
|
|
||||||
-}
|
|
||||||
|
|
||||||
|
|
||||||
----lin afrikaans_Language = mkLanguage "南非語" ;
|
----lin afrikaans_Language = mkLanguage "南非語" ;
|
||||||
|
|||||||
@@ -0,0 +1,102 @@
|
|||||||
|
--# -path=.:../abstract:../common
|
||||||
|
|
||||||
|
concrete ExtendTha of Extend = CatTha ** open
|
||||||
|
Prelude, ResTha, StringsTha, Coordination, (G = GrammarTha)
|
||||||
|
in {
|
||||||
|
|
||||||
|
lincat
|
||||||
|
VPS, VPI = SS ;
|
||||||
|
[VPS], [VPI] = {s1, s2 : Str} ;
|
||||||
|
VPS2, VPI2 = SS ** {c2 : Str} ;
|
||||||
|
[VPS2], [VPI2] = {s1, s2, c2 : Str} ;
|
||||||
|
RNP = NP ;
|
||||||
|
RNPList = {s1, s2 : Str} ;
|
||||||
|
[Comp] = {s1, s2 : Str} ;
|
||||||
|
[Imp] = {s1, s2 : Polarity => Str} ;
|
||||||
|
X = SS ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
GenModNP num np cn =
|
||||||
|
G.DetCN (G.DetQuant G.DefArt num)
|
||||||
|
(cn ** {s = thbind cn.s khoog_s np.s}) ;
|
||||||
|
CompBareCN = G.CompCN ;
|
||||||
|
StrandQuestSlash = G.QuestSlash ;
|
||||||
|
StrandRelSlash = G.RelSlash ;
|
||||||
|
EmptyRelSlash slash = {s = \\p => thbind (slash.s ! p) slash.c2} ;
|
||||||
|
|
||||||
|
MkVPS t p vp = ss (thbind t.s p.s (vp.s ! p.p) vp.e) ;
|
||||||
|
BaseVPS = twoSS ;
|
||||||
|
ConsVPS = consrSS [] ;
|
||||||
|
ConjVPS = conjunctDistrSS ;
|
||||||
|
PredVPS np vps = ss (thbind np.s vps.s) ;
|
||||||
|
|
||||||
|
MkVPI vp = ss (infVP vp) ;
|
||||||
|
BaseVPI = twoSS ;
|
||||||
|
ConsVPI = consrSS [] ;
|
||||||
|
ConjVPI = conjunctDistrSS ;
|
||||||
|
ComplVPIVV vv vpi = G.ComplVV vv (lin VP {s = \\_ => vpi.s ; e = []}) ;
|
||||||
|
|
||||||
|
BaseComp x y = {s1 = x.s ! Pos ; s2 = y.s ! Pos} ;
|
||||||
|
ConsComp x xs = {s1 = thbind (x.s ! Pos) xs.s1 ; s2 = xs.s2} ;
|
||||||
|
ConjComp c xs = {s = \\p => thbind c.s1 xs.s1 c.s2 xs.s2} ;
|
||||||
|
|
||||||
|
BaseImp x y = {s1 = x.s ; s2 = y.s} ;
|
||||||
|
ConsImp x xs = {s1 = \\p => thbind (x.s ! p) (xs.s1 ! p) ; s2 = xs.s2} ;
|
||||||
|
ConjImp c xs = {s = \\p => thbind c.s1 (xs.s1 ! p) c.s2 (xs.s2 ! p)} ;
|
||||||
|
|
||||||
|
PassVPSlash vps = {
|
||||||
|
s = \\p => thbind (polStr may_s p) thuuk_s (vps.s ! Pos) ;
|
||||||
|
e = vps.e
|
||||||
|
} ;
|
||||||
|
PassAgentVPSlash vps np = insertExtra (thbind "โดย" np.s) (PassVPSlash vps) ;
|
||||||
|
PresPartAP vp = mkAdj (thbind thii_s (infVP vp)) ;
|
||||||
|
PastPartAP vps = mkAdj (thbind thii_s thuuk_s (infVP vps)) ;
|
||||||
|
PastPartAgentAP vps np =
|
||||||
|
mkAdj (thbind thii_s thuuk_s (infVP vps) "โดย" np.s) ;
|
||||||
|
ProgrVPSlash vps = vps ** {
|
||||||
|
s = \\p => thbind (thword kam_s lag2_s) (vps.s ! p)
|
||||||
|
} ;
|
||||||
|
|
||||||
|
ReflPron = mkNP reflPron ;
|
||||||
|
ReflPoss num cn = mkNP (thbind cn.s khoog_s reflPron) ;
|
||||||
|
PredetRNP pred rnp = mkNP (thbind pred.s1 rnp.s pred.s2) ;
|
||||||
|
ReflRNP slash rnp = insertObj rnp slash ;
|
||||||
|
AdvRNP np prep rnp = mkNP (thbind np.s prep.s rnp.s) ;
|
||||||
|
AdvRVP vp prep rnp = insertObj (ss (thbind prep.s rnp.s)) vp ;
|
||||||
|
AdvRAP ap prep rnp = mkAdj (thbind ap.s prep.s rnp.s) ;
|
||||||
|
ReflA2RNP a rnp = mkAdj (thbind a.s a.c2 rnp.s) ;
|
||||||
|
PossPronRNP pron num cn rnp =
|
||||||
|
-- Keep both possessive relations distinct. In particular, do not
|
||||||
|
-- coordinate the possessed noun with its complement ("his
|
||||||
|
-- abandonment and his wife ...").
|
||||||
|
mkNP (thbind cn.s khoog_s pron.s "ที่มีต่อ" rnp.s) ;
|
||||||
|
|
||||||
|
Base_rr_RNP x y = twoSS x y ;
|
||||||
|
Base_nr_RNP x y = twoSS x y ;
|
||||||
|
Base_rn_RNP x y = twoSS x y ;
|
||||||
|
Cons_rr_RNP x xs = consrSS [] x xs ;
|
||||||
|
Cons_nr_RNP x xs = consrSS [] x xs ;
|
||||||
|
ConjRNP c xs = mkNP (thbind c.s1 xs.s1 c.s2 xs.s2) ;
|
||||||
|
|
||||||
|
CompoundN modifier head = {s = thbind head.s modifier.s ; c = head.c} ;
|
||||||
|
CompoundAP n a = mkAdj (thbind a.s n.s) ;
|
||||||
|
GerundCN vp = {s = thbind "การ" (infVP vp) ; c = []} ;
|
||||||
|
GerundNP vp = mkNP (thbind "การ" (infVP vp)) ;
|
||||||
|
GerundAdv vp = ss (thbind "โดย" (infVP vp)) ;
|
||||||
|
WithoutVP vp = ss (thbind "โดยไม่" (infVP vp)) ;
|
||||||
|
ByVP vp = ss (thbind "โดย" (infVP vp)) ;
|
||||||
|
InOrderToVP vp = ss (thbind "เพื่อ" (infVP vp)) ;
|
||||||
|
ApposNP np1 np2 = mkNP (thbind np1.s np2.s) ;
|
||||||
|
PositAdVAdj a = ss a.s ;
|
||||||
|
|
||||||
|
UseDAP dap = mkNP (thbind dap.adj dap.s1 dap.s2) ;
|
||||||
|
UseDAPMasc = UseDAP ;
|
||||||
|
UseDAPFem = UseDAP ;
|
||||||
|
|
||||||
|
ComplBareVS vs s = insertObj (mkNP s.s) (predV vs) ;
|
||||||
|
ComplSlashPartLast = G.ComplSlash ;
|
||||||
|
UttVPShort vp = ss (infVP vp) ;
|
||||||
|
TPastSimple = G.TPast ;
|
||||||
|
|
||||||
|
UttAdV adv = adv ;
|
||||||
|
}
|
||||||
@@ -19,10 +19,17 @@ concrete IdiomTha of Idiom = CatTha ** open Prelude, ResTha in {
|
|||||||
}) (case q of {ClQuest => m'ay_s ; _ => []})
|
}) (case q of {ClQuest => m'ay_s ; _ => []})
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
ExistNPAdv np adv = {
|
||||||
|
s = \\q,p => thbind (case p of {
|
||||||
|
Pos => thbind mii_s np.s adv.s ;
|
||||||
|
Neg => thbind may_s mii_s np.s adv.s
|
||||||
|
}) (case q of {ClQuest => m'ay_s ; _ => []})
|
||||||
|
} ;
|
||||||
|
|
||||||
ExistIP ip = mkPolClause ip (predV (regV [])) ; ----
|
ExistIP ip = mkPolClause ip (predV (regV [])) ; ----
|
||||||
|
|
||||||
ProgrVP vp = {
|
ProgrVP vp = {
|
||||||
s = \\p => thbind kam_s lag2_s (vp.s ! p) ;
|
s = \\p => thbind (thword kam_s lag2_s) (vp.s ! p) ;
|
||||||
e = vp.e
|
e = vp.e
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
+10
-1
@@ -1 +1,10 @@
|
|||||||
concrete NamesTha of Names = CatTha ** { }
|
concrete NamesTha of Names = CatTha ** open ResTha, Prelude in {
|
||||||
|
|
||||||
|
lin
|
||||||
|
GivenName, MaleSurname, FemaleSurname, PlSurname = \n -> n ;
|
||||||
|
FullName gn sn = mkNP (thbind gn.s sn.s) ;
|
||||||
|
|
||||||
|
UseLN, PlainLN = \ln -> ln ;
|
||||||
|
AdjLN ap ln = mkNP (thbind ln.s ap.s) ;
|
||||||
|
InLN ln = ss (thbind "ใน" ln.s) ;
|
||||||
|
}
|
||||||
+20
-5
@@ -17,6 +17,8 @@ concrete NounTha of Noun = CatTha ** open StringsTha, ResTha, Prelude in {
|
|||||||
|
|
||||||
AdvNP np adv = thbind np adv ;
|
AdvNP np adv = thbind np adv ;
|
||||||
|
|
||||||
|
ExtAdvNP np adv = thbind np adv ;
|
||||||
|
|
||||||
DetQuant quant num = {
|
DetQuant quant num = {
|
||||||
s1 = num.s ++bIND++ quant.s1 ; --- can there be quant.s1 ??
|
s1 = num.s ++bIND++ quant.s1 ; --- can there be quant.s1 ??
|
||||||
s2 = quant.s2 ;
|
s2 = quant.s2 ;
|
||||||
@@ -34,6 +36,19 @@ concrete NounTha of Noun = CatTha ** open StringsTha, ResTha, Prelude in {
|
|||||||
hasC = False
|
hasC = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
PossNP cn np = {s = thbind cn.s khoog_s np.s ; c = cn.c} ;
|
||||||
|
PartNP cn np = {s = thbind cn.s khoog_s np.s ; c = cn.c} ;
|
||||||
|
|
||||||
|
CountNP det np = mkNP (thbind det.s1 np.s det.s2) ;
|
||||||
|
|
||||||
|
DetDAP det = det ** {adj = []} ;
|
||||||
|
AdjDAP dap ap = dap ** {adj = thbind dap.adj ap.s} ;
|
||||||
|
|
||||||
|
QuantityNP decimal mu = mkNP (case mu.isPre of {
|
||||||
|
True => thbind mu.s decimal.s ;
|
||||||
|
False => thbind decimal.s mu.s
|
||||||
|
}) ;
|
||||||
|
|
||||||
NumSg, NumPl = {s = [] ; hasC = False} ;
|
NumSg, NumPl = {s = [] ; hasC = False} ;
|
||||||
|
|
||||||
NumCard n = n ** {hasC = True} ;
|
NumCard n = n ** {hasC = True} ;
|
||||||
@@ -46,7 +61,7 @@ concrete NounTha of Noun = CatTha ** open StringsTha, ResTha, Prelude in {
|
|||||||
|
|
||||||
AdNum adn num = thbind adn num ; ---- always?
|
AdNum adn num = thbind adn num ; ---- always?
|
||||||
|
|
||||||
OrdSuperl a = {s = thbind a.s thii_s sut_s} ;
|
OrdSuperl a = {s = thbind a.s (thword thii_s sut_s)} ;
|
||||||
|
|
||||||
DefArt = {s1,s2 = [] ; hasC = False} ;
|
DefArt = {s1,s2 = [] ; hasC = False} ;
|
||||||
IndefArt = {s1,s2 = [] ; hasC = False} ;
|
IndefArt = {s1,s2 = [] ; hasC = False} ;
|
||||||
@@ -63,10 +78,10 @@ concrete NounTha of Noun = CatTha ** open StringsTha, ResTha, Prelude in {
|
|||||||
|
|
||||||
AdjCN ap cn = {s = cn.s ++bIND++ ap.s ; c = cn.c} ;
|
AdjCN ap cn = {s = cn.s ++bIND++ ap.s ; c = cn.c} ;
|
||||||
|
|
||||||
RelCN cn rs = {s = thbind cn.s rs.s ; c = cn.s} ;
|
RelCN cn rs = {s = thbind cn.s rs.s ; c = cn.c} ;
|
||||||
AdvCN cn ad = {s = thbind cn.s ad.s ; c = cn.s} ;
|
AdvCN cn ad = {s = thbind cn.s ad.s ; c = cn.c} ;
|
||||||
SentCN cn cs = {s = thbind cn.s cs.s ; c = cn.s} ;
|
SentCN cn cs = {s = thbind cn.s cs.s ; c = cn.c} ;
|
||||||
ApposCN cn np = {s = thbind cn.s np.s ; c = cn.s} ;
|
ApposCN cn np = {s = thbind cn.s np.s ; c = cn.c} ;
|
||||||
|
|
||||||
RelNP np rs = thbind np rs ;
|
RelNP np rs = thbind np rs ;
|
||||||
|
|
||||||
|
|||||||
@@ -44,15 +44,29 @@ lin
|
|||||||
s = \\n => thbind (d.s ! ModTen) (sip ! n) (e.s ! After) (phan ! n)
|
s = \\n => thbind (d.s ! ModTen) (sip ! n) (e.s ! After) (phan ! n)
|
||||||
} ;
|
} ;
|
||||||
pot1as2 n = n ;
|
pot1as2 n = n ;
|
||||||
|
pot21 = {s = \\n => rooy_s} ;
|
||||||
pot2 d = {s = \\n => thbind (d.s ! Indep) (roy ! n)} ;
|
pot2 d = {s = \\n => thbind (d.s ! Indep) (roy ! n)} ;
|
||||||
pot2plus d e = {s = \\n => thbind (d.s ! Indep) (roy ! n) (e.s ! n)} ;
|
pot2plus d e = {s = \\n => thbind (d.s ! Indep) (roy ! n) (e.s ! n)} ;
|
||||||
pot2as3 n = {s = n.s ! Unit} ;
|
pot2as3 n = {s = n.s ! Unit} ;
|
||||||
|
pot31 = {s = thbind nvg_s phan_s} ;
|
||||||
pot3 n = {s = n.s ! Thousand} ;
|
pot3 n = {s = n.s ! Thousand} ;
|
||||||
pot3plus n m = {s = thbind (n.s ! Thousand) (m.s ! Unit)} ;
|
pot3plus n m = {s = thbind (n.s ! Thousand) (m.s ! Unit)} ;
|
||||||
pot3as4 n = n ;
|
pot3as4 n = n ;
|
||||||
|
|
||||||
|
pot3decimal d = {s = thbind d.s phan_s} ;
|
||||||
|
|
||||||
|
pot41 = {s = "ล้าน"} ;
|
||||||
|
pot4 n = {s = thbind (n.s ! Unit) "ล้าน"} ;
|
||||||
|
pot4plus n m = {s = thbind (n.s ! Unit) "ล้าน" m.s} ;
|
||||||
|
|
||||||
pot4as5 n = n ;
|
pot4as5 n = n ;
|
||||||
|
|
||||||
|
pot4decimal d = {s = thbind d.s "ล้าน"} ;
|
||||||
|
pot51 = {s = thbind phan_s "ล้าน"} ;
|
||||||
|
pot5 n = {s = thbind (n.s ! Unit) phan_s "ล้าน"} ;
|
||||||
|
pot5plus n m = {s = thbind (n.s ! Unit) phan_s "ล้าน" m.s} ;
|
||||||
|
pot5decimal d = {s = thbind d.s phan_s "ล้าน"} ;
|
||||||
|
|
||||||
param
|
param
|
||||||
DForm = Indep | ModTen | After ;
|
DForm = Indep | ModTen | After ;
|
||||||
NForm = Unit | Thousand ;
|
NForm = Unit | Thousand ;
|
||||||
@@ -90,5 +104,7 @@ oper
|
|||||||
D_9 = ss "๙" ;
|
D_9 = ss "๙" ;
|
||||||
|
|
||||||
PosDecimal d = d ** {hasDot=False} ;
|
PosDecimal d = d ** {hasDot=False} ;
|
||||||
|
NegDecimal d = {s = "-" ++ d.s ; hasDot = False} ;
|
||||||
|
IFrac d i = {s = d.s ++ "." ++ i.s ; hasDot = True} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -5,7 +5,7 @@ flags coding = utf8 ;
|
|||||||
oper
|
oper
|
||||||
mkN = overload {
|
mkN = overload {
|
||||||
mkN : Str -> N
|
mkN : Str -> N
|
||||||
= \s -> lin N {s = s ; c = "กำ ลัง"} ; ---- for small objects, see LP PB p. 20
|
= \s -> lin N {s = s ; c = "อัน"} ; ---- general classifier
|
||||||
mkN : Str -> Str -> N
|
mkN : Str -> Str -> N
|
||||||
= \s,c -> lin N {s = s ; c = c} ;
|
= \s,c -> lin N {s = s ; c = c} ;
|
||||||
} ;
|
} ;
|
||||||
@@ -67,6 +67,15 @@ oper
|
|||||||
mkVV : Str -> VV =
|
mkVV : Str -> VV =
|
||||||
\s -> lin VV {s=s; typ=VVPre} ;
|
\s -> lin VV {s=s; typ=VVPre} ;
|
||||||
|
|
||||||
|
mkVVPre : Str -> VV =
|
||||||
|
\s -> lin VV {s=s; typ=VVPre} ;
|
||||||
|
|
||||||
|
mkVVMid : Str -> VV =
|
||||||
|
\s -> lin VV {s=s; typ=VVMid} ;
|
||||||
|
|
||||||
|
mkVVPost : Str -> VV =
|
||||||
|
\s -> lin VV {s=s; typ=VVPost} ;
|
||||||
|
|
||||||
mkVQ : V -> VQ =
|
mkVQ : V -> VQ =
|
||||||
\v -> lin VQ v ;
|
\v -> lin VQ v ;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -158,6 +158,6 @@ oper
|
|||||||
|
|
||||||
conjThat = waa_s ;
|
conjThat = waa_s ;
|
||||||
|
|
||||||
reflPron = thbind tua_s eeng_s ;
|
reflPron = thword tua_s eeng_s ;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -16,6 +16,8 @@ concrete SentenceTha of Sentence = CatTha **
|
|||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
AdvImp adv imp = {s = \\p => thbind adv.s (imp.s ! p)} ;
|
||||||
|
|
||||||
SlashVP np vp = mkPolClause np vp ** {c2 = vp.c2} ;
|
SlashVP np vp = mkPolClause np vp ** {c2 = vp.c2} ;
|
||||||
|
|
||||||
SlashVS np vs slash =
|
SlashVS np vs slash =
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ concrete StructuralTha of Structural = CatTha **
|
|||||||
above_Prep = ss (thword "ข้าง" "บน") ;
|
above_Prep = ss (thword "ข้าง" "บน") ;
|
||||||
after_Prep = ss (thword "หลัง" "จาก") ;
|
after_Prep = ss (thword "หลัง" "จาก") ;
|
||||||
all_Predet = {s1 = thword "ทั้ง" "หมด" ; s2 = []} ;
|
all_Predet = {s1 = thword "ทั้ง" "หมด" ; s2 = []} ;
|
||||||
almost_AdA, almost_AdN = ss (thword "เกิ" "อบ") ;
|
almost_AdA, almost_AdN = ss "เกือบ" ;
|
||||||
although_Subj = ss "ถืง" ;
|
although_Subj = ss "ถึงแม้ว่า" ;
|
||||||
always_AdV = ss (thword "เส" "มอ") ; --- pronunciation
|
always_AdV = ss (thword "เส" "มอ") ; --- pronunciation
|
||||||
and_Conj = {s1 = [] ; s2 = "และ"} ;
|
and_Conj = {s1 = [] ; s2 = "และ"} ;
|
||||||
as_CAdv = {s = thword "เท่า" ; p = "กับ"} ; ----
|
as_CAdv = {s = thword "เท่า" ; p = "กับ"} ; ----
|
||||||
@@ -25,11 +25,11 @@ concrete StructuralTha of Structural = CatTha **
|
|||||||
can8know_VV = {s = pen_s ; typ = VVPost} ;
|
can8know_VV = {s = pen_s ; typ = VVPost} ;
|
||||||
can_VV = {s = "ได้" ; typ = VVPost} ;
|
can_VV = {s = "ได้" ; typ = VVPost} ;
|
||||||
during_Prep = ss (thword "ระ" "หว่าง") ;
|
during_Prep = ss (thword "ระ" "หว่าง") ;
|
||||||
either7or_DConj = {s1 = [] ; s2 = "หริอ"} ; ---- or: mai - ko
|
either7or_DConj = {s1 = [] ; s2 = "หรือ"} ; ---- or: mai - ko
|
||||||
everybody_NP = mkNP (thword "ทุก" "คน") ;
|
everybody_NP = mkNP (thword "ทุก" "คน") ;
|
||||||
every_Det = quantDet "ทุก" ;
|
every_Det = quantDet "ทุก" ;
|
||||||
everything_NP = mkNP (thword "ทุก" "สิ่ง") ;
|
everything_NP = mkNP (thword "ทุก" "สิ่ง") ;
|
||||||
everywhere_Adv = ss (thword "ทุก" "ที") ;
|
everywhere_Adv = ss (thword "ทุก" "ที่") ;
|
||||||
except_Prep = ss (thword "นอก" "จาก") ;
|
except_Prep = ss (thword "นอก" "จาก") ;
|
||||||
few_Det = quantDet (thword "สอง" "สาม") ;
|
few_Det = quantDet (thword "สอง" "สาม") ;
|
||||||
for_Prep = ss "ให้" ;
|
for_Prep = ss "ให้" ;
|
||||||
@@ -61,7 +61,7 @@ concrete StructuralTha of Structural = CatTha **
|
|||||||
nothing_NP = mkNP "เปล่า" ;
|
nothing_NP = mkNP "เปล่า" ;
|
||||||
on_Prep = ss "บน" ;
|
on_Prep = ss "บน" ;
|
||||||
only_Predet = {s1 = [] ; s2 = thword "เท่า" "นั้น"} ;
|
only_Predet = {s1 = [] ; s2 = thword "เท่า" "นั้น"} ;
|
||||||
or_Conj = {s1 = [] ; s2 = "หริอ"} ;
|
or_Conj = {s1 = [] ; s2 = "หรือ"} ;
|
||||||
otherwise_PConj = ss (thword "ไม่" "อย่าง" "นั้น") ;
|
otherwise_PConj = ss (thword "ไม่" "อย่าง" "นั้น") ;
|
||||||
part_Prep = ss "" ; ----
|
part_Prep = ss "" ; ----
|
||||||
please_Voc = ss "ขอ" ;
|
please_Voc = ss "ขอ" ;
|
||||||
@@ -84,14 +84,14 @@ concrete StructuralTha of Structural = CatTha **
|
|||||||
this_Quant = demDet nii_s ;
|
this_Quant = demDet nii_s ;
|
||||||
through_Prep = ss "ผ่าน" ;
|
through_Prep = ss "ผ่าน" ;
|
||||||
too_AdA = ss (thword "เกิน" "ไป") ;
|
too_AdA = ss (thword "เกิน" "ไป") ;
|
||||||
to_Prep = ss "ถืง" ;
|
to_Prep = ss "ถึง" ;
|
||||||
under_Prep = ss "ใต้" ;
|
under_Prep = ss "ใต้" ;
|
||||||
very_AdA = ss "มาก" ;
|
very_AdA = ss "มาก" ;
|
||||||
want_VV = {s = yaak_s ; typ = VVMid} ;
|
want_VV = {s = yaak_s ; typ = VVMid} ;
|
||||||
we_Pron = ss raw_s ;
|
we_Pron = ss raw_s ;
|
||||||
whatPl_IP, whatSg_IP = ss (thword "อะ" "ไร") ;
|
whatPl_IP, whatSg_IP = ss (thword "อะ" "ไร") ;
|
||||||
when_IAdv = ss (thword "เมื่อไร") ;
|
when_IAdv = ss (thword "เมื่อไร") ;
|
||||||
when_Subj = ss "ที" ;
|
when_Subj = ss "เมื่อ" ;
|
||||||
where_IAdv = ss (thword "ที่" "ไหน") ;
|
where_IAdv = ss (thword "ที่" "ไหน") ;
|
||||||
which_IQuant = demDet "ไหน" ;
|
which_IQuant = demDet "ไหน" ;
|
||||||
whoPl_IP, whoSg_IP = ss "ใคร" ;
|
whoPl_IP, whoSg_IP = ss "ใคร" ;
|
||||||
|
|||||||
@@ -53,8 +53,16 @@ concrete VerbTha of Verb = CatTha ** open ResTha, StringsTha, Prelude in {
|
|||||||
|
|
||||||
AdvVP vp adv = insertObj adv vp ;
|
AdvVP vp adv = insertObj adv vp ;
|
||||||
|
|
||||||
|
ExtAdvVP vp adv = insertObj adv vp ;
|
||||||
|
|
||||||
AdVVP adv vp = insertObj adv vp ;
|
AdVVP adv vp = insertObj adv vp ;
|
||||||
|
|
||||||
|
VPSlashPrep vp prep = vp ** {c2 = prep.s} ;
|
||||||
|
|
||||||
|
AdvVPSlash vp adv = insertObj adv vp ** {c2 = vp.c2} ;
|
||||||
|
|
||||||
|
AdVVPSlash adv vp = insertObj adv vp ** {c2 = vp.c2} ;
|
||||||
|
|
||||||
ReflVP vp = insertObj (mkNP (thbind vp.c2 reflPron)) vp ;
|
ReflVP vp = insertObj (mkNP (thbind vp.c2 reflPron)) vp ;
|
||||||
|
|
||||||
PassV2 v = {s = \\p => thbind (polStr may_s p) thuuk_s ; e = thbind v.s1 v.s2} ; -- to put agent before verb; --- the place of neg?
|
PassV2 v = {s = \\p => thbind (polStr may_s p) thuuk_s ; e = thbind v.s1 v.s2} ; -- to put agent before verb; --- the place of neg?
|
||||||
|
|||||||
Reference in new issue
Block a user