This commit is contained in:
lizazim
2015-01-07 23:44:49 +00:00
parent 60807dc830
commit 737809fe98
9 changed files with 202 additions and 106 deletions

View File

@@ -14,7 +14,7 @@ flags coding = utf8 ;
SC = {s : Particle => Style => Str ; isVP : Bool} ; SC = {s : Particle => Style => Str ; isVP : Bool} ;
Adv = Adverb ; -- {s : Style => Str ; prepositive : Bool ; compar : ComparSense} ; Adv = Adverb ; -- {s : Style => Str ; prepositive : Bool} ;
AdN = {s : Str ; postposition : Bool} ; AdN = {s : Str ; postposition : Bool} ;

View File

@@ -76,6 +76,13 @@ concrete ConjunctionJpn of Conjunction = CatJpn ** open ResJpn, Prelude in {
} ; } ;
prepositive = adv.prepositive prepositive = adv.prepositive
} ; } ;
ConjAdV conj adv = {
s = case conj.type of {
(And | Both) => conj.null ++ adv.and ;
Or => conj.null ++ adv.or
}
} ;
ConjNP conj np = { ConjNP conj np = {
s = \\st => case conj.type of { s = \\st => case conj.type of {
@@ -214,7 +221,17 @@ concrete ConjunctionJpn of Conjunction = CatJpn ** open ResJpn, Prelude in {
_ => True _ => True
} }
} ; } ;
BaseAdV x y = {
and = x.s ++ y.s ;
or = x.s ++ "か" ++ y.s
} ;
ConsAdV x xs = {
and = x.s ++ xs.and ;
or = x.s ++ "か" ++ xs.or
} ;
BaseNP x y = { BaseNP x y = {
and = \\st => x.s ! st ++ "と" ++ y.s ! st ; and = \\st => x.s ! st ++ "と" ++ y.s ! st ;
or = \\st => x.s ! st ++ "か" ++ y.s ! st ; or = \\st => x.s ! st ++ "か" ++ y.s ! st ;
@@ -343,6 +360,8 @@ concrete ConjunctionJpn of Conjunction = CatJpn ** open ResJpn, Prelude in {
missingSubj : Bool} ; missingSubj : Bool} ;
[Adv] = {and, or : Style => Str ; prepositive : Bool} ; [Adv] = {and, or : Style => Str ; prepositive : Bool} ;
[AdV] = {and, or : Str} ;
[NP] = {and, or, both : Style => Str ; prepositive : Style => Str ; [NP] = {and, or, both : Style => Str ; prepositive : Style => Str ;
needPart : Bool ; changePolar : Bool ; meaning : Speaker ; anim : Animateness} ; needPart : Bool ; changePolar : Bool ; meaning : Speaker ; anim : Animateness} ;

View File

@@ -7,26 +7,26 @@ flags coding = utf8 ;
ImpersCl vp = case vp.needSubject of { ImpersCl vp = case vp.needSubject of {
True => { True => {
s = table { s = table {
Wa => \\st,t,p => vp.prepositive ! st ++ "これは" ++ vp.obj ! st ++ Wa => \\st,t,p => vp.prepositive ! st ++ vp.obj ! st ++
vp.prep ++ vp.verb ! SomeoneElse ! Inanim ! st ! t ! p ; vp.prep ++ vp.verb ! SomeoneElse ! Inanim ! st ! t ! p ;
Ga => \\st,t,p => vp.prepositive ! st ++ "これが" ++ vp.obj ! st ++ Ga => \\st,t,p => vp.prepositive ! st ++ vp.obj ! st ++
vp.prep ++ vp.verb ! SomeoneElse ! Inanim ! st ! t ! p vp.prep ++ vp.verb ! SomeoneElse ! Inanim ! st ! t ! p
} ; } ;
te = table { te = table {
Wa => \\st,p => vp.prepositive ! st ++ "これは" ++ vp.obj ! st ++ Wa => \\st,p => vp.prepositive ! st ++ vp.obj ! st ++
vp.prep ++ vp.te ! SomeoneElse ! Inanim ! st ! p ; vp.prep ++ vp.te ! SomeoneElse ! Inanim ! st ! p ;
Ga => \\st,p => vp.prepositive ! st ++ "これが" ++ vp.obj ! st ++ Ga => \\st,p => vp.prepositive ! st ++ vp.obj ! st ++
vp.prep ++ vp.te ! SomeoneElse ! Inanim ! st ! p vp.prep ++ vp.te ! SomeoneElse ! Inanim ! st ! p
} ; } ;
ba = table { ba = table {
Wa => \\st,p => vp.prepositive ! st ++ "これは" ++ vp.obj ! st ++ Wa => \\st,p => vp.prepositive ! st ++ vp.obj ! st ++
vp.prep ++ vp.ba ! SomeoneElse ! Inanim ! st ! p ; vp.prep ++ vp.ba ! SomeoneElse ! Inanim ! st ! p ;
Ga => \\st,p => vp.prepositive ! st ++ "これが" ++ vp.obj ! st ++ Ga => \\st,p => vp.prepositive ! st ++ vp.obj ! st ++
vp.prep ++ vp.ba ! SomeoneElse ! Inanim ! st ! p vp.prep ++ vp.ba ! SomeoneElse ! Inanim ! st ! p
} ; } ;
subj = table { subj = table {
Wa => \\st => vp.prepositive ! st ++ "これは" ; Wa => \\st => vp.prepositive ! st ;
Ga => \\st => vp.prepositive ! st ++ "これが" Ga => \\st => vp.prepositive ! st
} ; } ;
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! SomeoneElse ! Inanim ! st ! t ! p ; pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! SomeoneElse ! Inanim ! st ! t ! p ;
pred_te = \\st,p => vp.obj ! st ++ vp.prep ++ vp.te ! SomeoneElse ! Inanim ! st ! p ; pred_te = \\st,p => vp.obj ! st ++ vp.prep ++ vp.te ! SomeoneElse ! Inanim ! st ! p ;
@@ -134,6 +134,50 @@ flags coding = utf8 ;
} ; } ;
changePolar = False changePolar = False
} ; } ;
ExistNPAdv np adv = case np.needPart of {
True => {
s = \\part,st,t,p => adv.s ! st ++ np.prepositive ! st ++ np.s ! st ++ "が" ++
mkExistV.verb ! SomeoneElse ! np.anim ! st ! t ! p ;
te = \\part,st,p => adv.s ! st ++ np.prepositive ! st ++ np.s ! st ++ "が" ++
mkExistV.te ! SomeoneElse ! np.anim ! st ! p ;
ba = \\part,st,p => adv.s ! st ++ np.prepositive ! st ++ np.s ! st ++ "が" ++
mkExistV.ba ! SomeoneElse ! np.anim ! st ! p ;
subj = \\part,st => adv.s ! st ++ np.prepositive ! st ++ np.s ! st ++ "が" ;
pred = \\st,t,p => mkExistV.verb ! SomeoneElse ! np.anim ! st ! t ! p ;
pred_te = \\st,p => mkExistV.te ! SomeoneElse ! np.anim ! st ! p ;
pred_ba = \\st,p => mkExistV.ba ! SomeoneElse ! np.anim ! st ! p ;
changePolar = np.changePolar
} ;
False => {
s = \\part,st,t,p => adv.s ! st ++ np.prepositive ! st ++ np.s ! st ++
mkExistV.verb ! SomeoneElse ! np.anim ! st ! t ! p ;
te = \\part,st,p => adv.s ! st ++ np.prepositive ! st ++ np.s ! st ++
mkExistV.te ! SomeoneElse ! np.anim ! st ! p ;
ba = \\part,st,p => adv.s ! st ++ np.prepositive ! st ++ np.s ! st ++
mkExistV.ba ! SomeoneElse ! np.anim ! st ! p ;
subj = \\part,st => adv.s ! st ++ np.prepositive ! st ++ np.s ! st ;
pred = \\st,t,p => mkExistV.verb ! SomeoneElse ! np.anim ! st ! t ! p ;
pred_te = \\st,p => mkExistV.te ! SomeoneElse ! np.anim ! st ! p ;
pred_ba = \\st,p => mkExistV.ba ! SomeoneElse ! np.anim ! st ! p ;
changePolar = np.changePolar
}
} ;
ExistIPAdv ip adv = {
s = \\part,st,t,p => case ip.how8many of {
True => adv.s ! st ++ ip.s_subj ! st ++ mkExistV.verb ! SomeoneElse ! ip.anim ! st ! t ! p ++ "か" ;
False => adv.s ! st ++ ip.s_subj ! st ++ "が" ++ mkExistV.verb ! SomeoneElse ! ip.anim ! st ! t ! p
++ "か"
} ;
s_plain_pred = \\part,st,t,p => case ip.how8many of {
True => adv.s ! st ++ ip.s_subj ! st ++
mkExistV.verb ! SomeoneElse ! ip.anim ! Plain ! t ! p ++ "か" ;
False => adv.s ! st ++ ip.s_subj ! st ++ "が" ++
mkExistV.verb ! SomeoneElse ! ip.anim ! Plain ! t ! p ++ "か"
} ;
changePolar = False
} ;
ProgrVP vp = { ProgrVP vp = {
verb = \\sp,a,st,t,p => vp.te ! sp ! a ! st ! Pos ++ (mkVerb "いる" Gr2).s ! st ! t ! p ; verb = \\sp,a,st,t,p => vp.te ! sp ! a ! st ! Pos ++ (mkVerb "いる" Gr2).s ! st ! t ! p ;
@@ -159,4 +203,27 @@ flags coding = utf8 ;
} ; } ;
type = Imper type = Imper
} ; } ;
SelfAdvVP vp = {
verb = \\sp,a,st,t,p => "自分 は" ++ vp.verb ! sp ! a ! st ! t ! p ;
a_stem = \\sp,a,st => "自分 は" ++ vp.a_stem ! sp ! a ! st ;
i_stem = \\sp,a,st => "自分 は" ++ vp.i_stem ! sp ! a ! st ;
te = \\sp,a,st,p => "自分 は" ++ vp.te ! sp ! a ! st ! p ;
ba = \\sp,a,st,p => "自分 は" ++ vp.ba ! sp ! a ! st ! p ;
prep = vp.prep ;
obj = vp.obj ;
prepositive = vp.prepositive ;
needSubject = vp.needSubject
} ;
SelfAdVVP = SelfAdvVP ;
SelfNP np = {
s = \\st => np.s ! st ++ "自分 は" ;
prepositive = np.prepositive ;
needPart = np.needPart ;
changePolar = np.changePolar ;
meaning = np.meaning ;
anim = np.anim
} ;
} }

View File

@@ -7,7 +7,7 @@ lin
add_V3 = mkV3 "加える" "に" "を" Gr2 ; -- "kuwaeru" add_V3 = mkV3 "加える" "に" "を" Gr2 ; -- "kuwaeru"
airplane_N = mkN "飛行機" Inanim "機" False ; -- "hikouki" "ki" airplane_N = mkN "飛行機" Inanim "機" False ; -- "hikouki" "ki"
alas_Interj = ss "残念です" ; -- "zannendesu" alas_Interj = ss "残念です" ; -- "zannendesu"
already_Adv = mkAdv "すでに" ; -- "sudeni" already_Adv = ResJpn.mkAdv "すでに" ; -- "sudeni"
animal_N = mkN "動物" Anim "疋" True ; -- "doubutsu" "hiki" animal_N = mkN "動物" Anim "疋" True ; -- "doubutsu" "hiki"
answer_V2S = mkV "答える" Gr2 ; -- "kotaeru" answer_V2S = mkV "答える" Gr2 ; -- "kotaeru"
apartment_N = mkN "アパート" Inanim ; -- "apaato" apartment_N = mkN "アパート" Inanim ; -- "apaato"
@@ -57,7 +57,7 @@ lin
ceiling_N = mkN "天井" Inanim ; -- "tenjou" ceiling_N = mkN "天井" Inanim ; -- "tenjou"
chair_N = mkN "椅子" Inanim "脚" False ; -- "isu" "kyaku" chair_N = mkN "椅子" Inanim "脚" False ; -- "isu" "kyaku"
cheese_N = mkN "チーズ" Inanim ; -- "chiizu" cheese_N = mkN "チーズ" Inanim ; -- "chiizu"
child_N = mkN "子供" Anim "人" False "子供たち" ; -- "kodomo" child_N = mkN "子供" Anim "人" False ; -- "kodomo"
church_N = mkN "教会" Inanim "軒" False ; -- "kyoukai" "ken" church_N = mkN "教会" Inanim "軒" False ; -- "kyoukai" "ken"
city_N = mkN "都市" Inanim ; -- "toshi" city_N = mkN "都市" Inanim ; -- "toshi"
clean_A = mkA "奇麗な" ; -- "kireina" ; clean_A = mkA "奇麗な" ; -- "kireina" ;
@@ -97,7 +97,7 @@ lin
eye_N = mkN "目" Inanim ; -- "me" eye_N = mkN "目" Inanim ; -- "me"
factory_N = mkN "工場" Inanim ; -- "koujou" factory_N = mkN "工場" Inanim ; -- "koujou"
fall_V = mkV "落ちる" Gr2 ; -- "ochiru" fall_V = mkV "落ちる" Gr2 ; -- "ochiru"
far_Adv = mkAdv "遠くに" ; -- "tookuni" far_Adv = ResJpn.mkAdv "遠くに" ; -- "tookuni"
father_N2 = mkN2 "お父さん" Anim "人" False "お父さんたち" "の" ; -- "otousan" father_N2 = mkN2 "お父さん" Anim "人" False "お父さんたち" "の" ; -- "otousan"
fat_N = mkN "脂" Inanim ; -- "abura" fat_N = mkN "脂" Inanim ; -- "abura"
fear_VS = mkV2 "恐れる" "ことを" Gr2 ; -- "osoreru" fear_VS = mkV2 "恐れる" "ことを" Gr2 ; -- "osoreru"
@@ -179,7 +179,7 @@ lin
like_V2 = mkV2 "好く" "を" Gr1 ; -- "suku" like_V2 = mkV2 "好く" "を" Gr1 ; -- "suku"
listen_V2 = mkV2 "聞く" "を" Gr1 ; -- "kiku" listen_V2 = mkV2 "聞く" "を" Gr1 ; -- "kiku"
liver_N = mkN "肝臓" Inanim ; -- "kanzou" liver_N = mkN "肝臓" Inanim ; -- "kanzou"
live_V = mkV "生きる" Gr2 ; -- "ikiru" live_V = mkV "住む" Gr1 ; -- "sumu"
long_A = mkA "長い" ; -- "nagai" long_A = mkA "長い" ; -- "nagai"
lose_V2 = mkV2 "失う" "を" Gr1 ; -- "ushinau" lose_V2 = mkV2 "失う" "を" Gr1 ; -- "ushinau"
louse_N = mkN "虱" Anim "匹" False ; -- "shirami" "hiki" louse_N = mkN "虱" Anim "匹" False ; -- "shirami" "hiki"
@@ -202,7 +202,7 @@ lin
newspaper_N = mkN "新聞" Inanim "部" False ; -- "shimbun" "bu" newspaper_N = mkN "新聞" Inanim "部" False ; -- "shimbun" "bu"
night_N = mkN "夜" Inanim "夜" True ; -- "yoru" "ya" night_N = mkN "夜" Inanim "夜" True ; -- "yoru" "ya"
nose_N = mkN "鼻" Inanim ; -- "hana" nose_N = mkN "鼻" Inanim ; -- "hana"
now_Adv = mkAdv "今" ; -- "ima" now_Adv = ResJpn.mkAdv "今" ; -- "ima"
number_N = mkN "数" Inanim "数" True ; -- "kazu" "suu" number_N = mkN "数" Inanim "数" True ; -- "kazu" "suu"
oil_N = mkN "油" Inanim ; -- "abura" oil_N = mkN "油" Inanim ; -- "abura"
old_A = mkA "古い" ; -- "furui" old_A = mkA "古い" ; -- "furui"
@@ -314,7 +314,7 @@ lin
think_V = mkV "考える" Gr2 ; -- "kangaeru" think_V = mkV "考える" Gr2 ; -- "kangaeru"
throw_V2 = mkV2 "投げる" "を" Gr2 ; -- "nageru" throw_V2 = mkV2 "投げる" "を" Gr2 ; -- "nageru"
tie_V2 = mkV2 "結ぶ" "を" Gr1 ; -- "musubu" tie_V2 = mkV2 "結ぶ" "を" Gr1 ; -- "musubu"
today_Adv = mkAdv "今日" ; -- "kyou" ; today_Adv = ResJpn.mkAdv "今日" ; -- "kyou" ;
tongue_N = mkN "舌" Inanim ; -- "shita" tongue_N = mkN "舌" Inanim ; -- "shita"
tooth_N = mkN "歯" Inanim ; -- "ha" tooth_N = mkN "歯" Inanim ; -- "ha"
train_N = mkN "電車" Inanim "列車" True ; -- "densha" "ressha" train_N = mkN "電車" Inanim "列車" True ; -- "densha" "ressha"

View File

@@ -18,7 +18,11 @@ oper
(men : Str) -> N = \n,a,c,b,pl -> lin N (numberNoun n a c b pl False) ; (men : Str) -> N = \n,a,c,b,pl -> lin N (numberNoun n a c b pl False) ;
mkN : (kane,okane : Str) -> (anim : Animateness) -> (counter : Str) -> mkN : (kane,okane : Str) -> (anim : Animateness) -> (counter : Str) ->
(counterReplace : Bool) -> N (counterReplace : Bool) -> N
= \kane,okane,a,c,b -> lin N (styleNoun kane okane a c b False) = \kane,okane,a,c,b -> lin N (styleNoun kane okane a c b False) ;
mkN : (tsuma,okusan : Str) -> (anim : Animateness) -> (counter : Str) ->
(counterReplace : Bool) -> (tsumatachi : Str) -> N
= \tsuma,okusan,a,c,b,tsumatachi ->
lin N (mkNoun tsuma okusan tsumatachi tsumatachi a c b False)
} ; } ;
mkN2 : (man : Str) -> (anim : Animateness) -> (counter : Str) -> (counterReplace : Bool) -> mkN2 : (man : Str) -> (anim : Animateness) -> (counter : Str) -> (counterReplace : Bool) ->

View File

@@ -13,12 +13,14 @@ flags coding = utf8 ;
} ; } ;
VocPres => case utt.type of { VocPres => case utt.type of {
ImpPolite => voc.s ! Resp ++ "、" ++ pconj.s ++ utt.s ! Wa ! Resp ; ImpPolite => voc.s ! Resp ++ "、" ++ pconj.s ++ utt.s ! Wa ! Resp ;
Imper => voc.s ! Plain ++ "、" ++ pconj.s ++ utt.s ! Wa ! Plain ; (Imper|NoImp) => voc.s ! Resp ++ "、" ++ pconj.s ++ utt.s ! Wa ! Resp
NoImp => voc.s ! Plain ++ "、" ++ pconj.s ++ utt.s ! Wa ! Plain -- 1) change default style here
} ; } ;
VocAbs => case utt.type of { VocAbs => case utt.type of {
(Imper|ImpPolite) => voc.s ! Plain ++ pconj.s ++ utt.s ! Wa ! Plain ; (Imper|ImpPolite) => voc.s ! Resp ++ pconj.s ++ utt.s ! Wa ! Resp ;
NoImp => voc.s ! Plain ++ pconj.s ++ utt.s ! Wa ! Plain -- 2) here
NoImp => voc.s ! Resp ++ pconj.s ++ utt.s ! Wa ! Resp
-- 3) and here
} }
} }
} ; } ;

View File

@@ -335,7 +335,7 @@ oper
prep2 = p2 prep2 = p2
} ; } ;
mkCopula = { mkCopula : Verb = {
s = table { s = table {
Resp => table { Resp => table {
(TPres|TFut) => table { (TPres|TFut) => table {
@@ -365,7 +365,9 @@ oper
ba = table { ba = table {
Pos => "であれば" ; Pos => "であれば" ;
Neg => "でなければ" Neg => "でなければ"
} } ;
a_stem, i_stem = "で" ; -- not used
needSubject = True -- not used
} ; } ;
mkExistV : VP = { mkExistV : VP = {
@@ -685,16 +687,16 @@ oper
} ; } ;
mkRain : Verb = { mkRain : Verb = {
s = \\st,t,p => "雨が" ++ (mkVerb "降る" Gr1).s ! st ! t ! p ; -- "ame ga furu" s = \\st,t,p => "雨が" ++ (mkVerb "降っている" Gr2).s ! st ! t ! p ; -- "ame ga furu"
te = table { te = table {
Pos => "雨が降って" ; Pos => "雨が降っていて" ;
Neg => "雨が降ないで" Neg => "雨が降っていないで"
} ; } ;
a_stem = "雨が降" ; a_stem = "雨が降ってい" ;
i_stem = "雨が降" ; i_stem = "雨が降ってい" ;
ba = table { ba = table {
Pos => "雨が降れば" ; Pos => "雨が降っていれば" ;
Neg => "雨が降なければ" Neg => "雨が降っていなければ"
} ; } ;
needSubject = False needSubject = False
} ; } ;

View File

@@ -1,115 +1,115 @@
concrete StructuralJpn of Structural = CatJpn ** open ResJpn, ParadigmsJpn, Prelude in { concrete StructuralJpn of Structural = CatJpn ** open (R = ResJpn), ParadigmsJpn, Prelude in {
flags coding = utf8 ; flags coding = utf8 ;
lin lin
above_Prep = mkPrep "の上に" ; -- "noueni" above_Prep = R.mkPrep "の上に" ; -- "noueni"
after_Prep = mkPrep "の後に" ; -- "noatoni" after_Prep = R.mkPrep "の後に" ; -- "noatoni"
all_Predet = {s = "全部" ; not = False} ; all_Predet = {s = "全部" ; not = False} ;
almost_AdA = ss "殆ど" ; -- "hotondo" almost_AdA = ss "殆ど" ; -- "hotondo"
almost_AdN = {s = "殆ど" ; postposition = False} ; almost_AdN = {s = "殆ど" ; postposition = False} ;
although_Subj = mkSubj "のに" OtherSubj ; although_Subj = R.mkSubj "のに" R.OtherSubj ;
always_AdV = ss "いつも" ; always_AdV = ss "いつも" ;
and_Conj = mkConj "そして" And ; and_Conj = R.mkConj "そして" R.And ;
because_Subj = mkSubj "から" OtherSubj ; because_Subj = R.mkSubj "から" R.OtherSubj ;
before_Prep = mkPrep "の前に" ; -- "nomaeni" before_Prep = R.mkPrep "の前に" ; -- "nomaeni"
behind_Prep = mkPrep "後ろに" ; -- "ushironi" behind_Prep = R.mkPrep "後ろに" ; -- "ushironi"
between_Prep = mkPrep "の間に" ; -- "noaidani" between_Prep = R.mkPrep "の間に" ; -- "noaidani"
both7and_DConj = mkConj "そして" Both ; both7and_DConj = R.mkConj "そして" R.Both ;
by8agent_Prep = mkPrep "に" ; by8agent_Prep = R.mkPrep "に" ;
by8means_Prep = mkPrep "によって" ; by8means_Prep = R.mkPrep "" ;
but_PConj = ss "けれども" ; but_PConj = ss "けれども" ;
can8know_VV = mkCan ; can8know_VV = R.mkCan ;
can_VV = can8know_VV ; can_VV = can8know_VV ;
during_Prep = mkPrep "の間に" ; -- "noaidani" during_Prep = R.mkPrep "の間に" ; -- "noaidani"
either7or_DConj = mkConj "それとも" Or ; either7or_DConj = R.mkConj "それとも" R.Or ;
every_Det = mkDet "全ての" "全て" Sg ; -- "subeteno" every_Det = R.mkDet "全ての" "全て" R.Sg ; -- "subeteno"
everybody_NP = mkNP "皆" True False Anim ; -- "minna" everybody_NP = R.mkNP "皆" True False R.Anim ; -- "minna"
everything_NP = mkNP "全て" True False Inanim ; -- "subete" everything_NP = R.mkNP "全て" True False R.Inanim ; -- "subete"
everywhere_Adv = mkAdv "どこでも" ; -- "dokodemo" everywhere_Adv = R.mkAdv "どこでも" ; -- "dokodemo"
first_Ord = mkFirst ; -- first_Ord = R.mkFirst ;
few_Det = mkDet "少数の" "少数" Pl ; -- "shoosuuno" few_Det = R.mkDet "少数の" "少数" R.Pl ; -- "shoosuuno"
for_Prep = mkPrep "のために" ; for_Prep = R.mkPrep "用" ; -- "you" "のために"
from_Prep = mkPrep "から" ; from_Prep = R.mkPrep "から" ;
he_Pron = mkPron "彼" False Anim ; -- "kare" he_Pron = mkPron "彼" False R.Anim ; -- "kare"
here_Adv = mkAdv "ここで" ; here_Adv = R.mkAdv "ここで" ;
here7to_Adv = mkAdv "ここに" ; here7to_Adv = R.mkAdv "ここに" ;
here7from_Adv = mkAdv "ここから" ; here7from_Adv = R.mkAdv "ここから" ;
how_IAdv = {s = \\st => "どのように" ; particle = "" ; wh8re = False} ; how_IAdv = {s = \\st => "どのように" ; particle = "" ; wh8re = False} ;
how8many_IDet = {s = "いくつ" ; n = Pl ; how8many = True ; inclCard = False} ; how8many_IDet = {s = "いくつ" ; n = R.Pl ; how8many = True ; inclCard = False} ;
how8much_IAdv = {s = \\st => "いくら" ; particle = "" ; wh8re = False} ; how8much_IAdv = {s = \\st => "いくら" ; particle = "" ; wh8re = False} ;
i_Pron = mkPron "私" "私" True Anim ; -- "watashi" i_Pron = mkPron "私" "私" True R.Anim ; -- "watashi"
if_Subj = mkSubj "" If ; if_Subj = R.mkSubj "" R.If ;
in8front_Prep = mkPrep "の前に" ; -- "nomaeni" in8front_Prep = R.mkPrep "の前に" ; -- "nomaeni"
in_Prep = mkPrep "に" ; in_Prep = R.mkPrep "に" ;
it_Pron = mkPron "それ" False Inanim ; it_Pron = mkPron "それ" False R.Inanim ;
less_CAdv = {s = "より" ; less = True ; s_adn = "以下"} ; -- "ika" less_CAdv = {s = "より" ; less = True ; s_adn = "以下"} ; -- "ika"
many_Det = mkDet "多くの" "多く" Pl ; -- "ookuno" many_Det = R.mkDet "多くの" "多く" R.Pl ; -- "ookuno"
more_CAdv = {s = "より" ; less = False ; s_adn = "以上"} ; -- "ijou" more_CAdv = {s = "より" ; less = False ; s_adn = "以上"} ; -- "ijou"
most_Predet = {s = "ほとんどの" ; not = False} ; most_Predet = {s = "ほとんどの" ; not = False} ;
much_Det = mkDet "多くの" "多量" Sg ; -- "ookuno" "taryou" much_Det = R.mkDet "多くの" "多量" R.Sg ; -- "ookuno" "taryou"
must_VV = mkMust ; must_VV = R.mkMust ;
no_Phr = {s = "いいえ"} ; -- no_Phr = {s = "いいえ"} ;
no_Utt = {s = \\part,st => "いいえ" ; type = NoImp} ; no_Utt = {s = \\part,st => "いいえ" ; type = R.NoImp} ;
on_Prep = mkPrep "の上に" ; -- "noueni" on_Prep = R.mkPrep "の上に" ; -- "noueni"
only_Predet = {s = "ほんの" ; not = False} ; only_Predet = {s = "ほんの" ; not = False} ;
or_Conj = mkConj "それとも" Or ; or_Conj = R.mkConj "それとも" R.Or ;
otherwise_PConj = ss "そうしなければ" ; otherwise_PConj = ss "そうしなければ" ;
part_Prep = mkPrep "の" ; part_Prep = R.mkPrep "の" ;
please_Voc = {s = \\st => "ください" ; type = Please ; null = ""} ; please_Voc = {s = \\st => "ください" ; type = R.Please ; null = ""} ;
possess_Prep = mkPrep "の" ; possess_Prep = R.mkPrep "の" ;
quite_Adv = ss "可成" ; -- "kanari" quite_Adv = ss "可成" ; -- "kanari"
she_Pron = mkPron "彼女" False Anim ; -- "kanojo" she_Pron = mkPron "彼女" False R.Anim ; -- "kanojo"
so_AdA = ss "非常に" ; -- "hijooni" so_AdA = ss "非常に" ; -- "hijooni"
someSg_Det = mkDet "多少の" "幾らか" Sg ; -- "tashoono" "ikuraka" someSg_Det = R.mkDet "多少の" "幾らか" R.Sg ; -- "tashoono" "ikuraka"
somePl_Det = mkDet "いくつかの" "幾らか" Pl ; -- "ikuraka" somePl_Det = R.mkDet "いくつかの" "幾らか" R.Pl ; -- "ikuraka"
somebody_NP = mkNP "誰か" False False Anim ; -- "dareka" somebody_NP = R.mkNP "誰か" False False R.Anim ; -- "dareka"
something_NP = mkNP "何か" False False Inanim ; -- "nanika" something_NP = R.mkNP "何か" False False R.Inanim ; -- "nanika"
somewhere_Adv = mkAdv "どこかに" ; somewhere_Adv = R.mkAdv "どこかに" ;
that_Quant = {s = \\st => "その" ; sp = \\st => "それ" ; no = False} ; that_Quant = {s = \\st => "その" ; sp = \\st => "それ" ; no = False} ;
that_Subj = mkSubj "ことを" That ; that_Subj = R.mkSubj "ことを" R.That ;
there_Adv = mkAdv "そこで" ; there_Adv = R.mkAdv "そこで" ;
there7to_Adv = mkAdv "そこに" ; there7to_Adv = R.mkAdv "そこに" ;
there7from_Adv = mkAdv "そこから" ; there7from_Adv = R.mkAdv "そこから" ;
therefore_PConj = ss "それで" ; therefore_PConj = ss "それで" ;
they_Pron = mkPron "彼ら" "あの人達" False Anim ; -- "karera" "ano hito-tachi" they_Pron = mkPron "彼ら" "あの人達" False R.Anim ; -- "karera" "ano hito-tachi"
this_Quant = {s = \\st => "この" ; sp = \\st => "これ" ; no = False} ; this_Quant = {s = \\st => "この" ; sp = \\st => "これ" ; no = False} ;
through_Prep = mkPrep "を通じて" ; -- "otsuujite" through_Prep = R.mkPrep "を通じて" ; -- "otsuujite"
to_Prep = mkPrep "に" ; to_Prep = R.mkPrep "に" ;
too_AdA = ss "あまりにも" ; too_AdA = ss "あまりにも" ;
under_Prep = mkPrep "の下に" ; -- "noshitani" under_Prep = R.mkPrep "の下に" ; -- "noshitani"
very_AdA = ss "とても" ; very_AdA = ss "とても" ;
want_VV = mkWant ; want_VV = R.mkWant ;
we_Pron = mkPron "私達" False Anim ; -- "watashitachi" we_Pron = mkPron "私達" False R.Anim ; -- "watashitachi"
whatPl_IP = {s_subj, s_obj = \\st => "何" ; anim = Inanim ; how8many = False} ; -- "nani" whatPl_IP = {s_subj, s_obj = \\st => "何" ; anim = R.Inanim ; how8many = False} ; -- "nani"
whatSg_IP = {s_subj, s_obj = \\st => "何" ; anim = Inanim ; how8many = False} ; whatSg_IP = {s_subj, s_obj = \\st => "何" ; anim = R.Inanim ; how8many = False} ;
when_IAdv = {s = \\st => "いつ" ; particle = "" ; wh8re = False} ; when_IAdv = {s = \\st => "いつ" ; particle = "" ; wh8re = False} ;
when_Subj = mkSubj "と" OtherSubj ; when_Subj = R.mkSubj "と" R.OtherSubj ;
where_IAdv = {s = \\st => "どこ" ; particle = "で" ; wh8re = True} ; where_IAdv = {s = \\st => "どこ" ; particle = "で" ; wh8re = True} ;
which_IQuant = ss "どの" ; which_IQuant = ss "どの" ;
whoPl_IP = {s_subj, s_obj = \\st => "誰" ; anim = Anim ; how8many = False} ; -- "dare" whoPl_IP = {s_subj, s_obj = \\st => "誰" ; anim = R.Anim ; how8many = False} ; -- "dare"
whoSg_IP = {s_subj, s_obj = \\st => "誰" ; anim = Anim ; how8many = False} ; whoSg_IP = {s_subj, s_obj = \\st => "誰" ; anim = R.Anim ; how8many = False} ;
why_IAdv = {s = \\st => "どうして" ; particle = "" ; wh8re = False} ; why_IAdv = {s = \\st => "どうして" ; particle = "" ; wh8re = False} ;
with_Prep = mkPrep "と" ; with_Prep = R.mkPrep "と" ;
without_Prep = mkPrep "無しで" ; -- "nashide" without_Prep = R.mkPrep "無しで" ; -- "nashide"
yes_Phr = {s = "はい"} ; -- yes_Phr = {s = "はい"} ;
yes_Utt = {s = \\part,st => "はい" ; type = NoImp} ; yes_Utt = {s = \\part,st => "はい" ; type = R.NoImp} ;
youSg_Pron = mkPron "あなた" "あなた" False Anim ; youSg_Pron = mkPron "あなた" "あなた" False R.Anim ;
youPl_Pron = mkPron "あなた達" "あなた方" False Anim ; -- "anatatachi" "anatagata" youPl_Pron = mkPron "あなた達" "あなた方" False R.Anim ; -- "anatatachi" "anatagata"
youPol_Pron = mkPron "あなた" False Anim ; youPol_Pron = mkPron "あなた" False R.Anim ;
no_Quant = {s = \\st => "" ; sp = \\st => "何も" ; no = True} ; -- "nanimo" no_Quant = {s = \\st => "" ; sp = \\st => "何も" ; no = True} ; -- "nanimo"
not_Predet = {s = "" ; not = True} ; not_Predet = {s = "" ; not = True} ;
at_least_AdN = {s = "少なくとも" ; postposition = False} ; -- "sukunakutomo" at_least_AdN = {s = "少なくとも" ; postposition = False} ; -- "sukunakutomo"
at_most_AdN = {s = "せいぜい" ; postposition = False} ; at_most_AdN = {s = "せいぜい" ; postposition = False} ;
nobody_NP = mkNP "誰も" False True Anim ; -- "daremo" nobody_NP = R.mkNP "誰も" False True R.Anim ; -- "daremo"
nothing_NP = mkNP "何も" False True Inanim ; -- "nanimo" nothing_NP = R.mkNP "何も" False True R.Inanim ; -- "nanimo"
except_Prep = mkPrep "を除いて" ; except_Prep = R.mkPrep "を除いて" ;
as_CAdv = {s = "と同じぐらい" ; less = False ; s_adn = "もの"} ; as_CAdv = {s = "と同じぐらい" ; less = False ; s_adn = "もの"} ;
have_V2 = mkV2 "持っている" "を" Gr2 ; have_V2 = mkV2 "持っている" "を" R.Gr2 ;
language_title_Utt = {s = \\part,st => "日本語" ; type = NoImp} ; -- "nihongo" language_title_Utt = {s = \\part,st => "日本語" ; type = R.NoImp} ; -- "nihongo"
} }

View File

@@ -322,6 +322,8 @@ concrete VerbJpn of Verb = CatJpn ** open ResJpn, Prelude in {
needSubject = vp.needSubject needSubject = vp.needSubject
} ; } ;
ExtAdvVP = AdvVP ;
AdVVP adv vp = { AdVVP adv vp = {
verb = vp.verb ; verb = vp.verb ;
te = vp.te ; te = vp.te ;