From edbfc31000f860be6388c521af7a8207fbc20d32 Mon Sep 17 00:00:00 2001 From: aarne Date: Sun, 21 Jan 2007 20:41:35 +0000 Subject: [PATCH] thai questions and negations --- examples/travel/TravelTha.gf | 8 ++--- lib/resource-1.0/thai/AdverbTha.gf | 12 ++++--- lib/resource-1.0/thai/CatTha.gf | 37 ++++++++------------ lib/resource-1.0/thai/GrammarTha.gf | 6 ++-- lib/resource-1.0/thai/LexiconTha.gf | 6 ++-- lib/resource-1.0/thai/PhraseTha.gf | 48 +++++++++++++------------- lib/resource-1.0/thai/QuestionTha.gf | 27 +++++++-------- lib/resource-1.0/thai/ResTha.gf | 41 ++++++++++++++++++++-- lib/resource-1.0/thai/SentenceTha.gf | 21 +++++++---- lib/resource-1.0/thai/StringsTha.gf | 24 ++++++++++--- lib/resource-1.0/thai/StringsThai.gf | 24 ++++++++++--- lib/resource-1.0/thai/StructuralTha.gf | 19 ++++------ lib/resource-1.0/thai/VerbTha.gf | 39 ++++++++++++++------- lib/resource-1.0/thai/thai.html | 4 +-- src/GF/Text/Thai.hs | 2 +- 15 files changed, 196 insertions(+), 122 deletions(-) diff --git a/examples/travel/TravelTha.gf b/examples/travel/TravelTha.gf index 6d62baa31..882745bef 100644 --- a/examples/travel/TravelTha.gf +++ b/examples/travel/TravelTha.gf @@ -39,12 +39,12 @@ concrete TravelTha of Travel = open Prelude in { MkSpeaker = cc2 ; MkHearer _ _ = ss [] ; - Male = ss "k2rab" ; - Female = ss "k2T1a" ; + Male = ss "k2ra.b" ; + Female = ss "k2T1a." ; Single, Many = ss [] ; - Hello = ss ["swa.s di:"] ; + Hello = ss ["swas di:"] ; Thanks = ss ["k1Ob k2un'"] ; IWant = prefixSS "eOa:" ; @@ -64,7 +64,7 @@ concrete TravelTha of Travel = open Prelude in { Five = ss "ha:" ; Ten = ss "sib" ; - Mango = cls ["ma mT1wg"] "lu:k" ; + Mango = cls ["ma. mT1wg"] "lu:k" ; Green = ss ["si: ek1i:yw"] ; oper diff --git a/lib/resource-1.0/thai/AdverbTha.gf b/lib/resource-1.0/thai/AdverbTha.gf index b54bcfa30..876629468 100644 --- a/lib/resource-1.0/thai/AdverbTha.gf +++ b/lib/resource-1.0/thai/AdverbTha.gf @@ -1,7 +1,9 @@ ---concrete AdverbTha of Adverb = CatTha ** open ResTha, Prelude in { --- --- lin --- PositAdvAdj a = {s = a.s ! AAdv} ; +concrete AdverbTha of Adverb = CatTha ** + open ResTha, StringsTha, Prelude in { + + lin + PositAdvAdj a = a ; + -- ComparAdvAdj cadv a np = { -- s = cadv.s ++ a.s ! AAdv ++ "than" ++ np.s ! Nom -- } ; @@ -18,4 +20,4 @@ -- -- AdnCAdv cadv = {s = cadv.s ++ "than"} ; -- ---} +} diff --git a/lib/resource-1.0/thai/CatTha.gf b/lib/resource-1.0/thai/CatTha.gf index 938176743..df4fb7ac4 100644 --- a/lib/resource-1.0/thai/CatTha.gf +++ b/lib/resource-1.0/thai/CatTha.gf @@ -4,24 +4,24 @@ concrete CatTha of Cat = CommonX ** open ResTha, Prelude in { lincat ----- Tensed/Untensed --- --- S = {s : Str} ; --- QS = {s : QForm => Str} ; +-- Tensed/Untensed + + S = {s : Str} ; + QS = {s : QForm => Str} ; -- RS = {s : Agr => Str ; c : Case} ; -- c for it clefts -- ---- Sentence -- --- Cl = {s : Tense => Anteriority => CPolarity => Order => Str} ; + Cl = {s : Polarity => Str} ; -- Slash = { -- s : Tense => Anteriority => CPolarity => Order => Str ; -- c2 : Str -- } ; --- Imp = {s : CPolarity => ImpForm => Str} ; + Imp = {s : Polarity => Str} ; -- ---- Question -- --- QCl = {s : Tense => Anteriority => CPolarity => QForm => Str} ; + QCl = {s : Polarity => Str} ; -- IP = {s : Case => Str ; n : Number} ; -- IComp = {s : Str} ; -- IDet = {s : Str ; n : Number} ; @@ -33,15 +33,8 @@ concrete CatTha of Cat = CommonX ** open ResTha, Prelude in { -- ---- Verb -- --- VP = { --- s : Tense => Anteriority => CPolarity => Order => Agr => {fin, inf : Str} ; --- prp : Str ; -- present participle --- inf : Str ; -- infinitive --- ad : Str ; --- s2 : Agr => Str --- } ; --- --- Comp = {s : Agr => Str} ; + VP = ResTha.VP ; + Comp = ResTha.VP ; -- ---- Adjective -- @@ -66,12 +59,12 @@ concrete CatTha of Cat = CommonX ** open ResTha, Prelude in { -- Subj = {s : Str} ; -- Prep = {s : Str} ; -- ----- Open lexical classes, e.g. Lexicon --- --- V, VS, VQ, VA = Verb ; -- = {s : VForm => Str} ; --- V2, V2A = Verb ** {c2 : Str} ; --- V3 = Verb ** {c2, c3 : Str} ; --- VV = {s : VVForm => Str ; isAux : Bool} ; +-- Open lexical classes, e.g. Lexicon + + V, VS, VQ, VA = Verb ; + V2, V2A = Verb ** {c2 : Str} ; + V3 = Verb ** {c2, c3 : Str} ; + VV = VVerb ; -- -- A = {s : AForm => Str} ; -- A2 = {s : AForm => Str ; c2 : Str} ; diff --git a/lib/resource-1.0/thai/GrammarTha.gf b/lib/resource-1.0/thai/GrammarTha.gf index 774ddcc72..efe05cc45 100644 --- a/lib/resource-1.0/thai/GrammarTha.gf +++ b/lib/resource-1.0/thai/GrammarTha.gf @@ -4,13 +4,13 @@ concrete GrammarTha of Grammar = NounTha, VerbTha, AdjectiveTha, --- AdverbTha, + AdverbTha, NumeralTha, SentenceTha, --- QuestionTha, + QuestionTha, -- RelativeTha, -- ConjunctionTha, --- PhraseTha, + PhraseTha, -- TextX, StructuralTha, -- IdiomTha diff --git a/lib/resource-1.0/thai/LexiconTha.gf b/lib/resource-1.0/thai/LexiconTha.gf index 68a6b9cb9..6c29e33bb 100644 --- a/lib/resource-1.0/thai/LexiconTha.gf +++ b/lib/resource-1.0/thai/LexiconTha.gf @@ -85,7 +85,7 @@ lin -- glove_N = regN "glove" ; -- gold_N = regN "gold" ; -- good_A = mkADeg "good" "well" "better" "best" ; - go_V = ss pay_s ; + go_V = regV pay_s ; -- green_A = regADeg "green" ; -- harbour_N = regN "harbour" ; -- hate_V2 = dirV2 (regV "hate") ; @@ -113,7 +113,7 @@ lin -- long_A = regADeg "long" ; -- lose_V2 = dirV2 (irregV "lose" "lost" "lost") ; -- love_N = regN "love" ; - love_V2 = ss rak_s ; + love_V2 = dirV2 (regV rak_s) ; -- man_N = mk2N "man" "men" ; -- married_A2 = mkA2 (regA "married") toP ; -- meat_N = regN "meat" ; @@ -167,7 +167,7 @@ lin -- short_A = regADeg "short" ; -- silver_N = regN "silver" ; -- sister_N = regN "sister" ; --- sleep_V = (irregV "sleep" "slept" "slept") ; + sleep_V = resV noon_s lap_s ; -- small_A = regADeg "small" ; -- snake_N = regN "snake" ; -- sock_N = regN "sock" ; diff --git a/lib/resource-1.0/thai/PhraseTha.gf b/lib/resource-1.0/thai/PhraseTha.gf index 455cfe681..c51d85a20 100644 --- a/lib/resource-1.0/thai/PhraseTha.gf +++ b/lib/resource-1.0/thai/PhraseTha.gf @@ -1,24 +1,24 @@ ---concrete PhraseTha of Phrase = CatTha ** open Prelude, ResTha in { --- --- lin --- PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ; --- --- UttS s = s ; --- UttQS qs = {s = qs.s ! QDir} ; --- UttImpSg pol imp = {s = pol.s ++ imp.s ! contrNeg True pol.p ! ImpF Sg False} ; --- UttImpPl pol imp = {s = pol.s ++ imp.s ! contrNeg True pol.p ! ImpF Pl False} ; --- UttImpPol pol imp = {s = pol.s ++ imp.s ! contrNeg True pol.p ! ImpF Sg True} ; --- --- UttIP ip = {s = ip.s ! Nom} ; --- Acc also --- UttIAdv iadv = iadv ; --- UttNP np = {s = np.s ! Acc} ; --- UttVP vp = {s = infVP False vp (agrP3 Sg)} ; --- UttAdv adv = adv ; --- --- NoPConj = {s = []} ; --- PConjConj conj = conj ; --- --- NoVoc = {s = []} ; --- VocNP np = {s = "," ++ np.s ! Nom} ; --- ---} +concrete PhraseTha of Phrase = CatTha ** open Prelude, ResTha in { + + lin + PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ; + + UttS s = s ; + UttQS qs = {s = qs.s ! QDir} ; + UttImpSg pol imp = {s = pol.s ++ imp.s ! pol.p} ; + UttImpPl pol imp = {s = pol.s ++ imp.s ! pol.p} ; + UttImpPol pol imp = {s = pol.s ++ imp.s ! pol.p} ; --- add politeness here? + + UttIP ip = ip ; + UttIAdv iadv = iadv ; + UttNP np = np ; + UttVP vp = {s = vp.s ! Pos} ; + UttAdv adv = adv ; + + NoPConj = {s = []} ; + PConjConj conj = conj ; + + NoVoc = {s = []} ; + VocNP np = {s = np.s} ; ---- ?? + +} diff --git a/lib/resource-1.0/thai/QuestionTha.gf b/lib/resource-1.0/thai/QuestionTha.gf index 18f0344ef..033539bdf 100644 --- a/lib/resource-1.0/thai/QuestionTha.gf +++ b/lib/resource-1.0/thai/QuestionTha.gf @@ -1,17 +1,14 @@ ---concrete QuestionTha of Question = CatTha ** open ResTha, Prelude in { --- --- flags optimize=all_subs ; --- --- lin --- --- QuestCl cl = { --- s = \\t,a,p => --- let cls = cl.s ! t ! a ! p --- in table { --- QDir => cls ! OQuest ; --- QIndir => "if" ++ cls ! ODir --- } ---- "whether" in ExtTha --- } ; +concrete QuestionTha of Question = CatTha ** + open ResTha, StringsTha, Prelude in { + + flags optimize=all_subs ; + + lin + +-- pos. may, neg. chay may - not always the proper forms --- + + QuestCl cl = {s = \\p => cl.s ! Pos ++ polStr chay_s p ++ m'ay_s} ; + -- -- QuestVP qp vp = -- let cl = mkClause (qp.s ! Nom) {n = qp.n ; p = P3} vp @@ -41,4 +38,4 @@ -- -- CompIAdv a = a ; -- ---} +} diff --git a/lib/resource-1.0/thai/ResTha.gf b/lib/resource-1.0/thai/ResTha.gf index 049091010..6c1657151 100644 --- a/lib/resource-1.0/thai/ResTha.gf +++ b/lib/resource-1.0/thai/ResTha.gf @@ -7,7 +7,7 @@ ---- implement $Test$, it moreover contains regular lexical ---- patterns needed for $Lex$. -- -resource ResTha = ParamX ** open Prelude in { +resource ResTha = ParamX ** open StringsTha, Prelude in { oper @@ -21,7 +21,44 @@ resource ResTha = ParamX ** open Prelude in { Determiner = {s1, s2 : Str ; hasC : Bool} ; - mkDet : Str -> Str -> Determiner = \s,c -> {s1 = s ; s2 = c ; hasC = True} ; + mkDet : Str -> Str -> Determiner = + \s,c -> {s1 = s ; s2 = c ; hasC = True} ; + +-- Part before and after negation (mai_s) + + Verb = {s1,s2 : Str} ; + + resV : Str -> Str -> Verb = \s,c -> {s1 = s ; s2 = c} ; + + regV : Str -> Verb = \s -> resV [] s ; + + dirV2 : Verb -> Verb ** {c2 : Str} = \v -> v ** {c2 = []} ; + +-- Auxiliary verbs, according to order and negation. +-- The three types are $VV may VP | may VV VP | VP may VV$ + + param VVTyp = VVPre | VVMid | VVPost ; + + oper VVerb = {s : Str ; typ : VVTyp} ; + +-- Verb phrases: form negation and question, too. + + VP = { + s : Polarity => Str + } ; + + mkVP : Verb -> VP = \v -> { + s = \\p => v.s1 ++ polStr may_s p ++ v.s2 + } ; + + insertObject : Str -> VP -> VP = \np,vp -> { + s = \\p => vp.s ! p ++ np + } ; + + polStr : Str -> Polarity -> Str = \m,p -> case p of { + Pos => [] ; + Neg => m + } ; -- flags optimize=all ; -- diff --git a/lib/resource-1.0/thai/SentenceTha.gf b/lib/resource-1.0/thai/SentenceTha.gf index 29934ef38..e4185f61f 100644 --- a/lib/resource-1.0/thai/SentenceTha.gf +++ b/lib/resource-1.0/thai/SentenceTha.gf @@ -1,15 +1,20 @@ -concrete SentenceTha of Sentence = CatTha ** open Prelude, ResTha in { +concrete SentenceTha of Sentence = CatTha ** + open Prelude, StringsTha, ResTha in { flags optimize=all_subs ; lin - PredVP = cc2 ; + PredVP np vp = {s = \\p => np.s ++ vp.s ! p} ; -- PredSCVP sc vp = mkClause sc.s (agrP3 Sg) vp ; - ImpVP vp = vp ; - + ImpVP vp = { + s = table { + Pos => vp.s ! Pos ++ si_s ; + Neg => yaa_s ++ vp.s ! Pos + } + } ; -- SlashV2 np v2 = -- mkClause (np.s ! Nom) np.a (predV v2) ** {c2 = v2.c2} ; -- @@ -29,8 +34,12 @@ concrete SentenceTha of Sentence = CatTha ** open Prelude, ResTha in { -- EmbedQS qs = {s = qs.s ! QIndir} ; -- EmbedVP vp = {s = infVP False vp (agrP3 Sg)} ; --- agr -- --- UseCl t a p cl = {s = t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! ctr p.p ! ODir} ; --- UseQCl t a p cl = {s = \\q => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! ctr p.p ! q} ; + UseCl t a p cl = {s = t.s ++ a.s ++ p.s ++ cl.s ! p.p} ; + UseQCl t a p cl = { + s = \\q => t.s ++ a.s ++ p.s ++ + case q of {QIndir => waa_s ; _ => []} ++ + cl.s ! p.p + } ; -- UseRCl t a p cl = { -- s = \\r => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! ctr p.p ! r ; -- c = cl.c diff --git a/lib/resource-1.0/thai/StringsTha.gf b/lib/resource-1.0/thai/StringsTha.gf index 941cacf06..4d2722f54 100644 --- a/lib/resource-1.0/thai/StringsTha.gf +++ b/lib/resource-1.0/thai/StringsTha.gf @@ -7,8 +7,10 @@ resource StringsTha = { oper baan_s = "บ้าน" ; -- house +ca_s = "จะ" ; -- Modal cet_s = "เจ็ด" ; -- seven chan_s = "ฉัน" ; -- I +chay_s = "ไช่" ; -- be-not et_s = "เอ็ด" ; -- one' haa_s = "ห้า" ; -- five hay_s = "ให้" ; -- give @@ -18,28 +20,40 @@ khaw_s = "เขว" ; -- he khon_s = "คน" ; -- people Classif khoog_s = "ของ" ; -- Possessive khun_s = "คุณ" ; -- you -lag_s = "หลัง" ; -- houses Classif +lag_s = "หลัง" ; -- houses Classif +lap_s = "หลับ" ; -- sleep2 lem_s = "เล่ม" ; -- books Classif +may_s = "ไม" ; -- not +m'ay_s = "ไหม" ; -- Question mvvn_s = "หมื่น" ; -- ten thousand -nag_s = "หนัง" ; -- book1 -nan_s = "นั้" ; -- that +nag_s = "หนะง" ; -- book1 +nan_s = "นั้น" ; -- that +noon_s = "นอน" ; -- sleep1 nvg_s = "หนึง" ; -- one pay_s = "ไป" ; -- go peet_s = "แปด" ; -- eight -pen_s = "เป็น" ; -- be -phan_s = "พะน" ; -- thousand +pen_s = "เป็น" ; -- be, can-know +phan_s = "พัน" ; -- thousand puu_s = "ผู้" ; -- woman1 rak_s = "รัก" ; -- love +raw_s = "เรา" ; -- we rooy_s = "ร้อย" ; -- hundred saam_s = "สาม" ; -- three seen_s = "แสน" ; -- hundred thousand +si_s = "ซิ" ; -- Imperative sii_s = "สี่" ; -- four sip_s = "สิบ" ; -- ten soog_s = "สอง" ; -- two svv_s = "สือ" ; -- book2 thii_s = "ที่" ; -- Ord +tog_s = "ต้อง" ; -- must +waa_s = "ว่า" ; -- that Conj +way_s = "ไหว" ; -- can-potent +yaa_s = "อยา" ; -- Neg Imper +yaak_s = "อยาก" ; -- want yay_s = "ใหญ" ; -- big yig_s = "หญิง" ; -- woman2 yii_s = "ยี่" ; -- two' + } diff --git a/lib/resource-1.0/thai/StringsThai.gf b/lib/resource-1.0/thai/StringsThai.gf index 23409ccfb..e0b4bcc32 100644 --- a/lib/resource-1.0/thai/StringsThai.gf +++ b/lib/resource-1.0/thai/StringsThai.gf @@ -7,8 +7,10 @@ resource StringsTha = { oper baan_s = "bT2a:n" ; -- house +ca_s = "ca." ; -- Modal cet_s = "ecSd" ; -- seven -chan_s = "c1a.n" ; -- I +chan_s = "c1an" ; -- I +chay_s = "a&c2T1" ; -- be-not et_s = "eOSd" ; -- one' haa_s = "hT2a:" ; -- five hay_s = "a%hT2" ; -- give @@ -18,28 +20,40 @@ khaw_s = "ek1w" ; -- he khon_s = "k2n" ; -- people Classif khoog_s = "k1Og" ; -- Possessive khun_s = "k2un'" ; -- you -lag_s = "hla.g" ; -- houses Classif +lag_s = "hlag" ; -- houses Classif +lap_s = "hlab" ; -- sleep2 lem_s = "elT1m" ; -- books Classif +may_s = "a&m" ; -- not +m'ay_s = "a&hm" ; -- Question mvvn_s = "hmv:T1n" ; -- ten thousand nag_s = "hna.g" ; -- book1 -nan_s = "na.T2" ; -- that +nan_s = "naT2n" ; -- that +noon_s = "nOn" ; -- sleep1 nvg_s = "hnvg" ; -- one pay_s = "a&p" ; -- go peet_s = "e'pd" ; -- eight -pen_s = "epSn" ; -- be +pen_s = "epSn" ; -- be, can-know phan_s = "p2an" ; -- thousand puu_s = "p1u:T2" ; -- woman1 -rak_s = "ra.k" ; -- love +rak_s = "rak" ; -- love +raw_s = "era:" ; -- we rooy_s = "rT2Oy" ; -- hundred saam_s = "sa:m" ; -- three seen_s = "e'sn" ; -- hundred thousand +si_s = "s'i" ; -- Imperative sii_s = "si:T1" ; -- four sip_s = "sib" ; -- ten soog_s = "sOg" ; -- two svv_s = "sv:O" ; -- book2 thii_s = "t5i:T1" ; -- Ord +tog_s = "tT2Og" ; -- must +waa_s = "wT1a:" ; -- that Conj +way_s = "a&hw" ; -- can-potent +yaa_s = "Oya:" ; -- Neg Imper +yaak_s = "Oya:k" ; -- want yay_s = "a%hy'" ; -- big yig_s = "hy'ig" ; -- woman2 yii_s = "yi:T1" ; -- two' + } diff --git a/lib/resource-1.0/thai/StructuralTha.gf b/lib/resource-1.0/thai/StructuralTha.gf index 898a18ef2..1767c4652 100644 --- a/lib/resource-1.0/thai/StructuralTha.gf +++ b/lib/resource-1.0/thai/StructuralTha.gf @@ -1,5 +1,5 @@ concrete StructuralTha of Structural = CatTha ** - open StringsTha, Prelude in { + open StringsTha, ResTha, Prelude in { flags optimize=all ; @@ -19,11 +19,8 @@ concrete StructuralTha of Structural = CatTha ** -- but_PConj = ss "but" ; -- by8agent_Prep = ss "by" ; -- by8means_Prep = ss "by" ; --- can8know_VV, can_VV = { --- s = table VVForm [["be able to"] ; "can" ; ["been able to"] ; --- ["being able to"] ; "could" ; "can't" ; "couldn't"] ; --- isAux = True --- } ; + can8know_VV = {s = pen_s ; typ = VVPost} ; + can_VV = {s = way_s ; typ = VVPost} ; -- during_Prep = ss "during" ; -- either7or_DConj = sd2 "either" "or" ** {n = Sg} ; -- everybody_NP = regNP "everybody" Sg ; @@ -50,11 +47,7 @@ concrete StructuralTha of Structural = CatTha ** -- more_CAdv = ss "more" ; -- most_Predet = ss "most" ; -- much_Det = mkDeterminer Sg "much" ; --- must_VV = { --- s = table VVForm [["have to"] ; "must" ; ["had to"] ; --- ["having to"] ; ["had to"] ; "mustn't" ; ["hadn't to"]] ; ---- --- isAux = True --- } ; + must_VV = {s = tog_s ; typ = VVPre} ; -- no_Phr = ss "no" ; -- on_Prep = ss "on" ; -- one_Quant = mkDeterminer Sg "one" ; @@ -88,8 +81,8 @@ concrete StructuralTha of Structural = CatTha ** -- to_Prep = ss "to" ; -- under_Prep = ss "under" ; -- very_AdA = ss "very" ; --- want_VV = P.mkVV (P.regV "want") ; --- we_Pron = mkNP "we" "us" "our" Pl P1 ; + want_VV = {s = yaak_s ; typ = VVMid} ; + we_Pron = ss raw_s ; -- whatPl_IP = mkIP "what" "what" "what's" Sg ; -- whatSg_IP = mkIP "what" "what" "what's" Sg ; -- when_IAdv = ss "when" ; diff --git a/lib/resource-1.0/thai/VerbTha.gf b/lib/resource-1.0/thai/VerbTha.gf index b7a9d14cd..0e414cd86 100644 --- a/lib/resource-1.0/thai/VerbTha.gf +++ b/lib/resource-1.0/thai/VerbTha.gf @@ -3,12 +3,23 @@ concrete VerbTha of Verb = CatTha ** open ResTha, StringsTha, Prelude in { flags optimize=all_subs ; lin - UseV v = v ; - ComplV2 = cc2 ; --- ComplV3 v np np2 = --- insertObj (\\_ => v.c2 ++ np.s ! Acc ++ v.c3 ++ np2.s ! Acc) (predV v) ; --- --- ComplVV v vp = insertObj (\\a => infVP v.isAux vp a) (predVV v) ; + UseV = mkVP ; + ComplV2 v np = insertObject (v.c2 ++ np.s) (mkVP v) ; + ComplV3 v np np2 = insertObject (v.c2 ++ np.s ++ v.c3 ++ np2.s) (mkVP v) ; + + ComplVV vv vp = { + s = \\p => + let + neg = polStr may_s p ; + v = vp.s ! Pos + in + case vv.typ of { + VVPre => vv.s ++ neg ++ v ; + VVMid => neg ++ vv.s ++ v ; + VVPost => v ++ neg ++ vv.s + } + } ; + -- -- ComplVS v s = insertObj (\\_ => conjThat ++ s.s) (predV v) ; -- ComplVQ v q = insertObj (\\_ => q.s ! QIndir) (predV v) ; @@ -27,10 +38,14 @@ concrete VerbTha of Verb = CatTha ** open ResTha, StringsTha, Prelude in { -- -- PassV2 v = insertObj (\\_ => v.s ! VPPart) (predAux auxBe) ; -- --- UseVS, UseVQ = \vv -> {s = vv.s ; c2 = [] ; isRefl = vv.isRefl} ; -- no "to" --- - CompAP ap = ap ; - CompNP = prefixSS pen_s ; --- CompAdv a = {s = \\_ => a.s} ; --- +-- UseVS, UseVQ = \vv -> {s = vv.s ; c2 = [] ; isRefl = vv.isRefl} ; + + CompAP ap = {s = \\p => polStr may_s p ++ ap.s} ; + CompNP np = {s = table { + Pos => pen_s ++ np.s ; + Neg => may_s ++ chay_s ++ np.s + } + } ; + CompAdv a = {s = \\p => polStr may_s p ++ a.s} ; --- ?? + } diff --git a/lib/resource-1.0/thai/thai.html b/lib/resource-1.0/thai/thai.html index c25215566..8d784936e 100644 --- a/lib/resource-1.0/thai/thai.html +++ b/lib/resource-1.0/thai/thai.html @@ -46,8 +46,8 @@ 0E2D อ O O - M 0E2E ฮ h' h - L 0E2F - - - - 0E30 ะ a a - 0E31 ั a. a + 0E30 ะ a. a + 0E31 ั a a 0E32 า a: aa 0E33 ำ a+ am 0E34 ิ i i diff --git a/src/GF/Text/Thai.hs b/src/GF/Text/Thai.hs index 207391c99..93b22b0d6 100644 --- a/src/GF/Text/Thai.hs +++ b/src/GF/Text/Thai.hs @@ -79,7 +79,7 @@ allThaiTrans = words $ "- k k1 - k2 - k3 g c c1 c2 s' c3 y' d' t' " ++ "t1 t2 t3 n' d t t4 t5 t6 n b p p1 f p2 f' " ++ "p3 m y r - l - w s- r' s h l' O h' - " ++ - "a a. a: a+ i i: v v: u u: - - - - - - " ++ + "a. a a: a+ i i: v v: u u: - - - - - - " ++ "e e' o: a% a& L R S T1 T2 T3 T4 K - - - " ++ "N0 N1 N2 N3 N4 N5 N6 N7 N8 N9 - - - - - - "