diff --git a/src/thai/AdjectiveTha.gf b/src/thai/AdjectiveTha.gf index e82608dbd..29a913faf 100644 --- a/src/thai/AdjectiveTha.gf +++ b/src/thai/AdjectiveTha.gf @@ -20,6 +20,8 @@ concrete AdjectiveTha of Adjective = CatTha ** open ResTha, Prelude in { AdAP ada ap = thbind ap ada ; + AdvAP ap adv = thbind ap adv ; + UseA2 a = a ; } diff --git a/src/thai/AdverbTha.gf b/src/thai/AdverbTha.gf index 6a3fc02b8..79d04836b 100644 --- a/src/thai/AdverbTha.gf +++ b/src/thai/AdverbTha.gf @@ -4,6 +4,8 @@ concrete AdverbTha of Adverb = CatTha ** lin PositAdvAdj a = a ; + PositAdAAdj a = a ; + PrepNP prep np = thbind prep np ; ComparAdvAdj cadv a np = ss (thbind a.s cadv.s cadv.p np.s) ; diff --git a/src/thai/CatTha.gf b/src/thai/CatTha.gf index b35c4e224..916d8ea7a 100644 --- a/src/thai/CatTha.gf +++ b/src/thai/CatTha.gf @@ -47,6 +47,8 @@ concrete CatTha of Cat = CommonX ** open ResTha, Prelude in { Predet = {s1,s2 : Str} ; Ord = {s : Str} ; Num = {s : Str ; hasC : Bool} ; + ACard = {s : Str} ; + DAP = Determiner ** {adj : Str} ; -- Numeral diff --git a/src/thai/ConjunctionTha.gf b/src/thai/ConjunctionTha.gf index ec0d51cac..470a65623 100644 --- a/src/thai/ConjunctionTha.gf +++ b/src/thai/ConjunctionTha.gf @@ -6,6 +6,10 @@ concrete ConjunctionTha of Conjunction = CatTha ** open Prelude, Coordination in ConjAdv = conjunctDistrSS ; ConjNP = conjunctDistrSS ; ConjAP = conjunctDistrSS ; + ConjCN conj xs = { + s = conj.s1 ++ xs.s1 ++ conj.s2 ++ xs.s2 ; + c = xs.c + } ; ConjRS = conjunctDistrSS ; -- 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 ; BaseAP = twoSS ; ConsAP = consrSS thcomma ; + BaseCN x y = twoSS x y ** {c = y.c} ; + ConsCN x xs = consrSS thcomma x xs ** {c = xs.c} ; BaseRS = twoSS ; ConsRS = consrSS thcomma ; @@ -26,6 +32,7 @@ concrete ConjunctionTha of Conjunction = CatTha ** open Prelude, Coordination in [Adv] = {s1,s2 : Str} ; [NP] = {s1,s2 : Str} ; [AP] = {s1,s2 : Str} ; + [CN] = {s1,s2,c : Str} ; [RS] = {s1,s2 : Str} ; oper diff --git a/src/thai/ConstructionTha.gf b/src/thai/ConstructionTha.gf index b36edc045..04a905e8a 100644 --- a/src/thai/ConstructionTha.gf +++ b/src/thai/ConstructionTha.gf @@ -23,6 +23,22 @@ lin how_far_QCl x = mkQCl (lin IComp (ss ("ไกล" + "เท่า" + "ไร"))) (lin NP x) ; -- 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)) ; ---- is_right_VP = mkVP (ParadigmsTha.mkA "对") ; @@ -38,6 +54,19 @@ lincat lin weekdayPunctualAdv w = SyntaxTha.mkAdv (mkPrep []) (mkNP 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} ; ---- weekdayLastAdv w = lin Adv {s = "上" ++ w.s ; advType = timeAdvType} ; {- @@ -76,20 +105,18 @@ lin sunday_Weekday = mkN (R.thword "วัน" "อา" "ทิตย์") ; -{- -lin january_Month = mkN "一月" ; -lin february_Month = mkN "二月" ; -lin march_Month = mkN "三月" ; -lin april_Month = mkN "四月" ; -lin may_Month = mkN "五月" ; -lin june_Month = mkN "六月" ; -lin july_Month = mkN "七月" ; -lin august_Month = mkN "八月t" ; -lin september_Month = mkN "九月" ; -lin october_Month = mkN "十月" ; -lin november_Month = mkN "十一月" ; -lin december_Month = mkN "十二月" ; --} +lin january_Month = mkN "มกราคม" ; + february_Month = mkN "กุมภาพันธ์" ; + march_Month = mkN "มีนาคม" ; + april_Month = mkN "เมษายน" ; + may_Month = mkN "พฤษภาคม" ; + june_Month = mkN "มิถุนายน" ; + july_Month = mkN "กรกฎาคม" ; + august_Month = mkN "สิงหาคม" ; + september_Month = mkN "กันยายน" ; + october_Month = mkN "ตุลาคม" ; + november_Month = mkN "พฤศจิกายน" ; + december_Month = mkN "ธันวาคม" ; ----lin afrikaans_Language = mkLanguage "南非語" ; diff --git a/src/thai/ExtendTha.gf b/src/thai/ExtendTha.gf new file mode 100644 index 000000000..2941ae7c3 --- /dev/null +++ b/src/thai/ExtendTha.gf @@ -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 ; +} diff --git a/src/thai/IdiomTha.gf b/src/thai/IdiomTha.gf index bfdd55b2f..e221fe295 100644 --- a/src/thai/IdiomTha.gf +++ b/src/thai/IdiomTha.gf @@ -19,10 +19,17 @@ concrete IdiomTha of Idiom = CatTha ** open Prelude, ResTha in { }) (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 [])) ; ---- 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 } ; diff --git a/src/thai/NamesTha.gf b/src/thai/NamesTha.gf index 3d009d959..315573c03 100644 --- a/src/thai/NamesTha.gf +++ b/src/thai/NamesTha.gf @@ -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) ; +} diff --git a/src/thai/NounTha.gf b/src/thai/NounTha.gf index 914ca2d89..8cf2dc224 100644 --- a/src/thai/NounTha.gf +++ b/src/thai/NounTha.gf @@ -17,6 +17,8 @@ concrete NounTha of Noun = CatTha ** open StringsTha, ResTha, Prelude in { AdvNP np adv = thbind np adv ; + ExtAdvNP np adv = thbind np adv ; + DetQuant quant num = { s1 = num.s ++bIND++ quant.s1 ; --- can there be quant.s1 ?? s2 = quant.s2 ; @@ -34,6 +36,19 @@ concrete NounTha of Noun = CatTha ** open StringsTha, ResTha, Prelude in { 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} ; 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? - 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} ; 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} ; - RelCN cn rs = {s = thbind cn.s rs.s ; c = cn.s} ; - AdvCN cn ad = {s = thbind cn.s ad.s ; c = cn.s} ; - SentCN cn cs = {s = thbind cn.s cs.s ; c = cn.s} ; - ApposCN cn np = {s = thbind cn.s np.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.c} ; + SentCN cn cs = {s = thbind cn.s cs.s ; c = cn.c} ; + ApposCN cn np = {s = thbind cn.s np.s ; c = cn.c} ; RelNP np rs = thbind np rs ; diff --git a/src/thai/NumeralTha.gf b/src/thai/NumeralTha.gf index 23fa6c643..ff2680d7c 100644 --- a/src/thai/NumeralTha.gf +++ b/src/thai/NumeralTha.gf @@ -44,15 +44,29 @@ lin s = \\n => thbind (d.s ! ModTen) (sip ! n) (e.s ! After) (phan ! n) } ; pot1as2 n = n ; + pot21 = {s = \\n => rooy_s} ; pot2 d = {s = \\n => thbind (d.s ! Indep) (roy ! n)} ; pot2plus d e = {s = \\n => thbind (d.s ! Indep) (roy ! n) (e.s ! n)} ; pot2as3 n = {s = n.s ! Unit} ; + pot31 = {s = thbind nvg_s phan_s} ; pot3 n = {s = n.s ! Thousand} ; pot3plus n m = {s = thbind (n.s ! Thousand) (m.s ! Unit)} ; 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 ; + 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 DForm = Indep | ModTen | After ; NForm = Unit | Thousand ; @@ -90,5 +104,7 @@ oper D_9 = ss "๙" ; PosDecimal d = d ** {hasDot=False} ; + NegDecimal d = {s = "-" ++ d.s ; hasDot = False} ; + IFrac d i = {s = d.s ++ "." ++ i.s ; hasDot = True} ; } diff --git a/src/thai/ParadigmsTha.gf b/src/thai/ParadigmsTha.gf index a5d0cd9be..5073a3f84 100644 --- a/src/thai/ParadigmsTha.gf +++ b/src/thai/ParadigmsTha.gf @@ -5,7 +5,7 @@ flags coding = utf8 ; oper mkN = overload { 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 = \s,c -> lin N {s = s ; c = c} ; } ; @@ -67,6 +67,15 @@ oper mkVV : Str -> VV = \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 = \v -> lin VQ v ; diff --git a/src/thai/ResTha.gf b/src/thai/ResTha.gf index ffab0d23b..1e0bcffd3 100644 --- a/src/thai/ResTha.gf +++ b/src/thai/ResTha.gf @@ -14,7 +14,7 @@ resource ResTha = ParamX, StringsTha ** open Prelude in { -- binding words together -- will be activated when the parser supports consecutive BINDs AR 16/3/2015 - bIND = [] ; ---- Predef.BIND ; + bIND = [] ; ---- Predef.BIND ; thbind = overload { thbind : Str -> Str = \s -> s ; @@ -158,6 +158,6 @@ oper conjThat = waa_s ; - reflPron = thbind tua_s eeng_s ; + reflPron = thword tua_s eeng_s ; } diff --git a/src/thai/SentenceTha.gf b/src/thai/SentenceTha.gf index 56ccb1d40..d12aa2115 100644 --- a/src/thai/SentenceTha.gf +++ b/src/thai/SentenceTha.gf @@ -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} ; SlashVS np vs slash = diff --git a/src/thai/StructuralTha.gf b/src/thai/StructuralTha.gf index bb6cc993a..063e13a71 100644 --- a/src/thai/StructuralTha.gf +++ b/src/thai/StructuralTha.gf @@ -7,8 +7,8 @@ concrete StructuralTha of Structural = CatTha ** above_Prep = ss (thword "ข้าง" "บน") ; after_Prep = ss (thword "หลัง" "จาก") ; all_Predet = {s1 = thword "ทั้ง" "หมด" ; s2 = []} ; - almost_AdA, almost_AdN = ss (thword "เกิ" "อบ") ; - although_Subj = ss "ถืง" ; + almost_AdA, almost_AdN = ss "เกือบ" ; + although_Subj = ss "ถึงแม้ว่า" ; always_AdV = ss (thword "เส" "มอ") ; --- pronunciation and_Conj = {s1 = [] ; s2 = "และ"} ; as_CAdv = {s = thword "เท่า" ; p = "กับ"} ; ---- @@ -25,11 +25,11 @@ concrete StructuralTha of Structural = CatTha ** can8know_VV = {s = pen_s ; typ = VVPost} ; can_VV = {s = "ได้" ; typ = VVPost} ; during_Prep = ss (thword "ระ" "หว่าง") ; - either7or_DConj = {s1 = [] ; s2 = "หริอ"} ; ---- or: mai - ko + either7or_DConj = {s1 = [] ; s2 = "หรือ"} ; ---- or: mai - ko everybody_NP = mkNP (thword "ทุก" "คน") ; every_Det = quantDet "ทุก" ; everything_NP = mkNP (thword "ทุก" "สิ่ง") ; - everywhere_Adv = ss (thword "ทุก" "ที") ; + everywhere_Adv = ss (thword "ทุก" "ที่") ; except_Prep = ss (thword "นอก" "จาก") ; few_Det = quantDet (thword "สอง" "สาม") ; for_Prep = ss "ให้" ; @@ -61,7 +61,7 @@ concrete StructuralTha of Structural = CatTha ** nothing_NP = mkNP "เปล่า" ; on_Prep = ss "บน" ; only_Predet = {s1 = [] ; s2 = thword "เท่า" "นั้น"} ; - or_Conj = {s1 = [] ; s2 = "หริอ"} ; + or_Conj = {s1 = [] ; s2 = "หรือ"} ; otherwise_PConj = ss (thword "ไม่" "อย่าง" "นั้น") ; part_Prep = ss "" ; ---- please_Voc = ss "ขอ" ; @@ -84,14 +84,14 @@ concrete StructuralTha of Structural = CatTha ** this_Quant = demDet nii_s ; through_Prep = ss "ผ่าน" ; too_AdA = ss (thword "เกิน" "ไป") ; - to_Prep = ss "ถืง" ; + to_Prep = ss "ถึง" ; under_Prep = ss "ใต้" ; very_AdA = ss "มาก" ; want_VV = {s = yaak_s ; typ = VVMid} ; we_Pron = ss raw_s ; whatPl_IP, whatSg_IP = ss (thword "อะ" "ไร") ; when_IAdv = ss (thword "เมื่อไร") ; - when_Subj = ss "ที" ; + when_Subj = ss "เมื่อ" ; where_IAdv = ss (thword "ที่" "ไหน") ; which_IQuant = demDet "ไหน" ; whoPl_IP, whoSg_IP = ss "ใคร" ; diff --git a/src/thai/VerbTha.gf b/src/thai/VerbTha.gf index f1e5d7630..cbea72aaa 100644 --- a/src/thai/VerbTha.gf +++ b/src/thai/VerbTha.gf @@ -53,7 +53,15 @@ concrete VerbTha of Verb = CatTha ** open ResTha, StringsTha, Prelude in { AdvVP vp adv = insertObj adv vp ; + ExtAdvVP vp adv = 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 ;