forked from GitHub/gf-core
Liza's patch to Jap
This commit is contained in:
@@ -9,42 +9,38 @@ flags coding = utf8 ;
|
||||
attr = \\st => adj.attr ;
|
||||
te = \\st => adj.te ;
|
||||
ba = \\st => adj.ba ;
|
||||
adv = \\st => adj.adv ;
|
||||
prepositive = \\st => [] ;
|
||||
compar = NoCompar ;
|
||||
adv = \\st => adj.adv ! Pos ;
|
||||
prepositive = \\st => [] ;
|
||||
dropNaEnging = \\st => adj.dropNaEnging
|
||||
} ;
|
||||
|
||||
ComparA adj np = {
|
||||
pred = \\st,t,p => np.s ! st ++ "より" ++ adj.pred ! st ! t ! p ;
|
||||
pred = \\st,t,p => np.s ! st ++ "より" ++ adj.pred ! st ! t ! p ;
|
||||
attr = \\st => np.s ! st ++ "より" ++ adj.attr ;
|
||||
te = \\st => np.s ! st ++ "より" ++ adj.te ;
|
||||
ba = \\st => np.s ! st ++ "より" ++ adj.ba ;
|
||||
adv = \\st => np.s ! st ++ "より" ++ adj.adv ;
|
||||
te = \\st,p => np.s ! st ++ "より" ++ adj.te ! p ;
|
||||
ba = \\st,p => np.s ! st ++ "より" ++ adj.ba ! p ;
|
||||
adv = \\st => np.s ! st ++ "より" ++ adj.adv ! Pos ;
|
||||
prepositive = np.prepositive ;
|
||||
compar = More ;
|
||||
dropNaEnging = \\st => np.s ! st ++ "より" ++ adj.dropNaEnging ;
|
||||
} ;
|
||||
|
||||
ComplA2 a2 np = {
|
||||
pred = \\st,t,p => np.s ! st ++ a2.prep ++ a2.pred ! st ! t ! p ;
|
||||
attr = \\st => np.s ! st ++ a2.prep ++ a2.attr ;
|
||||
te = \\st => np.s ! st ++ a2.prep ++ a2.te ;
|
||||
ba = \\st => np.s ! st ++ a2.prep ++ a2.ba ;
|
||||
te = \\st,p => np.s ! st ++ a2.prep ++ a2.te ! p ;
|
||||
ba = \\st,p => np.s ! st ++ a2.prep ++ a2.ba ! p ;
|
||||
prepositive = np.prepositive ;
|
||||
adv = \\st => [] ;
|
||||
compar = NoCompar ;
|
||||
adv = \\st => np.s ! st ++ a2.prep ++ a2.adv ! Pos ;
|
||||
dropNaEnging = \\st => np.s ! st ++ a2.prep ++ a2.dropNaEnging
|
||||
} ;
|
||||
|
||||
ReflA2 a2 = {
|
||||
pred = \\st,t,p => "自分" ++ a2.prep ++ a2.pred ! st ! t ! p ; -- "jibun"
|
||||
attr = \\st => "自分" ++ a2.prep ++ a2.attr ;
|
||||
te = \\st => "自分" ++ a2.prep ++ a2.te ;
|
||||
ba = \\st => "自分" ++ a2.prep ++ a2.ba ;
|
||||
adv = \\st => [] ;
|
||||
te = \\st,p => "自分" ++ a2.prep ++ a2.te ! p ;
|
||||
ba = \\st,p => "自分" ++ a2.prep ++ a2.ba ! p ;
|
||||
adv = \\st => "自分" ++ a2.prep ++ a2.adv ! Pos ;
|
||||
prepositive = \\st => [] ;
|
||||
compar = NoCompar ;
|
||||
dropNaEnging = \\st => "自分" ++ a2.prep ++ a2.dropNaEnging
|
||||
} ;
|
||||
|
||||
@@ -53,32 +49,53 @@ flags coding = utf8 ;
|
||||
attr = \\st => a2.attr ;
|
||||
te = \\st => a2.te ;
|
||||
ba = \\st => a2.ba ;
|
||||
adv = \\st => [] ;
|
||||
adv = \\st => a2.adv ! Pos ;
|
||||
prepositive = \\st => [] ;
|
||||
compar = NoCompar ;
|
||||
dropNaEnging = \\st => a2.dropNaEnging
|
||||
} ;
|
||||
|
||||
UseComparA adj = {
|
||||
pred = \\st,t,p => "もっと" ++ adj.pred ! st ! t ! p ;
|
||||
attr = \\st => "もっと" ++ adj.attr ;
|
||||
te = \\st => "もっと" ++ adj.te ;
|
||||
ba = \\st => "もっと" ++ adj.ba ;
|
||||
adv = \\st => "もっと" ++ adj.adv ;
|
||||
te = \\st,p => "もっと" ++ adj.te ! p ;
|
||||
ba = \\st,p => "もっと" ++ adj.ba ! p ;
|
||||
adv = \\st => "もっと" ++ adj.adv ! Pos ;
|
||||
prepositive = \\st => [] ;
|
||||
compar = NoCompar ; -- "motto" does not change the main NP's particle
|
||||
dropNaEnging = \\st => "もっと" ++ adj.dropNaEnging
|
||||
} ;
|
||||
|
||||
CAdvAP cadv ap np = {
|
||||
pred = \\st,t,p => np.s ! st ++ cadv.s ++ ap.pred ! st ! t ! p ;
|
||||
attr = \\st => np.s ! st ++ cadv.s ++ ap.attr ! st ;
|
||||
te = \\st => np.s ! st ++ cadv.s ++ ap.te ! st ;
|
||||
ba = \\st => np.s ! st ++ cadv.s ++ ap.ba ! st ;
|
||||
pred = \\st,t => case cadv.less of {
|
||||
True => table {
|
||||
Pos => np.s ! st ++ cadv.s ++ ap.pred ! st ! t ! Neg ;
|
||||
Neg => np.s ! st ++ cadv.s ++ ap.pred ! st ! t ! Pos
|
||||
} ;
|
||||
False => \\p => np.s ! st ++ cadv.s ++ ap.pred ! st ! t ! p
|
||||
} ;
|
||||
attr = \\st => case cadv.less of {
|
||||
True => np.s ! st ++ cadv.s ++ ap.pred ! Plain ! TPres ! Neg ;
|
||||
False => np.s ! st ++ cadv.s ++ ap.attr ! st
|
||||
} ;
|
||||
te = \\st => case cadv.less of {
|
||||
True => table {
|
||||
Pos => np.s ! st ++ cadv.s ++ ap.te ! st ! Neg ;
|
||||
Neg => np.s ! st ++ cadv.s ++ ap.te ! st ! Pos
|
||||
} ;
|
||||
False => \\p => np.s ! st ++ cadv.s ++ ap.te ! st ! p
|
||||
} ;
|
||||
ba = \\st => case cadv.less of {
|
||||
True => table {
|
||||
Pos => np.s ! st ++ cadv.s ++ ap.ba ! st ! Neg ;
|
||||
Neg => np.s ! st ++ cadv.s ++ ap.ba ! st ! Pos
|
||||
} ;
|
||||
False => \\p => np.s ! st ++ cadv.s ++ ap.ba ! st ! p
|
||||
} ;
|
||||
adv = \\st => np.s ! st ++ cadv.s ++ ap.adv ! st ;
|
||||
prepositive = np.prepositive ;
|
||||
compar = cadv.compar ;
|
||||
dropNaEnging = \\st => np.s ! st ++ cadv.s ++ ap.dropNaEnging ! st
|
||||
dropNaEnging = \\st => case cadv.less of {
|
||||
True => np.s ! st ++ cadv.s ++ ap.pred ! Plain ! TPres ! Neg ;
|
||||
False => np.s ! st ++ cadv.s ++ ap.dropNaEnging ! st
|
||||
}
|
||||
} ;
|
||||
|
||||
AdjOrd ord = {
|
||||
@@ -86,31 +103,28 @@ flags coding = utf8 ;
|
||||
attr = \\st => ord.attr ;
|
||||
te = \\st => ord.te ;
|
||||
ba = \\st => ord.ba ;
|
||||
adv = \\st => ord.adv ;
|
||||
adv = \\st => ord.adv ! Pos ;
|
||||
prepositive = \\st => [] ;
|
||||
compar = NoCompar ;
|
||||
dropNaEnging = \\st => ord.dropNaEnging
|
||||
} ;
|
||||
|
||||
SentAP ap sc = {
|
||||
pred = \\st,t,p => sc.s ! Ga ! st ++ "ことを" ++ ap.pred ! st ! t ! p ;
|
||||
attr = \\st => sc.s ! Ga ! st ++ "ことを" ++ ap.attr ! st ;
|
||||
te = \\st => sc.s ! Ga ! st ++ "ことを" ++ ap.te ! st ;
|
||||
ba = \\st => sc.s ! Ga ! st ++ "ことを" ++ ap.ba ! st ;
|
||||
adv = \\st => sc.s ! Ga ! st ++ "ことを" ++ ap.adv ! st ;
|
||||
pred = \\st,t,p => sc.s ! Wa ! st ++ "ことが" ++ ap.pred ! st ! t ! p ;
|
||||
attr = \\st => sc.s ! Wa ! st ++ "ことが" ++ ap.attr ! st ;
|
||||
te = \\st,p => sc.s ! Wa ! st ++ "ことが" ++ ap.te ! st ! p ;
|
||||
ba = \\st,p => sc.s ! Wa ! st ++ "ことが" ++ ap.ba ! st ! p ;
|
||||
adv = \\st => sc.s ! Wa ! st ++ "ことが" ++ ap.adv ! st ;
|
||||
prepositive = ap.prepositive ;
|
||||
compar = ap.compar ;
|
||||
dropNaEnging = \\st => sc.s ! Ga ! st ++ "ことを" ++ ap.dropNaEnging ! st
|
||||
dropNaEnging = \\st => sc.s ! Wa ! st ++ "ことが" ++ ap.dropNaEnging ! st
|
||||
} ;
|
||||
|
||||
AdAP ada ap = {
|
||||
pred = \\st,t,p => ada.s ++ ap.pred ! st ! t ! p ;
|
||||
attr = \\st => ada.s ++ ap.attr ! st ;
|
||||
te = \\st => ada.s ++ ap.te ! st ;
|
||||
ba = \\st => ada.s ++ ap.ba ! st ;
|
||||
te = \\st,p => ada.s ++ ap.te ! st ! p ;
|
||||
ba = \\st,p => ada.s ++ ap.ba ! st ! p ;
|
||||
adv = \\st => ada.s ++ ap.adv ! st ;
|
||||
prepositive = ap.prepositive ;
|
||||
compar = ap.compar ;
|
||||
dropNaEnging = \\st => ada.s ++ ap.dropNaEnging ! st
|
||||
} ;
|
||||
|
||||
@@ -125,11 +139,11 @@ flags coding = utf8 ;
|
||||
} ;
|
||||
te = \\st => case adv.prepositive of {
|
||||
True => ap.te ! st ;
|
||||
False => adv.s ! st ++ ap.te ! st
|
||||
False => \\p => adv.s ! st ++ ap.te ! st ! p
|
||||
} ;
|
||||
ba = \\st => case adv.prepositive of {
|
||||
True => ap.ba ! st ;
|
||||
False => adv.s ! st ++ ap.ba ! st
|
||||
False => \\p => adv.s ! st ++ ap.ba ! st ! p
|
||||
} ;
|
||||
adv = \\st => case adv.prepositive of {
|
||||
True => ap.adv ! st ;
|
||||
@@ -139,7 +153,6 @@ flags coding = utf8 ;
|
||||
True => adv.s ! st ;
|
||||
False => []
|
||||
} ;
|
||||
compar = ap.compar ;
|
||||
dropNaEnging = \\st => case adv.prepositive of {
|
||||
True => ap.dropNaEnging ! st ;
|
||||
False => adv.s ! st ++ ap.dropNaEnging ! st
|
||||
|
||||
@@ -4,37 +4,38 @@ flags coding = utf8 ;
|
||||
|
||||
lin
|
||||
|
||||
PositAdvAdj a = {s = \\st => a.adv ; prepositive = False ; compar = NoCompar} ;
|
||||
PositAdvAdj a = {s = \\st => a.adv ! Pos ; prepositive = False} ;
|
||||
|
||||
PrepNP prep np = {s = \\st => np.s ! st ++ prep.s ;
|
||||
prepositive = False ; compar = NoCompar} ;
|
||||
prepositive = False} ;
|
||||
|
||||
ComparAdvAdj cadv a np = {s = \\st => np.s ! st ++ cadv.s ++ a.adv ;
|
||||
prepositive = False ; compar = cadv.compar} ;
|
||||
ComparAdvAdj cadv a np = {
|
||||
s = \\st => case cadv.less of {
|
||||
True => np.s ! st ++ cadv.s ++ a.adv ! Neg ;
|
||||
False => np.s ! st ++ cadv.s ++ a.adv ! Pos
|
||||
} ;
|
||||
prepositive = False} ;
|
||||
|
||||
ComparAdvAdjS cadv a s = {s = \\st => s.s ! Ga ! Plain ++ "こと" ++ cadv.s ++ a.adv ;
|
||||
prepositive = False ; compar = cadv.compar} ;
|
||||
ComparAdvAdjS cadv a s = {
|
||||
s = \\st => case cadv.less of {
|
||||
True => s.subj ! Ga ! st ++ s.pred ! Plain ++ cadv.s ++ a.adv ! Neg ;
|
||||
False => s.subj ! Ga ! st ++ s.pred ! Plain ++ cadv.s ++ a.adv ! Pos
|
||||
} ;
|
||||
prepositive = False} ;
|
||||
|
||||
AdAdv ada adv = {s = \\st => ada.s ++ adv.s ! st ;
|
||||
prepositive = adv.prepositive ; compar = NoCompar} ;
|
||||
prepositive = adv.prepositive} ;
|
||||
|
||||
PositAdAAdj a = {s = a.adv} ;
|
||||
PositAdAAdj a = {s = a.adv ! Pos } ;
|
||||
|
||||
SubjS subj s = {
|
||||
s = \\st => case subj.type of {
|
||||
If => s.ba ! (Wa | Ga) ! st ++ subj.s ;
|
||||
_ => s.s ! (Wa | Ga) ! st ++ subj.s
|
||||
|
||||
If => s.ba ! Wa ! st ++ subj.s ;
|
||||
_ => s.s ! Wa ! st ++ subj.s
|
||||
} ;
|
||||
prepositive = True ;
|
||||
compar = NoCompar
|
||||
prepositive = True
|
||||
} ;
|
||||
|
||||
AdnCAdv cadv = {
|
||||
s = case cadv.compar of {
|
||||
More => "以上" ; -- "ijou"
|
||||
Less => "以下" ; -- "ika" ;
|
||||
NoCompar => "もの"
|
||||
} ;
|
||||
postposition = True
|
||||
} ;
|
||||
}
|
||||
AdnCAdv cadv = {s = cadv.s_adn ; postposition = True} ;
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
--# -path=.:../abstract:../common:../prelude
|
||||
|
||||
concrete AllJap of AllJapAbs =
|
||||
LangJap
|
||||
-- ExtraJap
|
||||
** {} ;
|
||||
--# -path=.:../abstract:../common:../prelude
|
||||
|
||||
concrete AllJap of AllJapAbs =
|
||||
LangJap,
|
||||
ExtraJap
|
||||
** {} ;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
abstract AllJapAbs =
|
||||
Lang
|
||||
-- ExtraJapAbs
|
||||
** {} ;
|
||||
abstract AllJapAbs =
|
||||
Lang,
|
||||
ExtraJapAbs
|
||||
** {} ;
|
||||
|
||||
@@ -9,86 +9,81 @@ flags coding = utf8 ;
|
||||
lincat
|
||||
|
||||
S = {s, te, ba, subj : Particle => Style => Str ; pred, pred_te, pred_ba : Style => Str} ;
|
||||
QS = {s : Particle => Style => Str} ;
|
||||
QS = {s : Particle => Style => Str ; s_plain_pred : Particle => Style => Str} ;
|
||||
RS = {s, te, pred, pred_te, pred_ba : Animateness => Style => Str ;
|
||||
subj : Particle => Style => Str ; missingSubj : Bool} ;
|
||||
Cl = {s : Particle => Style => TTense => Polarity => Str ;
|
||||
te, ba, subj : Particle => Style => Str ;
|
||||
pred : Style => TTense => Polarity => Str ;
|
||||
pred_te, pred_ba : Style => Str ;
|
||||
changePolar : Bool} ;
|
||||
ClSlash = {s : Style => TTense => Polarity => Str ;
|
||||
te : Style => Str ;
|
||||
subj : Particle => Style => Str ;
|
||||
pred : Style => TTense => Polarity => Str ;
|
||||
pred_te : Style => Str ;
|
||||
pred_ba : Style => Str ;
|
||||
changePolar : Bool} ;
|
||||
Cl = {s : Particle => Style => TTense => Polarity => Str ; subj : Particle => Style => Str ;
|
||||
te, ba : Particle => Style => Polarity => Str ; pred : Style => TTense => Polarity => Str ;
|
||||
pred_te, pred_ba : Style => Polarity => Str ; changePolar : Bool} ;
|
||||
ClSlash = {s, pred : Style => TTense => Polarity => Str ; subj : Particle => Style => Str ;
|
||||
te, pred_te, pred_ba : Style => Polarity => Str ; changePolar : Bool} ;
|
||||
SSlash = {s : Style => Str ; te : Style => Str} ;
|
||||
Imp = {s : Style => Polarity => Str} ;
|
||||
QCl = {s : Particle => Style => TTense => Polarity => Str ; changePolar : Bool} ;
|
||||
IP = {s : Style => Str ; anim : Animateness ; how8many : Bool} ;
|
||||
IComp = {s : Style => Str} ;
|
||||
QCl = {s : Particle => Style => TTense => Polarity => Str ;
|
||||
s_plain_pred : Particle => Style => TTense => Polarity => Str ; changePolar : Bool} ;
|
||||
IP = {s_subj, s_obj : Style => Str ; anim : Animateness ; how8many : Bool} ;
|
||||
IComp = {s : Style => Str ; wh8re : Bool} ;
|
||||
IDet = {s : Str ; n : Number ; how8many : Bool ; inclCard : Bool} ;
|
||||
IQuant = {s : Str} ;
|
||||
RCl = {s : Animateness => Style => TTense => Polarity => Str ;
|
||||
te : Animateness => Style => Str ;
|
||||
subj : Particle => Style => Str ;
|
||||
pred : Animateness => Style => TTense => Polarity => Str ;
|
||||
pred_te, pred_ba : Animateness => Style => Str ;
|
||||
changePolar : Bool ;
|
||||
missingSubj : Bool} ;
|
||||
RP = {s : Style => Str ; prep : Str} ;
|
||||
VP = ResJap.VP ; -- {verb : Animateness => Style => TTense => Polarity => Str ;
|
||||
-- te : Animateness => Style => Str; a_stem : Animateness => Style => Str ;
|
||||
-- i_stem : Animateness => Style => Str ; ba : Animateness => Style => Str ;
|
||||
-- prep : Str ; obj : Style => Str ; prepositive : Style => Str ; compar : ComparSense} ;
|
||||
Comp = {verb : Animateness => Style => TTense => Polarity => Str ;
|
||||
te : Animateness => Style => Str ; a_stem : Animateness => Style => Str ;
|
||||
i_stem : Animateness => Style => Str ; ba : Animateness => Style => Str ;
|
||||
obj : Style => Str ; prepositive : Style => Str ; compar : ComparSense} ;
|
||||
VPSlash = Verb ** {prep : Str ; obj : Style => Str ; prepositive : Style => Str ;
|
||||
v2vType : Bool ; compar : ComparSense} ;
|
||||
AP = {pred : Style => TTense => Polarity => Str ; attr : Style => Str ; te : Style => Str ;
|
||||
ba : Style => Str ; adv : Style => Str ; dropNaEnging : Style => Str ;
|
||||
prepositive : Style => Str ; compar : ComparSense} ;
|
||||
RCl = {s, pred : Animateness => Style => TTense => Polarity => Str ;
|
||||
te, pred_te, pred_ba : Animateness => Style => Polarity => Str ;
|
||||
subj : Particle => Style => Str ; changePolar : Bool ; missingSubj : Bool} ;
|
||||
RP = {s : Style => Str ; null : Bool} ;
|
||||
VP = ResJap.VP ; -- {verb : Speaker => Animateness => Style => TTense => Polarity => Str ;
|
||||
-- a_stem, i_stem : Speaker => Animateness => Style => Str ;
|
||||
-- te, ba : Speaker => Animateness => Style => Polarity => Str ;
|
||||
-- prep : Str ; obj : Style => Str ; prepositive : Style => Str} ;
|
||||
Comp = {verb : Animateness => Style => TTense => Polarity => Str ; a_stem, i_stem :
|
||||
Animateness => Style => Str ; te, ba : Animateness => Style => Polarity => Str ;
|
||||
obj : Style => Str ; prepositive : Style => Str} ;
|
||||
VPSlash = {s : Speaker => Style => TTense => Polarity => Str ;
|
||||
a_stem, i_stem : Speaker => Str ; te, ba : Speaker => Polarity => Str ;
|
||||
prep : Str ; obj : Style => Str ; prepositive : Style => Str ; v2vType : Bool} ;
|
||||
AP = {pred : Style => TTense => Polarity => Str ; attr, adv, dropNaEnging, prepositive :
|
||||
Style => Str ; te, ba : Style => Polarity => Str} ;
|
||||
NP = ResJap.NP ; -- {s : Style => Str ; prepositive : Style => Str ; needPart : Bool ;
|
||||
-- changePolar : Bool ; Pron1Sg : Bool ; anim : Animateness} ;
|
||||
-- changePolar : Bool ; meaning : Speaker ; anim : Animateness} ;
|
||||
CN = Noun ** {object : Style => Str ; prepositive : Style => Str ; hasAttr : Bool} ;
|
||||
Pron = Pronoun ; -- {s : Style => Str ; Pron1Sg : Bool ; anim : Animateness} ;
|
||||
Det = Determiner ; -- {quant : Style => Str ; num : Str ; postpositive : Str ;
|
||||
-- n : Number ; inclCard : Bool ; sp : Style => Str ; no : Bool} ;
|
||||
Pron = Pronoun ; -- {s : Style => Str ; Pron1Sg : Bool ; anim : Animateness} ;
|
||||
Det = Determiner ; -- {quant : Style => Str ; num : Str ; postpositive : Str ;
|
||||
-- n : Number ; inclCard : Bool ; sp : Style => Str ; no : Bool ; tenPlus : Bool} ;
|
||||
Predet = {s : Str ; not : Bool} ;
|
||||
Quant = {s : Style => Str ; sp : Style => Str ; no : Bool} ;
|
||||
Num = ResJap.Num ; -- {s : Str ; postpositive : Str ; n : Number ; inclCard : Bool} ;
|
||||
Card = {s : Str ; postpositive : Str ; n : Number} ;
|
||||
Ord = Adj ; -- {pred : Style => TTense => Polarity => Str ; attr : Str ;
|
||||
-- te : Str ; ba : Str ; adv : Str ; dropNaEnging : Str} ;
|
||||
Numeral = {s : Str ; n : Number} ;
|
||||
Digits = {s : Str ; n : Number} ;
|
||||
Num = ResJap.Num ; -- {s : Str ; postpositive : Str ; n : Number ; inclCard : Bool ;
|
||||
-- tenPlus : Bool} ;
|
||||
Card = {s : Str ; postpositive : Str ; n : Number ; tenPlus : Bool} ;
|
||||
Ord = Adj ; -- {pred : Style => TTense => Polarity => Str ; attr, adv,
|
||||
-- dropNaEnging : Str ; te, ba : Polarity => Str} ;
|
||||
Numeral = {s : Str ; n : Number ; tenPlus : Bool} ;
|
||||
Digits = {s : Str ; n : Number ; tenPlus : Bool ; tail : DTail} ;
|
||||
Conj = Conjunction ; -- {s : Str ; null : Str ; type : ConjType} ;
|
||||
Subj = Subjunction ; -- {s : Str ; type : SubjType} ;
|
||||
Prep = Preposition ; -- {s : Str ; relPrep : Str} ;
|
||||
V = Verb ; -- {s : Style => TTense => Polarity => Str ; te : Str ;
|
||||
-- a_stem : Str ; i_stem : Str ; ba : Str}
|
||||
V2 = Verb ** {pass: Style => TTense => Polarity => Str ; pass_te : Str ; pass_a_stem : Str ;
|
||||
pass_i_stem : Str ; pass_ba : Str ; prep : Str} ;
|
||||
V3 = Verb ** {prep1 : Str ; prep2 : Str ; give : Bool} ; -- "give" is a special case
|
||||
VV = Verb ** {sense : ModSense} ;
|
||||
Prep = Preposition ; -- {s : Str ; null : Str} ;
|
||||
V = Verb ; -- {s : Style => TTense => Polarity => Str ; a_stem, i_stem :
|
||||
-- Str ; te, ba : Polarity => Str}
|
||||
V2 = Verb2 ; -- {s, pass : Style => TTense => Polarity => Str ; a_stem, i_stem,
|
||||
-- pass_a_stem, pass_i_stem, prep : Str ; te, ba, pass_te,
|
||||
-- pass_ba : Polarity => Str} ;
|
||||
V3 = Verb3 ; -- {s : Speaker => Style => TTense => Polarity => Str ; a_stem,
|
||||
-- i_stem : Speaker => Str ; te, ba : Speaker => Polarity =>
|
||||
-- Str ; prep1, prep2 : Str} ;
|
||||
VV = ResJap.VV ; -- {s : Speaker => Style => TTense => Polarity => Str ; te,
|
||||
-- a_stem, i_stem, ba, te_neg, ba_neg : Speaker => Str ;
|
||||
-- sense : ModSense} ;
|
||||
VS = Verb ** {prep : Str} ;
|
||||
VQ = Verb ** {prep : Str} ;
|
||||
VQ = Verb ;
|
||||
VA = Verb ;
|
||||
V2V = Verb ;
|
||||
V2S = Verb ;
|
||||
V2Q = Verb ;
|
||||
V2A = Verb ;
|
||||
A = Adj ; -- {pred : Style => TTense => Polarity => Str ; attr : Str;
|
||||
-- te : Str ; ba : Str ; adv : Str ; dropNaEnging : Str} ;
|
||||
A = Adj ; -- {pred : Style => TTense => Polarity => Str ; attr,
|
||||
-- dropNaEnging : Str ; te, ba, adv : Polarity => Str} ;
|
||||
A2 = Adj2 ; -- Adj ** {prep : Str} ;
|
||||
N = Noun ; -- {s : Number => Style => Str ; anim : Animateness ;
|
||||
-- counter : Str ; counterReplace : Bool} ;
|
||||
-- counter : Str ; counterReplace : Bool ; counterTsu : Bool} ;
|
||||
N2 = Noun ** {prep : Str; object : Style => Str} ;
|
||||
N3 = Noun ** {prep1 : Str; prep2 : Str} ;
|
||||
PN = PropNoun ; -- {s : Style => Str} ;
|
||||
PN = PropNoun ; -- {s : Style => Str ; anim : Animateness} ;
|
||||
|
||||
}
|
||||
@@ -4,11 +4,13 @@ flags coding = utf8 ;
|
||||
|
||||
lincat
|
||||
|
||||
Text, Phr, PConj, Interj, AdV, AdA = {s : Str} ;
|
||||
PConj, Interj, AdV, AdA = {s : Str} ;
|
||||
|
||||
Utt = {s : Style => Str} ;
|
||||
Phr, Text = {s : Str} ;
|
||||
|
||||
Voc = {s : Style => Str ; please : Bool} ;
|
||||
Utt = {s : Particle => Style => Str ; type : UttType} ;
|
||||
|
||||
Voc = {s : Style => Str ; type : VocType ; null : Str} ;
|
||||
|
||||
SC = {s : Particle => Style => Str ; isVP : Bool} ;
|
||||
|
||||
@@ -16,9 +18,9 @@ flags coding = utf8 ;
|
||||
|
||||
AdN = {s : Str ; postposition : Bool} ;
|
||||
|
||||
IAdv = {s : Style => Str ; particle : Str} ;
|
||||
IAdv = {s : Style => Str ; particle : Str ; wh8re : Bool} ;
|
||||
|
||||
CAdv = {s : Str ; compar : ComparSense} ;
|
||||
CAdv = {s : Str ; less : Bool ; s_adn : Str} ;
|
||||
|
||||
Temp = {s : Str ; t : TTense ; a : Anteriority} ;
|
||||
Tense = {s : Str ; t : TTense} ;
|
||||
|
||||
@@ -48,24 +48,22 @@ concrete ConjunctionJap of Conjunction = CatJap ** open ResJap, Prelude in {
|
||||
|
||||
ConjAP conj ap = case conj.type of {
|
||||
(And | Both) => {
|
||||
pred = \\st,t,p => conj.null ++ ap.s1and ! st ++ ap.s2pred ! st ! t ! p ;
|
||||
attr = \\st => conj.null ++ ap.s1and ! st ++ ap.s2attr ! st ;
|
||||
te = \\st => conj.null ++ ap.s1and ! st ++ ap.s2te ! st ;
|
||||
ba = \\st => conj.null ++ ap.s1and ! st ++ ap.s2ba ! st ;
|
||||
adv = \\st => conj.null ++ ap.s1and ! st ++ ap.s2adv ! st ;
|
||||
dropNaEnging = \\st => conj.null ++ ap.s1and ! st ++ ap.s2dropNaEnging ! st ;
|
||||
prepositive = ap.prepositive ;
|
||||
compar = ap.compar
|
||||
pred = \\st,t,p => conj.null ++ ap.s1and ! st ! p ++ ap.s2pred ! st ! t ! p ;
|
||||
attr = \\st => conj.null ++ ap.s1and ! st ! Pos ++ ap.s2attr ! st ;
|
||||
te = \\st,p => conj.null ++ ap.s1and ! st ! p ++ ap.s2te ! st ! p ;
|
||||
ba = \\st,p => conj.null ++ ap.s1and ! st ! p ++ ap.s2ba ! st ! p ;
|
||||
adv = \\st => conj.null ++ ap.s1and ! st ! Pos ++ ap.s2adv ! st ;
|
||||
dropNaEnging = \\st => conj.null ++ ap.s1and ! st ! Pos ++ ap.s2dropNaEnging ! st ;
|
||||
prepositive = ap.prepositive
|
||||
} ;
|
||||
Or => {
|
||||
pred = \\st,t,p => conj.null ++ ap.s1or ! st ++ ap.s2pred ! st ! t ! p ;
|
||||
attr = \\st => conj.null ++ ap.s1or ! st ++ ap.s2attr ! st ;
|
||||
te = \\st => conj.null ++ ap.s1or ! st ++ ap.s2te ! st ;
|
||||
ba = \\st => conj.null ++ ap.s1or ! st ++ ap.s2ba ! st ;
|
||||
adv = \\st => conj.null ++ ap.s1or ! st ++ ap.s2adv ! st ;
|
||||
dropNaEnging = \\st => conj.null ++ ap.s1or ! st ++ ap.s2dropNaEnging ! st ;
|
||||
prepositive = ap.prepositive ;
|
||||
compar = ap.compar
|
||||
pred = \\st,t,p => conj.null ++ ap.s1or ! st ! p ++ ap.s2pred ! st ! t ! p ;
|
||||
attr = \\st => conj.null ++ ap.s1or ! st ! Pos ++ ap.s2attr ! st ;
|
||||
te = \\st,p => conj.null ++ ap.s1or ! st ! p ++ ap.s2te ! st ! p ;
|
||||
ba = \\st,p => conj.null ++ ap.s1or ! st ! p ++ ap.s2ba ! st ! p ;
|
||||
adv = \\st => conj.null ++ ap.s1or ! st ! Pos ++ ap.s2adv ! st ;
|
||||
dropNaEnging = \\st => conj.null ++ ap.s1or ! st ! Pos ++ ap.s2dropNaEnging ! st ;
|
||||
prepositive = ap.prepositive
|
||||
}
|
||||
} ;
|
||||
|
||||
@@ -74,8 +72,7 @@ concrete ConjunctionJap of Conjunction = CatJap ** open ResJap, Prelude in {
|
||||
(And | Both) => conj.null ++ adv.and ! st ;
|
||||
Or => conj.null ++ adv.or ! st
|
||||
} ;
|
||||
prepositive = adv.prepositive ;
|
||||
compar = adv.compar
|
||||
prepositive = adv.prepositive
|
||||
} ;
|
||||
|
||||
ConjNP conj np = {
|
||||
@@ -90,13 +87,14 @@ concrete ConjunctionJap of Conjunction = CatJap ** open ResJap, Prelude in {
|
||||
Both => False
|
||||
} ;
|
||||
changePolar = np.changePolar ;
|
||||
Pron1Sg = np.Pron1Sg ;
|
||||
meaning = SomeoneElse ;
|
||||
anim = np.anim
|
||||
} ;
|
||||
|
||||
ConjIAdv conj iadv = {
|
||||
s = \\st => conj.null ++ iadv.s ! st ;
|
||||
particle = iadv.particle
|
||||
particle = iadv.particle ;
|
||||
wh8re = iadv.wh8re
|
||||
} ;
|
||||
|
||||
ConjCN conj cn = {
|
||||
@@ -109,7 +107,8 @@ concrete ConjunctionJap of Conjunction = CatJap ** open ResJap, Prelude in {
|
||||
counterReplace = cn.counterReplace ;
|
||||
object = cn.object ;
|
||||
prepositive = cn.prepositive ;
|
||||
hasAttr = cn.hasAttr
|
||||
hasAttr = cn.hasAttr ;
|
||||
counterTsu = cn.counterTsu
|
||||
} ;
|
||||
|
||||
BaseS x y = {
|
||||
@@ -157,7 +156,7 @@ concrete ConjunctionJap of Conjunction = CatJap ** open ResJap, Prelude in {
|
||||
pred_teAnd = \\a,st => x.pred_te ! a ! st ++ "," ++ y.te ! a ! st ;
|
||||
pred_teOr = \\a,st => x.pred_te ! a ! st ++ "," ++ "あるいは" ++ y.te ! a ! st ;
|
||||
pred_baAnd = \\a,st => x.pred_te ! a ! st ++ "," ++ y.subj ! Ga ! st ++
|
||||
y.pred_ba ! a ! st ;
|
||||
y.pred_ba ! a ! st ;
|
||||
pred_baOr = \\a,st => x.pred_te ! a ! st ++ "," ++ "あるいは" ++ y.subj ! Ga ! st ++
|
||||
y.pred_ba ! a ! st ;
|
||||
subj = x.subj ;
|
||||
@@ -196,11 +195,6 @@ concrete ConjunctionJap of Conjunction = CatJap ** open ResJap, Prelude in {
|
||||
prepositive = case <x.prepositive, y.prepositive> of {
|
||||
<False, False> => False ;
|
||||
_ => True
|
||||
} ;
|
||||
compar = case <x.compar, y.compar> of {
|
||||
<NoCompar, NoCompar> => NoCompar ;
|
||||
(<More, _> | <_, More>) => More ;
|
||||
_ => Less
|
||||
}
|
||||
} ;
|
||||
|
||||
@@ -210,17 +204,12 @@ concrete ConjunctionJap of Conjunction = CatJap ** open ResJap, Prelude in {
|
||||
_ => xs.and ! st ++ "," ++ x.s ! st
|
||||
} ;
|
||||
or = \\st => case <x.prepositive, xs.prepositive> of {
|
||||
<False, False> => xs.or ! st ++ "か" ++ x.s ! st ;
|
||||
<False, False> => x.s ! st ++ "か" ++ xs.or ! st ;
|
||||
_ => xs.or ! st ++ "," ++ "あるいは" ++ x.s ! st
|
||||
} ;
|
||||
prepositive = case <x.prepositive, xs.prepositive> of {
|
||||
<False, False> => False ;
|
||||
_ => True
|
||||
} ;
|
||||
compar = case <x.compar, xs.compar> of {
|
||||
<NoCompar, NoCompar> => NoCompar ;
|
||||
(<More, _> | <_, More>) => More ;
|
||||
_ => Less
|
||||
}
|
||||
} ;
|
||||
|
||||
@@ -237,7 +226,7 @@ concrete ConjunctionJap of Conjunction = CatJap ** open ResJap, Prelude in {
|
||||
<False, False> => False ;
|
||||
_ => True
|
||||
} ;
|
||||
Pron1Sg = False ;
|
||||
meaning = SomeoneElse ;
|
||||
anim = case <x.anim, y.anim> of {
|
||||
<Inanim, Inanim> => Inanim ;
|
||||
_ => Anim
|
||||
@@ -257,47 +246,59 @@ concrete ConjunctionJap of Conjunction = CatJap ** open ResJap, Prelude in {
|
||||
<False, False> => False ;
|
||||
_ => True
|
||||
} ;
|
||||
Pron1Sg = False ;
|
||||
meaning = SomeoneElse ;
|
||||
anim = case <xs.anim, x.anim> of {
|
||||
<Inanim, Inanim> => Inanim ;
|
||||
_ => Anim
|
||||
}
|
||||
} ;
|
||||
|
||||
|
||||
BaseAP x y = {
|
||||
s1and = x.te ;
|
||||
s1or = \\st => x.dropNaEnging ! st ++ "か" ;
|
||||
s1or = \\st => table {
|
||||
Pos => x.dropNaEnging ! st ++ "か" ;
|
||||
Neg => x.pred ! Plain ! TPres ! Neg ++ "か"
|
||||
} ;
|
||||
s2pred = y.pred ;
|
||||
s2attr = y.attr ;
|
||||
s2te = y.te ;
|
||||
s2ba = y.ba ;
|
||||
s2adv = y.adv ;
|
||||
s2dropNaEnging = y.dropNaEnging ;
|
||||
prepositive = \\st => x.prepositive ! st ++ y.prepositive ! st ;
|
||||
compar = y.compar
|
||||
prepositive = \\st => x.prepositive ! st ++ y.prepositive ! st
|
||||
} ;
|
||||
|
||||
ConsAP x xs = {
|
||||
s1and = \\st => xs.s1and ! st ++ xs.s2te ! st ;
|
||||
s1or = \\st => xs.s1or ! st ++ xs.s2dropNaEnging ! st ++ "か" ;
|
||||
s1and = \\st,p => xs.s1and ! st ! p ++ xs.s2te ! st ! p ;
|
||||
s1or = \\st => table {
|
||||
Pos => xs.s1or ! st ! Pos ++ xs.s2dropNaEnging ! st ++ "か" ;
|
||||
Neg => xs.s1or ! st ! Neg ++ xs.s2pred ! Plain ! TPres ! Neg ++ "か"
|
||||
} ;
|
||||
s2pred = x.pred ;
|
||||
s2attr = x.attr ;
|
||||
s2te = x.te ;
|
||||
s2ba = x.ba ;
|
||||
s2adv = x.adv ;
|
||||
s2dropNaEnging = x.dropNaEnging ;
|
||||
prepositive = \\st => x.prepositive ! st ++ xs.prepositive ! st ;
|
||||
compar = x.compar
|
||||
prepositive = \\st => x.prepositive ! st ++ xs.prepositive ! st
|
||||
} ;
|
||||
|
||||
BaseIAdv x y = {
|
||||
s = \\st => x.s ! st ++ x.particle ++ y.s ! st ;
|
||||
particle = y.particle
|
||||
particle = y.particle ;
|
||||
wh8re = case <x.wh8re, y.wh8re> of {
|
||||
<False, False> => False ;
|
||||
_ => True
|
||||
}
|
||||
} ;
|
||||
|
||||
ConsIAdv x xs = {
|
||||
s = \\st => x.s ! st ++ x.particle ++ xs.s ! st ;
|
||||
particle = xs.particle
|
||||
particle = xs.particle ;
|
||||
wh8re = case <x.wh8re, xs.wh8re> of {
|
||||
<False, False> => False ;
|
||||
_ => True
|
||||
}
|
||||
} ;
|
||||
|
||||
BaseCN x y = {
|
||||
@@ -311,7 +312,8 @@ concrete ConjunctionJap of Conjunction = CatJap ** open ResJap, Prelude in {
|
||||
counterReplace = y.counterReplace ;
|
||||
object = x.object ;
|
||||
prepositive = \\st => x.prepositive ! st ++ y.prepositive ! st ;
|
||||
hasAttr = x.hasAttr
|
||||
hasAttr = x.hasAttr ;
|
||||
counterTsu = y.counterTsu
|
||||
} ;
|
||||
|
||||
ConsCN x xs = {
|
||||
@@ -325,7 +327,8 @@ concrete ConjunctionJap of Conjunction = CatJap ** open ResJap, Prelude in {
|
||||
counterReplace = xs.counterReplace ;
|
||||
object = x.object ;
|
||||
prepositive = \\st => x.prepositive ! st ++ xs.prepositive ! st ;
|
||||
hasAttr = x.hasAttr
|
||||
hasAttr = x.hasAttr ;
|
||||
counterTsu = xs.counterTsu
|
||||
} ;
|
||||
|
||||
lincat
|
||||
@@ -337,18 +340,19 @@ concrete ConjunctionJap of Conjunction = CatJap ** open ResJap, Prelude in {
|
||||
pred_baOr : Animateness => Style => Str ; subj : Particle => Style => Str ;
|
||||
missingSubj : Bool} ;
|
||||
|
||||
[Adv] = {and, or : Style => Str ; prepositive : Bool ; compar : ComparSense} ;
|
||||
[Adv] = {and, or : Style => Str ; prepositive : Bool} ;
|
||||
|
||||
[NP] = {and, or, both : Style => Str ; prepositive : Style => Str ;
|
||||
needPart : Bool ; changePolar : Bool ; Pron1Sg : Bool ; anim : Animateness} ;
|
||||
needPart : Bool ; changePolar : Bool ; meaning : Speaker ; anim : Animateness} ;
|
||||
|
||||
[AP] = {s1and, s1or : Style => Str ; s2pred : Style => TTense => Polarity => Str ;
|
||||
s2attr, s2te, s2ba, s2adv, s2dropNaEnging, prepositive : Style => Str ;
|
||||
compar : ComparSense} ;
|
||||
[AP] = {s1and, s1or : Style => Polarity => Str ; s2pred : Style => TTense => Polarity => Str ;
|
||||
s2attr, s2adv, s2dropNaEnging, prepositive : Style => Str ;
|
||||
s2te, s2ba : Style => Polarity => Str} ;
|
||||
|
||||
[IAdv] = {s : Style => Str ; particle : Str} ;
|
||||
[IAdv] = {s : Style => Str ; particle : Str ; wh8re : Bool} ;
|
||||
|
||||
[CN] = {and, or : Number => Style => Str ; anim : Animateness ; counter : Str ;
|
||||
counterReplace : Bool ; object : Style => Str ; prepositive : Style => Str ;
|
||||
hasAttr : Bool} ;
|
||||
hasAttr : Bool ; counterTsu : Bool} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -12,6 +12,5 @@ concrete GrammarJap of Grammar =
|
||||
TextJap,
|
||||
StructuralJap,
|
||||
IdiomJap,
|
||||
TenseJap --,
|
||||
-- TransferJap
|
||||
TenseJap
|
||||
;
|
||||
|
||||
@@ -4,223 +4,158 @@ flags coding = utf8 ;
|
||||
|
||||
lin
|
||||
|
||||
ImpersCl vp = case vp.compar of {
|
||||
More => {
|
||||
s = table {
|
||||
Wa => \\st,t,p => vp.prepositive ! st ++ "これは" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.verb ! Inanim ! st ! t ! p ;
|
||||
Ga => \\st,t,p => vp.prepositive ! st ++ "これのほうが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.verb ! Inanim ! st ! t ! p
|
||||
} ;
|
||||
te = table {
|
||||
Wa => \\st => vp.prepositive ! st ++ "これは" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! Inanim ! st ;
|
||||
Ga => \\st => vp.prepositive ! st ++ "これのほうが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! Inanim ! st
|
||||
} ;
|
||||
ba = table {
|
||||
Wa => \\st => vp.prepositive ! st ++ "これは" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.ba ! Inanim ! st ;
|
||||
Ga => \\st => vp.prepositive ! st ++ "これのほうが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.ba ! Inanim ! st
|
||||
} ;
|
||||
subj = table {
|
||||
Wa => \\st => vp.prepositive ! st ++ "これは" ;
|
||||
Ga => \\st => vp.prepositive ! st ++ "これのほうが"
|
||||
} ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! Inanim ! st ! t ! p ;
|
||||
pred_te = \\st => vp.obj ! st ++ vp.prep ++ vp.te ! Inanim ! st ;
|
||||
pred_ba = \\st => vp.obj ! st ++ vp.prep ++ vp.ba ! Inanim ! st ;
|
||||
changePolar = False
|
||||
ImpersCl vp = {
|
||||
s = table {
|
||||
Wa => \\st,t,p => vp.prepositive ! st ++ "これは" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.verb ! SomeoneElse ! Inanim ! st ! t ! p ;
|
||||
Ga => \\st,t,p => vp.prepositive ! st ++ "これが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.verb ! SomeoneElse ! Inanim ! st ! t ! p
|
||||
} ;
|
||||
Less => {
|
||||
s = \\part,st,t,p => vp.prepositive ! st ++ "これより" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.verb ! Inanim ! st ! t ! p ;
|
||||
te = \\part,st => vp.prepositive ! st ++ "これより" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! Inanim ! st ;
|
||||
ba = \\part,st => vp.prepositive ! st ++ "これより" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.ba ! Inanim ! st ;
|
||||
subj = \\part,st => vp.prepositive ! st ++ "これより" ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! Inanim ! st ! t ! p ;
|
||||
pred_te = \\st => vp.obj ! st ++ vp.prep ++ vp.te ! Inanim ! st ;
|
||||
pred_ba = \\st => vp.obj ! st ++ vp.prep ++ vp.ba ! Inanim ! st ;
|
||||
changePolar = False
|
||||
te = table {
|
||||
Wa => \\st,p => vp.prepositive ! st ++ "これは" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! SomeoneElse ! Inanim ! st ! p ;
|
||||
Ga => \\st,p => vp.prepositive ! st ++ "これが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! SomeoneElse ! Inanim ! st ! p
|
||||
} ;
|
||||
ba = table {
|
||||
Wa => \\st,p => vp.prepositive ! st ++ "これは" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.ba ! SomeoneElse ! Inanim ! st ! p ;
|
||||
Ga => \\st,p => vp.prepositive ! st ++ "これが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.ba ! SomeoneElse ! Inanim ! st ! p
|
||||
} ;
|
||||
NoCompar => {
|
||||
s = table {
|
||||
Wa => \\st,t,p => vp.prepositive ! st ++ "これは" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.verb ! Inanim ! st ! t ! p ;
|
||||
Ga => \\st,t,p => vp.prepositive ! st ++ "これが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.verb ! Inanim ! st ! t ! p
|
||||
} ;
|
||||
te = table {
|
||||
Wa => \\st => vp.prepositive ! st ++ "これは" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! Inanim ! st ;
|
||||
Ga => \\st => vp.prepositive ! st ++ "これが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! Inanim ! st
|
||||
} ;
|
||||
ba = table {
|
||||
Wa => \\st => vp.prepositive ! st ++ "これは" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.ba ! Inanim ! st ;
|
||||
Ga => \\st => vp.prepositive ! st ++ "これが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.ba ! Inanim ! st
|
||||
} ;
|
||||
subj = table {
|
||||
Wa => \\st => vp.prepositive ! st ++ "これは" ;
|
||||
Ga => \\st => vp.prepositive ! st ++ "これが"
|
||||
} ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! Inanim ! st ! t ! p ;
|
||||
pred_te = \\st => vp.obj ! st ++ vp.prep ++ vp.te ! Inanim ! st ;
|
||||
pred_ba = \\st => vp.obj ! st ++ vp.prep ++ vp.ba ! Inanim ! st ;
|
||||
changePolar = False
|
||||
}
|
||||
subj = table {
|
||||
Wa => \\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_te = \\st,p => vp.obj ! st ++ vp.prep ++ vp.te ! SomeoneElse ! Inanim ! st ! p ;
|
||||
pred_ba = \\st,p => vp.obj ! st ++ vp.prep ++ vp.ba ! SomeoneElse ! Inanim ! st ! p ;
|
||||
changePolar = False
|
||||
} ;
|
||||
|
||||
GenericCl vp = case vp.compar of {
|
||||
More => {
|
||||
s = table {
|
||||
Wa => \\st,t,p => vp.prepositive ! st ++ "誰か" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.verb ! Anim ! st ! t ! p ;
|
||||
Ga => \\st,t,p => vp.prepositive ! st ++ "誰かのほうが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.verb ! Anim ! st ! t ! p
|
||||
} ;
|
||||
te = table {
|
||||
Wa => \\st => vp.prepositive ! st ++ "誰か" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! Anim ! st ;
|
||||
Ga => \\st => vp.prepositive ! st ++ "誰かのほうが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! Anim ! st
|
||||
} ;
|
||||
ba = table {
|
||||
Wa => \\st => vp.prepositive ! st ++ "誰か" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.ba ! Anim ! st ;
|
||||
Ga => \\st => vp.prepositive ! st ++ "誰かのほうが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.ba ! Anim ! st
|
||||
} ;
|
||||
subj = table {
|
||||
Wa => \\st => vp.prepositive ! st ++ "誰か" ;
|
||||
Ga => \\st => vp.prepositive ! st ++ "誰かのほうが"
|
||||
} ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! Anim ! st ! t ! p ;
|
||||
pred_te = \\st => vp.obj ! st ++ vp.prep ++ vp.te ! Anim ! st ;
|
||||
pred_ba = \\st => vp.obj ! st ++ vp.prep ++ vp.ba ! Anim ! st ;
|
||||
changePolar = False
|
||||
} ;
|
||||
Less => {
|
||||
s = \\part,st,t,p => vp.prepositive ! st ++ "誰かより" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.verb ! Anim ! st ! t ! p ;
|
||||
te = \\part,st => vp.prepositive ! st ++ "誰かより" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! Anim ! st ;
|
||||
ba = \\part,st => vp.prepositive ! st ++ "誰かより" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.ba ! Anim ! st ;
|
||||
subj = \\part,st => vp.prepositive ! st ++ "誰かより" ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! Anim ! st ! t ! p ;
|
||||
pred_te = \\st => vp.obj ! st ++ vp.prep ++ vp.te ! Anim ! st ;
|
||||
pred_ba = \\st => vp.obj ! st ++ vp.prep ++ vp.ba ! Anim ! st ;
|
||||
changePolar = False
|
||||
} ;
|
||||
NoCompar => {
|
||||
s = \\part,st,t,p => vp.prepositive ! st ++ "誰か" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.verb ! Anim ! st ! t ! p ;
|
||||
te = \\part,st => vp.prepositive ! st ++ "誰か" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! Anim ! st ;
|
||||
ba = \\part,st => vp.prepositive ! st ++ "誰か" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.ba ! Anim ! st ;
|
||||
subj = \\part,st => vp.prepositive ! st ++ "誰か" ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! Anim ! st ! t ! p ;
|
||||
pred_te = \\st => vp.obj ! st ++ vp.prep ++ vp.te ! Anim ! st ;
|
||||
pred_ba = \\st => vp.obj ! st ++ vp.prep ++ vp.ba ! Anim ! st ;
|
||||
changePolar = False
|
||||
}
|
||||
GenericCl vp = {
|
||||
s = \\part,st,t,p => vp.prepositive ! st ++ "誰か" ++ vp.obj ! st ++ -- "dareka"
|
||||
vp.prep ++ vp.verb ! SomeoneElse ! Anim ! st ! t ! p ;
|
||||
te = \\part,st,p => vp.prepositive ! st ++ "誰か" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! SomeoneElse ! Anim ! st ! p ;
|
||||
ba = \\part,st,p => vp.prepositive ! st ++ "誰か" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.ba ! SomeoneElse ! Anim ! st ! p ;
|
||||
subj = \\part,st => vp.prepositive ! st ++ "誰か" ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! SomeoneElse ! Anim ! st ! t ! p ;
|
||||
pred_te = \\st,p => vp.obj ! st ++ vp.prep ++ vp.te ! SomeoneElse ! Anim ! st ! p ;
|
||||
pred_ba = \\st,p => vp.obj ! st ++ vp.prep ++ vp.ba ! SomeoneElse ! Anim ! st ! p ;
|
||||
changePolar = False
|
||||
} ;
|
||||
|
||||
CleftNP np rs = {
|
||||
s = \\part,st,t,p => np.prepositive ! st ++ rs.subj ! Ga ! st ++
|
||||
rs.pred ! np.anim ! Plain ++ "のは" ++ np.s ! st ++
|
||||
mkCopula.s ! st ! t ! p ;
|
||||
te = \\part,st => np.prepositive ! st ++ rs.subj ! Ga ! st ++
|
||||
rs.pred ! np.anim ! Plain ++ "のは" ++ np.s ! st ++ "だって" ;
|
||||
ba = \\part,st => np.prepositive ! st ++ rs.subj ! Ga ! st ++
|
||||
rs.pred ! np.anim ! Plain ++ "のは" ++ np.s ! st ++ "であれば" ;
|
||||
te = \\part,st,p => np.prepositive ! st ++ rs.subj ! Ga ! st ++ rs.pred ! np.anim ! Plain ++
|
||||
"のは" ++ np.s ! st ++ mkCopula.te ! p ;
|
||||
ba = \\part,st,p => np.prepositive ! st ++ rs.subj ! Ga ! st ++ rs.pred ! np.anim ! Plain ++
|
||||
"のは" ++ np.s ! st ++ mkCopula.ba ! p ;
|
||||
subj = \\part,st => np.prepositive ! st ++ rs.subj ! Ga ! st ++
|
||||
rs.pred ! np.anim ! Plain ++ "のは" ;
|
||||
pred = \\st,t,p => np.s ! st ++ mkCopula.s ! st ! t ! p ;
|
||||
pred_te = \\st => np.s ! st ++ "だって" ;
|
||||
pred_ba = \\st => np.s ! st ++ "であれば" ;
|
||||
pred_te = \\st,p => np.s ! st ++ mkCopula.te ! p ;
|
||||
pred_ba = \\st,p => np.s ! st ++ mkCopula.ba ! p ;
|
||||
changePolar = np.changePolar
|
||||
} ;
|
||||
|
||||
CleftAdv adv s = {
|
||||
s = \\part,st,t,p => s.subj ! Ga ! st ++ s.pred ! Plain ++ "のは" ++ adv.s ! st ++
|
||||
mkCopula.s ! st ! t ! p ;
|
||||
te = \\part,st => s.subj ! Ga ! st ++ s.pred ! Plain ++ "のは" ++ adv.s ! st ++
|
||||
"だって" ;
|
||||
ba = \\part,st => s.subj ! Ga ! st ++ s.pred ! Plain ++ "のは" ++ adv.s ! st ++
|
||||
"であれば" ;
|
||||
te = \\part,st,p => s.subj ! Ga ! st ++ s.pred ! Plain ++ "のは" ++ adv.s ! st ++
|
||||
mkCopula.te ! p ;
|
||||
ba = \\part,st,p => s.subj ! Ga ! st ++ s.pred ! Plain ++ "のは" ++ adv.s ! st ++
|
||||
mkCopula.ba ! p ;
|
||||
subj = \\part,st => s.subj ! Ga ! st ++ s.pred ! Plain ++ "のは" ;
|
||||
pred = \\st,t,p => adv.s ! st ++ mkCopula.s ! st ! t ! p ;
|
||||
pred_te = \\st => adv.s ! st ++ "だって" ;
|
||||
pred_ba = \\st => adv.s ! st ++ "であれば" ;
|
||||
pred_te = \\st,p => adv.s ! st ++ mkCopula.te ! p ;
|
||||
pred_ba = \\st,p => adv.s ! st ++ mkCopula.ba ! p ;
|
||||
changePolar = False
|
||||
} ;
|
||||
|
||||
ExistNP np = case np.needPart of {
|
||||
True => {
|
||||
s = table {
|
||||
s = table {
|
||||
Wa => \\st,t,p => np.prepositive ! st ++ np.s ! st ++ "は" ++
|
||||
mkExistV.verb ! np.anim ! st ! t ! p ;
|
||||
mkExistV.verb ! SomeoneElse ! np.anim ! st ! t ! p ;
|
||||
Ga => \\st,t,p => np.prepositive ! st ++ np.s ! st ++ "が" ++
|
||||
mkExistV.verb ! np.anim ! st ! t ! p
|
||||
mkExistV.verb ! SomeoneElse ! np.anim ! st ! t ! p
|
||||
} ;
|
||||
te = table {
|
||||
Wa => \\st => np.prepositive ! st ++ np.s ! st ++ "は" ++ mkExistV.te ! np.anim ! st ;
|
||||
Ga => \\st => np.prepositive ! st ++ np.s ! st ++ "が" ++ mkExistV.te ! np.anim ! st
|
||||
Wa => \\st,p => np.prepositive ! st ++ np.s ! st ++ "は" ++
|
||||
mkExistV.te ! SomeoneElse ! np.anim ! st ! p ;
|
||||
Ga => \\st,p => np.prepositive ! st ++ np.s ! st ++ "が" ++
|
||||
mkExistV.te ! SomeoneElse ! np.anim ! st ! p
|
||||
} ;
|
||||
ba = table {
|
||||
Wa => \\st => np.prepositive ! st ++ np.s ! st ++ "は" ++ mkExistV.ba ! np.anim ! st ;
|
||||
Ga => \\st => np.prepositive ! st ++ np.s ! st ++ "が" ++ mkExistV.ba ! np.anim ! st
|
||||
Wa => \\st,p => np.prepositive ! st ++ np.s ! st ++ "は" ++
|
||||
mkExistV.ba ! SomeoneElse ! np.anim ! st ! p ;
|
||||
Ga => \\st,p => np.prepositive ! st ++ np.s ! st ++ "が" ++
|
||||
mkExistV.ba ! SomeoneElse ! np.anim ! st ! p
|
||||
} ;
|
||||
subj = table {
|
||||
Wa => \\st => np.prepositive ! st ++ np.s ! st ++ "は" ;
|
||||
Ga => \\st => np.prepositive ! st ++ np.s ! st ++ "が"
|
||||
} ;
|
||||
pred = \\st,t,p => mkExistV.verb ! np.anim ! st ! t ! p ;
|
||||
pred_te = \\st => mkExistV.te ! np.anim ! st ;
|
||||
pred_ba = \\st => mkExistV.ba ! np.anim ! 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 => np.prepositive ! st ++ np.s ! st ++
|
||||
mkExistV.verb ! np.anim ! st ! t ! p ;
|
||||
te = \\part,st => np.prepositive ! st ++ np.s ! st ++ mkExistV.te ! np.anim ! st ;
|
||||
ba = \\part,st => np.prepositive ! st ++ np.s ! st ++ mkExistV.ba ! np.anim ! st ;
|
||||
mkExistV.verb ! SomeoneElse ! np.anim ! st ! t ! p ;
|
||||
te = \\part,st,p => np.prepositive ! st ++ np.s ! st ++
|
||||
mkExistV.te ! SomeoneElse ! np.anim ! st ! p ;
|
||||
ba = \\part,st,p => np.prepositive ! st ++ np.s ! st ++
|
||||
mkExistV.ba ! SomeoneElse ! np.anim ! st ! p ;
|
||||
subj = \\part,st => np.prepositive ! st ++ np.s ! st ;
|
||||
pred = \\st,t,p => mkExistV.verb ! np.anim ! st ! t ! p ;
|
||||
pred_te = \\st => mkExistV.te ! np.anim ! st ;
|
||||
pred_ba = \\st => mkExistV.ba ! np.anim ! 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
|
||||
}
|
||||
} ;
|
||||
|
||||
ExistIP ip = {
|
||||
s = \\part,st,t,p => ip.s ! st ++ "が" ++ mkExistV.verb ! ip.anim ! st ! t ! p ;
|
||||
s = \\part,st,t,p => case ip.how8many of {
|
||||
True => ip.s_subj ! st ++ mkExistV.verb ! SomeoneElse ! ip.anim ! st ! t ! p ++ "か" ;
|
||||
False => ip.s_subj ! st ++ "が" ++ mkExistV.verb ! SomeoneElse ! ip.anim ! st ! t ! p
|
||||
++ "か"
|
||||
} ;
|
||||
s_plain_pred = \\part,st,t,p => case ip.how8many of {
|
||||
True => ip.s_subj ! st ++ mkExistV.verb ! SomeoneElse ! ip.anim ! Plain ! t ! p ++ "か" ;
|
||||
False => ip.s_subj ! st ++ "が" ++ mkExistV.verb ! SomeoneElse ! ip.anim ! Plain ! t ! p
|
||||
++ "か"
|
||||
} ;
|
||||
changePolar = False
|
||||
} ;
|
||||
|
||||
ProgrVP vp = {
|
||||
verb = \\a,st,t,p => vp.te ! a ! st ++ (mkVerb "い" "い" "いる" "いった").s ! st ! t ! p ;
|
||||
te = \\a,st => vp.te ! a ! st ++ "いて" ;
|
||||
a_stem = \\a,st => vp.te ! a ! st ++ "い" ;
|
||||
i_stem = \\a,st => vp.te ! a ! st ++ "い" ;
|
||||
ba = \\a,st => vp.te ! a ! st ++ "いれば" ;
|
||||
verb = \\sp,a,st,t,p => vp.te ! sp ! a ! st ! Pos ++ (mkVerb "いる" Gr2).s ! st ! t ! p ;
|
||||
te = \\sp,a,st,p => vp.te ! sp ! a ! st ! Pos ++ mkExistV.te ! SomeoneElse ! Anim ! st ! p ;
|
||||
a_stem = \\sp,a,st => vp.te ! sp ! a ! st ! Pos ++ "い" ;
|
||||
i_stem = \\sp,a,st => vp.te ! sp ! a ! st ! Pos ++ "い" ;
|
||||
ba = \\sp,a,st,p => vp.te ! sp ! a ! st ! Pos ++ mkExistV.ba ! SomeoneElse ! Anim ! st ! p ;
|
||||
prep = vp.prep ;
|
||||
obj = vp.obj ;
|
||||
prepositive = vp.prepositive ;
|
||||
compar = vp.compar
|
||||
prepositive = vp.prepositive
|
||||
} ;
|
||||
|
||||
ImpPl1 vp = {s = \\st => vp.prepositive ! st ++ vp.obj ! st ++ vp.prep ++
|
||||
vp.i_stem ! Anim ! st ++ "ましょう"} ;
|
||||
ImpPl1 vp = {s = \\part,st => vp.prepositive ! st ++ vp.obj ! st ++ vp.prep ++
|
||||
vp.i_stem ! SomeoneElse ! Anim ! st ++ "ましょう" ; type = NoImp} ;
|
||||
|
||||
ImpP3 np vp = {s = \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "に" ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.a_stem ! Anim ! st ++ "せて"} ;
|
||||
ImpP3 np vp = {
|
||||
s = \\part => table {
|
||||
Resp => np.prepositive ! Resp ++ vp.prepositive ! Resp ++ np.s ! Resp ++ "を" ++
|
||||
vp.obj ! Resp ++ vp.prep ++ vp.a_stem ! SomeoneElse ! Anim ! Resp ++ "せて" ;
|
||||
Plain => np.prepositive ! Plain ++ vp.prepositive ! Plain ++ np.s ! Plain ++ "を" ++
|
||||
vp.obj ! Plain ++ vp.prep ++ vp.a_stem ! SomeoneElse ! Anim ! Plain ++ "せなさい"
|
||||
} ;
|
||||
type = Imper
|
||||
} ;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--# -path=.:../abstract:../common:../prelude
|
||||
|
||||
concrete LangJap of Lang =
|
||||
concrete LangJap of Lang =
|
||||
GrammarJap,
|
||||
LexiconJap
|
||||
;
|
||||
|
||||
@@ -4,51 +4,51 @@ flags coding = utf8 ;
|
||||
|
||||
lin
|
||||
|
||||
add_V3 = mkV3 "加え" "加え" "加える" "加えた" "に" "を" False ; -- "kuwaeru" "ni" "o"
|
||||
add_V3 = mkV3 "加える" "に" "を" Gr2 ; -- "kuwaeru"
|
||||
airplane_N = mkN "飛行機" Inanim "機" False ; -- "hikouki" "ki"
|
||||
alas_Interj = ss "残念です" ; -- "zannendesu"
|
||||
already_Adv = mkAdv "すでに" ; -- "sudeni"
|
||||
animal_N = mkN "動物" Anim "疋" True ; -- "doubutsu" "hiki"
|
||||
answer_V2S = mkV "答え" "答え" "答える" "答えた" ; -- "kotaeru"
|
||||
answer_V2S = mkV "答える" Gr2 ; -- "kotaeru"
|
||||
apartment_N = mkN "アパート" Inanim ; -- "apaato"
|
||||
apple_N = mkN "リンゴ" Inanim "個" False ; -- "ringo" "ko"
|
||||
art_N = mkN "芸術" Inanim ; -- "geijutsu"
|
||||
ashes_N = mkN "灰" Inanim ; -- "hai"
|
||||
ask_V2Q = mkV "聞か" "聞き" "聞く" "聞いた" ; -- "kiku"
|
||||
baby_N = mkN "赤ちゃん" Anim "人" False ; -- "akachan" "nin"
|
||||
ask_V2Q = mkV "聞く" Gr1 ; -- "kiku"
|
||||
baby_N = mkN "赤ちゃん" Anim "人" False "赤ちゃんたち" ; -- "akachan"
|
||||
back_N = mkN "背" Inanim ; -- "se"
|
||||
bad_A = mkA "悪い" ; -- "warui"
|
||||
bank_N = mkN "銀行" Inanim ; -- "ginkou"
|
||||
bark_N = mkN "木皮" Inanim ; -- "kohada" Inanim ;
|
||||
bark_N = mkN "木皮" Inanim ; -- "kohada"
|
||||
beautiful_A = mkA "美しい" ; -- "utsukushii"
|
||||
become_VA = mkV "なら" "なり" "なる" "なった" ; -- "naru"
|
||||
become_VA = mkV "なる" Gr1 ; -- "naru"
|
||||
beer_N = mkN "ビール" Inanim "杯" False ; -- "biiru" "hai"
|
||||
beg_V2V = mkV "請い願わ" "請い願い" "請い願う" "請い願った" ; -- "koinegau"
|
||||
beg_V2V = mkV "請い願う" Gr1 ; -- "koinegau"
|
||||
belly_N = mkN "お腹" "腹" Inanim ; -- "onaka" "hara"
|
||||
big_A = mkA "大きな" ; -- "ookina"
|
||||
bike_N = mkN "自転車" Inanim "台" False ; -- "jitensha" "dai"
|
||||
bird_N = mkN "鳥" Anim "羽" False ; -- "tori" "wa"
|
||||
bite_V2 = mkV2 "噛ま" "噛み" "噛む" "噛んだ" "を" ; -- "kamu" "o"
|
||||
bite_V2 = mkV2 "噛む" "を" Gr1 ; -- "kamu"
|
||||
black_A = mkA "黒い" ; -- "kuroi" ;
|
||||
blood_N = mkN "血液" Inanim ; -- "ketsueki"
|
||||
blow_V = mkV "吹か" "吹き" "吹く" "吹いた" ; -- "fuku"
|
||||
blow_V = mkV "吹く" Gr1 ; -- "fuku"
|
||||
blue_A = mkA "青い" ; -- "aoi" ;
|
||||
boat_N = mkN "ボート" Inanim "艘" False ; -- "bouto" "sou"
|
||||
bone_N = mkN "骨" Inanim ; -- "hone"
|
||||
book_N = mkN "本" Inanim "冊" False ; -- "hon" "satsu"
|
||||
boot_N = mkN "ブート" Inanim ; -- "buuto"
|
||||
boss_N = mkN "社長" Anim "人" False ; -- "shachou" "nin"
|
||||
boy_N = mkN "男の子" Anim "人" False ; -- "otokonoko" "nin"
|
||||
boss_N = mkN "社長" Anim "人" False "社長たち" ; -- "shachou"
|
||||
boy_N = mkN "男の子" Anim "人" False "男の子たち" ; -- "otokonoko"
|
||||
bread_N = mkN "パン" Inanim "斤" False ; -- "pan" "kin"
|
||||
break_V2 = mkV2 "破ら" "破り" "破る" "破った" "を" ; -- "yaburu" "o"
|
||||
break_V2 = mkV2 "破る" "を" Gr1 ; -- "yaburu"
|
||||
breast_N = mkN "胸" Inanim ; -- "mune"
|
||||
breathe_V = mkV "息し" "息し" "息する" "息した" ; -- "ikisuru"
|
||||
breathe_V = mkV "息する" Suru ; -- "ikisuru"
|
||||
broad_A = mkA "広い" ; -- "hiroi"
|
||||
brother_N2 = mkN2 "男の兄弟" "の" Anim "人" False ; -- ("otoko" ++ "no" ++ "kyodai") "no" "nin"
|
||||
brother_N2 = mkN2 "男の兄弟" Anim "人" False "男の兄弟たち" "の" ; -- "otokonokyodai"
|
||||
brown_A = mkA "ブラウンの" ; -- "buraunno"
|
||||
burn_V = mkV "焼けら" "焼けり" "焼ける" "焼けた" ; -- "yakeru"
|
||||
burn_V = mkV "焼ける" Gr2 ; -- "yakeru"
|
||||
butter_N = mkN "バター" Inanim ; -- "bataa"
|
||||
buy_V2 = mkV2 "買わ" "買い" "買う" "買った" "を" ; -- "kau"
|
||||
buy_V2 = mkV2 "買う" "を" Gr1 ; -- "kau"
|
||||
camera_N = mkN "カメラ" Inanim ; -- "kamera"
|
||||
cap_N = mkN "キャップ" Inanim ; -- "kyappu"
|
||||
car_N = mkN "車" Inanim "車" True ; -- "kuruma" "sha"
|
||||
@@ -57,140 +57,140 @@ lin
|
||||
ceiling_N = mkN "天井" Inanim ; -- "tenjou"
|
||||
chair_N = mkN "椅子" Inanim "脚" False ; -- "isu" "kyaku"
|
||||
cheese_N = mkN "チーズ" Inanim ; -- "chiizu"
|
||||
child_N = mkN "子" Anim "人" False ; -- "ko" "nin"
|
||||
child_N = mkN "子供" Anim "人" False "子供たち" ; -- "kodomo"
|
||||
church_N = mkN "教会" Inanim "軒" False ; -- "kyoukai" "ken"
|
||||
city_N = mkN "都市" Inanim ; -- "toshi"
|
||||
clean_A = mkA "奇麗な" ; -- "kireina" ;
|
||||
clever_A = mkA "賢い" ; -- "kashikoi" ;
|
||||
close_V2 = mkV2 "閉め" "閉め" "閉める" "閉めた" "を" ; -- "shimeru"
|
||||
close_V2 = mkV2 "閉める" "を" Gr2 ; -- "shimeru"
|
||||
cloud_N = mkN "雲" Inanim ; -- "kumo"
|
||||
coat_N = mkN "コート" Inanim ; -- "kouto"
|
||||
cold_A = mkA "寒い" ; -- "samui" ;
|
||||
come_V = mkV "来" "来" "来る" "来た" ; -- "ko" "ki" "kuru" "kita"
|
||||
come_V = mkV "来る" Kuru ; -- "ko" "ki" "kuru" "kita"
|
||||
computer_N = mkN "コンピュータ" Inanim ; -- "konpyuuta"
|
||||
correct_A = mkA "正しい" ; -- "tadashii" ;
|
||||
country_N = mkN "国" Inanim "ヶ国" True ; -- "kuni" "kakoku"
|
||||
count_V2 = mkV2 "数え" "数え" "数える" "数えた" "を" ; -- "kazoeru"
|
||||
cousin_N = mkN "いとこ" Anim "人" False ; -- "itoko" "nin"
|
||||
count_V2 = mkV2 "数える" "を" Gr2 ; -- "kazoeru"
|
||||
cousin_N = mkN "いとこ" Anim "人" False "いとこたち" ; -- "itoko"
|
||||
cow_N = mkN "牛" Anim "頭" False ; -- "ushi" "tou"
|
||||
cut_V2 = mkV2 "切ら" "切り" "切る" "切った" "を" ; -- "kiru"
|
||||
cut_V2 = mkV2 "切る" "を" Gr1 ; -- "kiru"
|
||||
day_N = mkN "日" Inanim "日" True ; -- "hi" "ka";
|
||||
die_V = mkV "死な" "死に" "死ぬ" "死んだ" ; -- "shinu"
|
||||
dig_V = mkV "掘ら" "掘り" "掘る" "掘った" ; -- "horu"
|
||||
die_V = mkV "死ぬ" Gr1 ; -- "shinu"
|
||||
dig_V = mkV "掘る" Gr1 ; -- "horu"
|
||||
dirty_A = mkA "汚い" ; -- "kitanai" ;
|
||||
distance_N3 = mkN3 "距離" "から" "まで" Inanim ; -- "kyori" "kara" "made"
|
||||
doctor_N = mkN "医者" Anim "人" False ; -- "isha" "nin"
|
||||
doctor_N = mkN "医者" Anim "人" False "医者たち" ; -- "isha"
|
||||
dog_N = mkN "犬" Anim "匹" False ; -- "inu" "hiki"
|
||||
door_N = mkN "ドア" Inanim ; -- "doa"
|
||||
do_V2 = mkV2 "し" "し" "する" "した" "を" ; -- "suru"
|
||||
drink_V2 = mkV2 "飲ま" "飲み" "飲む" "飲んだ" "を" ; -- "nomu"
|
||||
do_V2 = mkV2 "する" "を" Suru ; -- "suru"
|
||||
drink_V2 = mkV2 "飲む" "を" Gr1 ; -- "nomu"
|
||||
dry_A = mkA "乾性の" ; -- "kanseino" ;
|
||||
dull_A = mkA "詰まらない" ; -- "tsumaranai" ;
|
||||
dust_N = mkN "塵" Inanim ; -- "chiri"
|
||||
ear_N = mkN "耳" Inanim ; -- "mimi"
|
||||
earth_N = mkN "地" Inanim ; -- "chi"
|
||||
easy_A2V = mkA2 "簡単な" "に" ; -- "kantanna" "ni"
|
||||
eat_V2 = mkV2 "食べ" "食べ" "食べる" "食べた" "を" ; -- "taberu"
|
||||
eat_V2 = mkV2 "食べる" "を" Gr2 ; -- "taberu"
|
||||
egg_N = mkN "卵" Inanim ; -- "tamago"
|
||||
empty_A = mkA "虚しい" ; -- "munashii" ;
|
||||
enemy_N = mkN "敵" Anim "人" False ; -- "teki" "nin"
|
||||
enemy_N = mkN "敵" Anim "人" False "敵たち" ; -- "teki"
|
||||
eye_N = mkN "目" Inanim ; -- "me"
|
||||
factory_N = mkN "工場" Inanim ; -- "koujou"
|
||||
fall_V = mkV "落ち" "落ち" "落ちる" "落ちた" ; -- "ochiru"
|
||||
fall_V = mkV "落ちる" Gr2 ; -- "ochiru"
|
||||
far_Adv = mkAdv "遠くに" ; -- "tookuni"
|
||||
father_N2 = mkN2 "お父さん" "の" Anim "人" False ; -- "otousan" "no" Anim "nin" False ;
|
||||
father_N2 = mkN2 "お父さん" Anim "人" False "お父さんたち" "の" ; -- "otousan"
|
||||
fat_N = mkN "脂" Inanim ; -- "abura"
|
||||
fear_VS = mkV2 "恐れ" "恐れ" "恐れる" "恐れた" "ことを" ; -- "osoreru" ("koto" ++ "o") ;
|
||||
fear_V2 = mkV2 "恐れ" "恐れ" "恐れる" "恐れた" "を" ; -- "osoreru"
|
||||
fear_VS = mkV2 "恐れる" "ことを" Gr2 ; -- "osoreru"
|
||||
fear_V2 = mkV2 "恐れる" "を" Gr2 ; -- "osoreru"
|
||||
feather_N = mkN "羽" Inanim ; -- "hane"
|
||||
fight_V2 = mkV2 "戦わ" "戦い" "戦う" "戦った" "と" ; -- "tatakau"
|
||||
find_V2 = mkV2 "拾わ" "拾い" "拾う" "拾った" "を" ; -- "hirou"
|
||||
fight_V2 = mkV2 "戦う" "と" Gr1 ; -- "tatakau"
|
||||
find_V2 = mkV2 "拾う" "を" Gr1 ; -- "hirou"
|
||||
fingernail_N = mkN "爪" Inanim ; -- "tsume"
|
||||
fire_N = mkN "火" Inanim ; -- "hi"
|
||||
fish_N = mkN "魚" Anim "匹" False ; -- "sakana" "hiki"
|
||||
float_V = mkV "浮か" "浮き" "浮く" "浮いた" ; -- "uku"
|
||||
float_V = mkV "浮く" Gr1 ; -- "uku"
|
||||
floor_N = mkN "床" Inanim ; -- "yuka"
|
||||
flower_N = mkN "花" Inanim "輪" False ; -- "sakana" "rin"
|
||||
flow_V = mkV "流れ" "流れ" "流れる" "流れた" ; -- "nagareru"
|
||||
fly_V = mkV "飛ば" "飛び" "飛ぶ" "飛んだ" ; -- "tobu"
|
||||
flow_V = mkV "流れる" Gr2 ; -- "nagareru"
|
||||
fly_V = mkV "飛ぶ" Gr1 ; -- "tobu"
|
||||
fog_N = mkN "霧" Inanim ; -- "kiri"
|
||||
foot_N = mkN "足" Inanim ; -- "ashi"
|
||||
forest_N = mkN "森" Inanim ; -- "mori"
|
||||
forget_V2 = mkV2 "忘れ" "忘れ" "忘れる" "忘れた" "を" ; -- "wasureru"
|
||||
freeze_V = mkV "凍らさ" "凍らし" "凍らす" "凍らした" ; -- "kourasu"
|
||||
forget_V2 = mkV2 "忘れる" "を" Gr2 ; -- "wasureru"
|
||||
freeze_V = mkV "凍らす" Gr1 ; -- "kourasu"
|
||||
fridge_N = mkN "冷蔵庫" Inanim ; -- "reizouko"
|
||||
friend_N = mkN "友だち" Anim "人" False ; -- "tomodachi" "nin"
|
||||
friend_N = mkN "友だち" Anim "人" False ; -- "tomodachi"
|
||||
fruit_N = mkN "果物" Inanim "個" False ; -- "kudamono" "ko"
|
||||
full_A = mkA "一杯の" ; -- "ippaino" ;
|
||||
fun_AV = mkA "可笑しい" ; -- "okashii" ;
|
||||
garden_N = mkN "庭" Inanim ; -- "niwa"
|
||||
girl_N = mkN "女の子" Anim "人" False ; -- "onnanoko" "nin"
|
||||
give_V3 = mkV3 "上げ" "上げ" "上げる" "上げた" "に" "を" True ; -- "ageru" "ni" "o"
|
||||
girl_N = mkN "女の子" Anim "人" False "女の子たち" ; -- "onnanoko"
|
||||
give_V3 = mkGive ;
|
||||
glove_N = mkN "手袋" Inanim ; -- "tebukuro"
|
||||
gold_N = mkN "金" Inanim ; -- "kin"
|
||||
good_A = mkA "良い" ; -- "ii" ;
|
||||
go_V = mkV "行か" "行き" "行く" "行った" ; -- "iku"
|
||||
go_V = mkV "行く" Gr1 ; -- "iku"
|
||||
grammar_N = mkN "文法" Inanim ; -- "bumpou"
|
||||
grass_N = mkN "草" Inanim ; -- "kusa"
|
||||
green_A = mkA "緑の" ; -- "midorino" ;
|
||||
green_A = mkA "緑色の" ; -- "midoriirono" ;
|
||||
guts_N = mkN "腸" Inanim ; -- "harawata"
|
||||
hair_N = mkN "髪" Inanim ; -- "kami"
|
||||
hand_N = mkN "手" Inanim ; -- "te"
|
||||
harbour_N = mkN "港" Inanim ; -- "minato"
|
||||
hate_V2 = mkV2 "憎ま" "憎み" "憎む" "憎んだ" "を" ; -- "nikumu"
|
||||
hate_V2 = mkV2 "憎む" "を" Gr1 ; -- "nikumu"
|
||||
hat_N = mkN "帽子" Inanim ; -- "boushi"
|
||||
head_N = mkN "頭" Inanim ; -- "atama"
|
||||
heart_N = mkN "心" Inanim ; -- "kokoro"
|
||||
hear_V2 = mkV2 "聞か" "聞き" "聞く" "聞いた" "を" ; -- "kiku"
|
||||
hear_V2 = mkV2 "聞く" "を" Gr1 ; -- "kiku"
|
||||
heavy_A = mkA "重い" ; -- "omoi" ;
|
||||
hill_N = mkN "丘" Inanim ; -- "oka"
|
||||
hit_V2 = mkV2 "打た" "打ち" "打つ" "打った" "を" ; -- "utsu"
|
||||
hold_V2 = mkV2 "持た" "持ち" "持つ" "持った" "を" ; -- "motsu"
|
||||
hope_VS = mkV2 "期待し" "期待し" "期待する" "期待した" "ことを" ; -- "kitaisuru" ("koto" ++ "o") ;
|
||||
hit_V2 = mkV2 "打つ" "を" Gr1 ; -- "utsu"
|
||||
hold_V2 = mkV2 "持つ" "を" Gr1 ; -- "motsu"
|
||||
hope_VS = mkV2 "期待する" "ことを" Suru ; -- "kitaisuru"
|
||||
horn_N = mkN "角" Inanim "本" False ; -- "tsuno" "hon"
|
||||
horse_N = mkN "馬" Anim "頭" False ; -- "uma" "tou"
|
||||
hot_A = mkA "熱い" ; -- "atsui"
|
||||
house_N = mkN "家" Inanim "軒" True ; -- "ie" "ken"
|
||||
hunt_V2 = mkV2 "狩ら" "狩り" "狩る" "狩った" "を" ; -- "karu"
|
||||
husband_N = mkN "夫" Anim "人" False ; -- "otto" "nin"
|
||||
hunt_V2 = mkV2 "狩る" "を" Gr1 ; -- "karu"
|
||||
husband_N = mkN "夫" Anim "人" False "夫たち" ; -- "otto"
|
||||
ice_N = mkN "氷" Inanim ; -- "kouri"
|
||||
important_A = mkA "重要な" ; -- "juuyouna" ;
|
||||
industry_N = mkN "産業" Inanim ; -- "sagyou"
|
||||
iron_N = mkN "鉄" Inanim ; -- "tetsu"
|
||||
john_PN = mkPN "ジョン" "ジョンさん" ; -- "Jon" "Jon-san"
|
||||
jump_V = mkV "躍ら" "躍り" "躍る" "躍った" ; -- "odoru"
|
||||
kill_V2 = mkV2 "殺さ" "殺し" "殺す" "殺した" "を" ; -- "korosu"
|
||||
king_N = mkN "王" Anim "人" False ; -- "ou" "nin"
|
||||
john_PN = mkPN "ジョン" "ジョンさん" ;
|
||||
jump_V = mkV "躍る" Gr1 ; -- "odoru"
|
||||
kill_V2 = mkV2 "殺す" "を" Gr1 ; -- "korosu"
|
||||
king_N = mkN "王" Anim "人" False "王たち" ; -- "ou"
|
||||
knee_N = mkN "心" Inanim ; -- "kokoro"
|
||||
know_V2 = mkV2 "知ら" "知り" "知る" "知った" "を" ; -- "shiru" "o"
|
||||
know_VQ = mkV2 "知ら" "知り" "知る" "知った" "を" ; -- "shiru" "o"
|
||||
know_VS = mkV2 "知ら" "知り" "知る" "知った" "ことを" ; -- "shiru" ("koto" ++ "o") ;
|
||||
know_V2 = mkV2 "知る" "を" Gr1 ; -- "shiru"
|
||||
know_VQ = mkV2 "知る" "を" Gr1 ; -- "shiru"
|
||||
know_VS = mkV2 "知る" "ことを" Gr1 ; -- "shiru"
|
||||
lake_N = mkN "湖" Inanim ; -- "mizuumi"
|
||||
lamp_N = mkN "電灯" Inanim ; -- "dentou"
|
||||
language_N = mkN "言語" Inanim "語" True ; -- "gengo" "go"
|
||||
laugh_V = mkV "笑わ" "笑い" "笑う" "笑った" ; -- "warau"
|
||||
laugh_V = mkV "笑う" Gr1 ; -- "warau"
|
||||
leaf_N = mkN "葉" Inanim "葉" True ; -- "ha" "ha"
|
||||
learn_V2 = mkV2 "学ば" "学び" "学ぶ" "学んだ" "を" ; -- "manabu" "o"
|
||||
learn_V2 = mkV2 "学ぶ" "を" Gr1 ; -- "manabu"
|
||||
leather_N = mkN "皮革" Inanim ; -- "hikaku"
|
||||
leave_V2 = mkV2 "残さ" "残し" "残す" "残した" "を" ; -- "nokosu" "o"
|
||||
leave_V2 = mkV2 "残す" "を" Gr1 ; -- "nokosu"
|
||||
left_Ord = mkA "左の" ; -- "hidarino" ;
|
||||
leg_N = mkN "足" Inanim ; -- "ashi"
|
||||
lie_V = mkV "横になら" "横になり" "横になる" "横になった" ; -- "yokoninaru"
|
||||
like_V2 = mkV2 "好か" "好き" "好く" "好いた" "を" ; -- "suku" "o"
|
||||
listen_V2 = mkV2 "聞か" "聞き" "聞く" "聞いた" "を" ; -- "kiku"
|
||||
lie_V = mkV "横になる" Gr1 ; -- "yokoninaru"
|
||||
like_V2 = mkV2 "好く" "を" Gr1 ; -- "suku"
|
||||
listen_V2 = mkV2 "聞く" "を" Gr1 ; -- "kiku"
|
||||
liver_N = mkN "肝臓" Inanim ; -- "kanzou"
|
||||
live_V = mkV "生き" "生き" "生きる" "生きた" ; -- "ikiru"
|
||||
live_V = mkV "生きる" Gr2 ; -- "ikiru"
|
||||
long_A = mkA "長い" ; -- "nagai"
|
||||
lose_V2 = mkV2 "失わ" "失い" "失う" "失った" "を" ; -- "ushinau" "o"
|
||||
lose_V2 = mkV2 "失う" "を" Gr1 ; -- "ushinau"
|
||||
louse_N = mkN "虱" Anim "匹" False ; -- "shirami" "hiki"
|
||||
love_N = mkN "愛" Inanim ; -- "ai"
|
||||
love_V2 = mkV2 "愛し" "愛し" "愛する" "愛した" "を" ; -- "aisuru" "o" ;
|
||||
man_N = mkN "男" Anim "人" False ; -- "otoko" "nin"
|
||||
married_A2 = mkA2 "結婚している" "既婚の" "と" ; -- "kekkonshiteiru" "kikonno" "to" ;
|
||||
love_V2 = mkV2 "愛する" "を" Suru ; -- "aisuru"
|
||||
man_N = mkN "男" Anim "人" False "男たち" ; -- "otoko"
|
||||
married_A2 = mkA2 "結婚している" "既婚の" "と" ; -- "kekkonshiteiru" "kikonno"
|
||||
meat_N = mkN "肉" Inanim ; -- "niku"
|
||||
milk_N = mkN "ミルク" Inanim ; -- "miruku"
|
||||
moon_N = mkN "月" Inanim ; -- "tsuki"
|
||||
mother_N2 = mkN2 "お母さん" "の" Anim "人" False ; -- "okaasan" "no" "nin"
|
||||
mother_N2 = mkN2 "お母さん" Anim "人" False "お母さんたち" "の" ; -- "okaasan"
|
||||
mountain_N = mkN "山" Inanim "座" False ; -- "yama" "za"
|
||||
mouth_N = mkN "口" Inanim ; -- "kuchi"
|
||||
music_N = mkN "音楽" Inanim ; -- "ongaku"
|
||||
@@ -206,29 +206,29 @@ lin
|
||||
number_N = mkN "数" Inanim "数" True ; -- "kazu" "suu"
|
||||
oil_N = mkN "油" Inanim ; -- "abura"
|
||||
old_A = mkA "古い" ; -- "furui"
|
||||
open_V2 = mkV2 "開か" "開き" "開く" "開いた" "を" ; -- "hiraku" "o"
|
||||
paint_V2A = mkV "塗ら" "塗り" "塗る" "塗った" ; -- "nuru"
|
||||
open_V2 = mkV2 "開く" "を" Gr1 ; -- "hiraku"
|
||||
paint_V2A = mkV "塗る" Gr1 ; -- "nuru"
|
||||
paper_N = mkN "紙" Inanim "葉" False ; -- "kami" "you"
|
||||
paris_PN = mkPN "パリ" ; -- "pari"
|
||||
paris_PN = mkPN "パリ" ;
|
||||
peace_N = mkN "平和" Inanim ; -- "heiwa"
|
||||
pen_N = mkN "ペン" Inanim "本" False ; -- "pen" "hon"
|
||||
person_N = mkN "人" Anim "人" True ; -- "hito" "nin"
|
||||
person_N = mkN "人" Anim "人" True "人たち" ; -- "hito"
|
||||
planet_N = mkN "惑星" Inanim ; -- "wakusei"
|
||||
plastic_N = mkN "プラスチック" Inanim ; -- "purasutikku"
|
||||
play_V2 = mkV2 "遊ば" "遊び" "遊ぶ" "遊んだ" "を" ; -- "asobu" "o"
|
||||
play_V = mkV "遊ば" "遊び" "遊ぶ" "遊んだ" ; -- "asobu"
|
||||
policeman_N = mkN "警官" Anim "人" False ; -- "keikan" "nin"
|
||||
priest_N = mkN "神父" Anim "人" False ; -- "shimpu" "nin"
|
||||
play_V2 = mkV2 "遊ぶ" "を" Gr1 ; -- "asobu"
|
||||
play_V = mkV "遊ぶ" Gr1 ; -- "asobu"
|
||||
policeman_N = mkN "警官" Anim "人" False "警官たち" ; -- "keikan" "nin"
|
||||
priest_N = mkN "神父" Anim "人" False "神父たち" ; -- "shimpu" "nin"
|
||||
probable_AS = mkA "可能な" ; -- "kanouna"
|
||||
pull_V2 = mkV2 "引か" "引き" "引く" "引いた" "を" ; -- "hiku" "o"
|
||||
push_V2 = mkV2 "押さ" "押し" "押す" "押した" "を" ; -- "osu" "o"
|
||||
put_V2 = mkV2 "置か" "置き" "置く" "置いた" "を" ; -- "oku" "o"
|
||||
queen_N = mkN "女王" Anim "人" False ; -- "joou" "nin"
|
||||
pull_V2 = mkV2 "引く" "を" Gr1 ; -- "hiku"
|
||||
push_V2 = mkV2 "押す" "を" Gr1 ; -- "osu"
|
||||
put_V2 = mkV2 "置く" "を" Gr1 ; -- "oku"
|
||||
queen_N = mkN "女王" Anim "人" False "女王たち" ; -- "joou"
|
||||
question_N = mkN "質問" Inanim "題" True ; -- "shitsumon" "dai"
|
||||
radio_N = mkN "ラジオ" Inanim ; -- "rajio"
|
||||
rain_N = mkN "雨" Inanim ; -- "ame"
|
||||
rain_V0 = mkV "降ら" "降り" "降る" "降った" ; -- "furu" - needs "rain" as a subject!
|
||||
read_V2 = mkV2 "読ま" "読み" "読む" "読んだ" "を" ; -- "yomu" "o"
|
||||
rain_V0 = mkRain ;
|
||||
read_V2 = mkV2 "読む" "を" Gr1 ; -- "yomu"
|
||||
ready_A = mkA "準備ができている" "準備ができて" ; -- "jumbigadekiteiru"
|
||||
reason_N = mkN "理由" Inanim ; -- "riyuu"
|
||||
red_A = mkA "赤い" ; -- "akai"
|
||||
@@ -244,22 +244,22 @@ lin
|
||||
rotten_A = mkA "腐っている" "腐った" ; -- "kusatteiru"
|
||||
round_A = mkA "丸い" ; -- "marui"
|
||||
rubber_N = mkN "ゴム" Inanim ; -- "gomu" - material
|
||||
rub_V2 = mkV2 "摩ら" "摩り" "摩る" "摩った" "を" ; -- "suru" "o"
|
||||
rub_V2 = mkV2 "摩る" "を" Gr1 ; -- "suru"
|
||||
rule_N = mkN "定め" Inanim "則" True ; -- "sadame" "soku"
|
||||
run_V = mkV "走ら" "走り" "走る" "走った" ; -- "hashiru"
|
||||
run_V = mkV "走る" Gr1 ; -- "hashiru"
|
||||
salt_N = mkN "塩" Inanim ; -- "shio"
|
||||
sand_N = mkN "砂" Inanim ; -- "suna"
|
||||
say_VS = mkV2 "言わ" "言い" "言う" "言った" "と" ; -- "iu" "to"
|
||||
say_VS = mkV2 "言う" "と" Gr1 ; -- "iu"
|
||||
school_N = mkN "学校" Inanim ; -- "gakkou"
|
||||
science_N = mkN "科学" Inanim ; -- "kagaku"
|
||||
scratch_V2 = mkV2 "掻か" "掻き" "掻く" "掻いた" "を" ; -- "kaku" "o"
|
||||
scratch_V2 = mkV2 "掻く" "を" Gr1 ; -- "kaku"
|
||||
sea_N = mkN "海" Inanim ; -- "umi"
|
||||
seed_N = mkN "種" Inanim ; -- "tane"
|
||||
seek_V2 = mkV2 "探さ" "探し" "探す" "探した" "を" ; -- "sagasu" "o"
|
||||
see_V2 = mkV2 "見" "見" "見る" "見た" "を" ; -- "miru" "o"
|
||||
sell_V3 = mkV3 "売ら" "売り" "売る" "売った" "に" "を" False ; -- "uru" "ni" "o"
|
||||
send_V3 = mkV3 "送ら" "送り" "送る" "送った" "に" "を" False ; -- "okuru" "ni" "o"
|
||||
sew_V = mkV "縫わ" "縫い" "縫う" "縫った" ; -- "nuu"
|
||||
seek_V2 = mkV2 "探す" "を" Gr1 ; -- "sagasu"
|
||||
see_V2 = mkV2 "見る" "を" Gr2 ; -- "miru"
|
||||
sell_V3 = mkV3 "売る" "に" "を" Gr1 ; -- "uru"
|
||||
send_V3 = mkV3 "送る" "に" "を" Gr1 ; -- "okuru"
|
||||
sew_V = mkV "縫う" Gr1 ; -- "nuu"
|
||||
sharp_A = mkA "鋭い" ; -- "surudoi"
|
||||
sheep_N = mkN "羊" Anim "頭" False ; -- "hitsuji" "tou"
|
||||
ship_N = mkN "船" Inanim "杯" False ; -- "fune" "hai"
|
||||
@@ -268,87 +268,87 @@ lin
|
||||
shop_N = mkN "店" Inanim "店" True ; -- "mise" "ten"
|
||||
short_A = mkA "短い" ; -- "mijikai"
|
||||
silver_N = mkN "銀" Inanim ; -- "gin"
|
||||
sing_V = mkV "歌わ" "歌い" "歌う" "歌った" ; -- "utau"
|
||||
sister_N = mkN "シスター" Anim "人" False ; -- "shisutaa" "nin"
|
||||
sit_V = mkV "座ら" "座り" "座る" "座った" ; -- "suwaru"
|
||||
sing_V = mkV "歌う" Gr1 ; -- "utau"
|
||||
sister_N = mkN "シスター" Anim "人" False "シスターたち" ; -- "shisutaa"
|
||||
sit_V = mkV "座る" Gr1 ; -- "suwaru"
|
||||
skin_N = mkN "皮膚" Inanim ; -- "hifu"
|
||||
sky_N = mkN "空" Inanim ; -- "sora"
|
||||
sleep_V = mkV "寝" "寝" "寝る" "寝た" ; -- "neru"
|
||||
sleep_V = mkV "寝る" Gr2 ; -- "neru"
|
||||
small_A = mkA "小さい" ; -- "chisai"
|
||||
smell_V = mkV "匂わ" "匂い" "匂う" "匂った" ; -- "niou"
|
||||
smell_V = mkV "匂う" Gr1 ; -- "niou"
|
||||
smoke_N = mkN "煙" Inanim ; -- "kemuri"
|
||||
smooth_A = mkA "平滑な" ; -- "heikatsuna"
|
||||
snake_N = mkN "蛇" Anim "匹" False ; -- "hebi" "hiki"
|
||||
snow_N = mkN "雪" Inanim ; -- "yuki"
|
||||
sock_N = mkN "靴下" Inanim ; -- "kutsushita"
|
||||
song_N = mkN "歌" Inanim "曲" False ; -- "uta" "kyoku"
|
||||
speak_V2 = mkV2 "話さ" "話し" "話す" "話した" "について" ; -- "hanasu" "nitsuite" (=about)
|
||||
spit_V = mkV "唾し" "唾し" "唾する" "唾した" ; -- "tsubakisuru"
|
||||
split_V2 = mkV2 "分かた" "分かち" "分かつ" "分かった" "を" ; -- "wakatsu" "o"
|
||||
squeeze_V2 = mkV2 "絞ら" "絞り" "絞る" "絞った" "を" ; -- "shiboru" "o"
|
||||
stab_V2 = mkV2 "刺さ" "刺し" "刺す" "刺した" "を" ; -- "sasu" "o"
|
||||
stand_V = mkV "立た" "立ち" "立つ" "立った" ; -- "tatsu"
|
||||
speak_V2 = mkV2 "話す" "を" Gr1 ; -- "hanasu"
|
||||
spit_V = mkV "唾する" Suru ; -- "tsubakisuru"
|
||||
split_V2 = mkV2 "分かつ" "を" Gr1 ; -- "wakatsu"
|
||||
squeeze_V2 = mkV2 "絞る" "を" Gr1 ; -- "shiboru"
|
||||
stab_V2 = mkV2 "刺す" "を" Gr1 ; -- "sasu"
|
||||
stand_V = mkV "立つ" Gr1 ; -- "tatsu"
|
||||
star_N = mkN "星" Inanim ; -- "hoshi"
|
||||
steel_N = mkN "鋼" Inanim ; -- "hagane"
|
||||
stick_N = mkN "棒" Inanim "本" False ; -- "bou" "hon"
|
||||
stone_N = mkN "石" Inanim ; -- "ishi"
|
||||
stop_V = mkV "止まら" "止まり" "止まる" "止まった" ; -- "tomaru"
|
||||
stop_V = mkV "止まる" Gr1 ; -- "tomaru"
|
||||
stove_N = mkN "ストーブ" Inanim ; -- "sutobu"
|
||||
straight_A = mkA "直な" ; -- "chokuna"
|
||||
student_N = mkN "学生" Anim "人" False ; -- "gakusei" "nin"
|
||||
student_N = mkN "学生" Anim "人" False "学生たち"; -- "gakusei"
|
||||
stupid_A = mkA "愚かな" ; -- "orokana"
|
||||
suck_V2 = mkV2 "吸わ" "吸い" "吸う" "吸った" "を" ; -- "suu" "o"
|
||||
suck_V2 = mkV2 "吸う" "を" Gr1 ; -- "suu"
|
||||
sun_N = mkN "太陽" Inanim ; -- "taiyou"
|
||||
swell_V = mkV "膨らま" "膨らみ" "膨らむ" "膨らんだ" ; -- "fukuramu"
|
||||
swim_V = mkV "泳が" "泳ぎ" "泳ぐ" "泳いだ" ; -- "oyogu"
|
||||
switch8off_V2 = mkV2 "スイッチを切ら" "スイッチを切り" "スイッチを切る" "スイッチを切った" "の" ; -- "suitchiokiru" "o"
|
||||
switch8on_V2 = mkV2 "スイッチを入れ" "スイッチを入れ" "スイッチを入れる" "スイッチを入れた" "の" ; -- "suitchioireru" "o"
|
||||
swell_V = mkV "膨らむ" Gr1 ; -- "fukuramu"
|
||||
swim_V = mkV "泳ぐ" Gr1 ; -- "oyogu"
|
||||
switch8off_V2 = mkV2 "スイッチを切る" "の" Gr1 ; -- "suitchiokiru"
|
||||
switch8on_V2 = mkV2 "スイッチを入れる" "の" Gr2 ; -- "suitchioireru"
|
||||
table_N = mkN "テーブル" Inanim "脚" False ; -- "teburu" "kyaku"
|
||||
tail_N = mkN "尾" Inanim ; -- "o"
|
||||
talk_V3 = mkV3 "話さ" "話し" "話す" "話した" "と" "について" False ; -- "hanasu" "to" "nitsuite"
|
||||
teacher_N = mkN "先生" Anim "人" False ; -- "sensei" "nin"
|
||||
teach_V2 = mkV2 "教え" "教え" "教える" "教えた" "を" ; -- "oshieru" "o"
|
||||
talk_V3 = mkV3 "話す" "と" "について" Gr1 ; -- "hanasu"
|
||||
teacher_N = mkN "先生" Anim "人" False "先生たち" ; -- "sensei"
|
||||
teach_V2 = mkV2 "教える" "を" Gr2 ; -- "oshieru"
|
||||
television_N = mkN "テレビ" Inanim ; -- "terebi"
|
||||
thick_A = mkA "厚い" ; -- "atsui"
|
||||
thin_A = mkA "薄い" ; -- "usui"
|
||||
think_V = mkV "考え" "考え" "考える" "考えた" ; -- "kangaeru"
|
||||
throw_V2 = mkV2 "投げ" "投げ" "投げる" "投げた" "を" ; -- "nageru" "o"
|
||||
tie_V2 = mkV2 "結ば" "結び" "結ぶ" "結んだ" "を" ; -- "musubu" "o"
|
||||
think_V = mkV "考える" Gr2 ; -- "kangaeru"
|
||||
throw_V2 = mkV2 "投げる" "を" Gr2 ; -- "nageru"
|
||||
tie_V2 = mkV2 "結ぶ" "を" Gr1 ; -- "musubu"
|
||||
today_Adv = mkAdv "今日" ; -- "kyou" ;
|
||||
tongue_N = mkN "舌" Inanim ; -- "shita"
|
||||
tooth_N = mkN "歯" Inanim ; -- "ha"
|
||||
train_N = mkN "電車" Inanim "列車" True ; -- "densha" "ressha"
|
||||
travel_V = mkV "旅行し" "旅行し" "旅行する" "旅行した" ; -- "ryokousuru"
|
||||
travel_V = mkV "旅行する" Suru ; -- "ryokousuru"
|
||||
tree_N = mkN "木" Inanim "樹" True ; -- "ki" "ju"
|
||||
turn_V = mkV "回ら" "回り" "回る" "回った" ; -- "mawaru"
|
||||
turn_V = mkV "回る" Gr1 ; -- "mawaru"
|
||||
ugly_A = mkA "醜い" ; -- "mnikui"
|
||||
uncertain_A = mkA "危なっかしい" ; -- "abunakkashii"
|
||||
understand_V2 = mkV2 "理解し" "理解し" "理解する" "理解した" "を" ; -- "rikaisuru" "o"
|
||||
understand_V2 = mkV2 "理解する" "を" Suru ; -- "rikaisuru"
|
||||
university_N = mkN "大学" Inanim ; -- "daigaku"
|
||||
village_N = mkN "村" Inanim "村" True ; -- "mura" "son"
|
||||
vomit_V = mkV "吐か" "吐き" "吐く" "吐いた" ; -- "haku"
|
||||
wait_V2 = mkV2 "待た" "待ち" "待つ" "待った" "を" ; -- "matsu" "o"
|
||||
walk_V = mkV "歩か" "歩き" "歩く" "歩いた" ; -- "aruku"
|
||||
vomit_V = mkV "吐く" Gr1 ; -- "haku"
|
||||
wait_V2 = mkV2 "待つ" "を" Gr1 ; -- "matsu"
|
||||
walk_V = mkV "歩く" Gr1 ; -- "aruku"
|
||||
warm_A = mkA "暖かい" ; -- "atatakai"
|
||||
war_N = mkN "戦争" Inanim ; -- "sensou"
|
||||
wash_V2 = mkV2 "洗わ" "洗い" "洗う" "洗った" "を" ; -- "arau" "o"
|
||||
watch_V2 = mkV2 "見" "見" "見る" "見た" "を" ; -- "miru" "o"
|
||||
wash_V2 = mkV2 "洗う" "を" Gr1 ; -- "arau"
|
||||
watch_V2 = mkV2 "見る" "を" Gr2 ; -- "miru"
|
||||
water_N = mkN "水" Inanim ; -- "mizu"
|
||||
wet_A = mkA "濡れている" "濡れた" ; -- "nureteiru"
|
||||
white_A = mkA "白い" ; -- "shiroi"
|
||||
wide_A = mkA "広い" ; -- "hiroi"
|
||||
wife_N = mkN "妻" Anim "人" False ; -- "tsuma" "nin"
|
||||
wife_N = mkN "妻" Anim "人" False "妻たち" ; -- "tsuma"
|
||||
wind_N = mkN "風" Inanim ; -- "kaze"
|
||||
window_N = mkN "窓" Inanim ; -- "mado"
|
||||
wine_N = mkN "ワイン" Inanim ; -- "wain"
|
||||
wing_N = mkN "翼" Inanim ; -- "tsubasa"
|
||||
win_V2 = mkV2 "勝た" "勝ち" "勝つ" "勝った" "を" ; -- "katsu" "o"
|
||||
wipe_V2 = mkV2 "拭か" "拭き" "拭く" "拭いた" "を" ; -- "fuku" "o"
|
||||
woman_N = mkN "女" Anim "人" False ; -- "onna" "nin"
|
||||
wonder_VQ = mkV2 "質問し" "質問し" "質問する" "質問した" "を" ; -- "shitsumonsuru" "o"
|
||||
win_V2 = mkV2 "勝つ" "を" Gr1 ; -- "katsu"
|
||||
wipe_V2 = mkV2 "拭く" "を" Gr1 ; -- "fuku"
|
||||
woman_N = mkN "女" Anim "人" False "女たち" ; -- "onna"
|
||||
wonder_VQ = mkV2 "質問する" "を" Suru ; -- "shitsumonsuru"
|
||||
wood_N = mkN "木材" Inanim ; -- "mokuzai"
|
||||
worm_N = mkN "ワーム" Anim "匹" False ; -- "waamu" "hiki"
|
||||
write_V2 = mkV2 "書か" "書き" "書く" "書いた" "を" ; -- "kaku" "o"
|
||||
write_V2 = mkV2 "書く" "を" Gr1 ; -- "kaku"
|
||||
year_N = mkN "年" Inanim "年" True ; -- "toshi" "nen"
|
||||
yellow_A = mkA "黄色の" ; -- "kiirono"
|
||||
young_A = mkA "若い" ; -- "wakai"
|
||||
|
||||
@@ -7,10 +7,14 @@ flags coding = utf8 ;
|
||||
DetCN det cn = {
|
||||
s = \\st => case det.inclCard of {
|
||||
True => case cn.counterReplace of {
|
||||
True => cn.object ! st ++ det.quant ! st++ det.num ++ cn.counter ++ det.postpositive ;
|
||||
False => cn.object ! st ++ det.quant ! st ++ cn.s ! det.n ! st ++
|
||||
"の" ++ det.num ++ cn.counter ++ det.postpositive
|
||||
} ;
|
||||
True => cn.object ! st ++ det.quant ! st ++ det.num ++ cn.counter ++ det.postpositive ;
|
||||
False => case <det.tenPlus, cn.counterTsu> of {
|
||||
<True, True> => cn.object ! st ++ det.quant ! st ++ cn.s ! det.n ! st ++
|
||||
"の" ++ det.num ++ det.postpositive ;
|
||||
_ => cn.object ! st ++ det.quant ! st ++ cn.s ! det.n ! st ++ "の" ++
|
||||
det.num ++ cn.counter ++ det.postpositive
|
||||
}
|
||||
} ;
|
||||
False => cn.object ! st ++ det.quant ! st ++ det.num ++ cn.s ! det.n ! st
|
||||
} ;
|
||||
prepositive = cn.prepositive ;
|
||||
@@ -19,7 +23,7 @@ flags coding = utf8 ;
|
||||
True => True ;
|
||||
False => False
|
||||
} ;
|
||||
Pron1Sg = False ;
|
||||
meaning = SomeoneElse ;
|
||||
anim = cn.anim
|
||||
} ;
|
||||
|
||||
@@ -28,7 +32,7 @@ flags coding = utf8 ;
|
||||
prepositive = \\st => [] ;
|
||||
needPart = True ;
|
||||
changePolar = False ;
|
||||
Pron1Sg = False ;
|
||||
meaning = SomeoneElse ;
|
||||
anim = pn.anim
|
||||
} ;
|
||||
|
||||
@@ -37,7 +41,10 @@ flags coding = utf8 ;
|
||||
prepositive = \\st => [] ;
|
||||
needPart = True ;
|
||||
changePolar = False ;
|
||||
Pron1Sg = pron.Pron1Sg ;
|
||||
meaning = case pron.Pron1Sg of {
|
||||
True => Me ;
|
||||
False => SomeoneElse
|
||||
} ;
|
||||
anim = pron.anim
|
||||
} ;
|
||||
|
||||
@@ -49,7 +56,7 @@ flags coding = utf8 ;
|
||||
True => True ;
|
||||
False => np.changePolar
|
||||
} ;
|
||||
Pron1Sg = np.Pron1Sg ;
|
||||
meaning = np.meaning ;
|
||||
anim = np.anim
|
||||
} ;
|
||||
|
||||
@@ -58,7 +65,7 @@ flags coding = utf8 ;
|
||||
prepositive = np.prepositive ;
|
||||
needPart = np.needPart ;
|
||||
changePolar = np.changePolar ;
|
||||
Pron1Sg = np.Pron1Sg ;
|
||||
meaning = np.meaning ;
|
||||
anim = np.anim
|
||||
} ;
|
||||
|
||||
@@ -73,7 +80,7 @@ flags coding = utf8 ;
|
||||
} ;
|
||||
needPart = np.needPart ;
|
||||
changePolar = np.changePolar ;
|
||||
Pron1Sg = np.Pron1Sg ;
|
||||
meaning = np.meaning ;
|
||||
anim = np.anim
|
||||
} ;
|
||||
|
||||
@@ -82,7 +89,7 @@ flags coding = utf8 ;
|
||||
prepositive = np.prepositive ;
|
||||
needPart = np.needPart ;
|
||||
changePolar = np.changePolar ;
|
||||
Pron1Sg = np.Pron1Sg ;
|
||||
meaning = np.meaning ;
|
||||
anim = np.anim
|
||||
} ;
|
||||
|
||||
@@ -94,7 +101,7 @@ flags coding = utf8 ;
|
||||
True => True ;
|
||||
False => False
|
||||
} ;
|
||||
Pron1Sg = False ;
|
||||
meaning = SomeoneElse ;
|
||||
anim = Inanim -- not always, depends on the context
|
||||
} ;
|
||||
|
||||
@@ -105,10 +112,14 @@ flags coding = utf8 ;
|
||||
n = num.n ;
|
||||
inclCard = num.inclCard ;
|
||||
sp = \\st => case num.inclCard of {
|
||||
True => quant.s ! st ++ num.s ++ "つ" ++ num.postpositive ;
|
||||
True => case num.tenPlus of {
|
||||
False => quant.s ! st ++ num.s ++ "つ" ++ num.postpositive ;
|
||||
True => quant.s ! st ++ num.s ++ num.postpositive
|
||||
} ;
|
||||
False => quant.sp ! st ++ num.s
|
||||
} ;
|
||||
no = quant.no
|
||||
no = quant.no ;
|
||||
tenPlus = num.tenPlus
|
||||
} ;
|
||||
|
||||
DetQuantOrd quant num ord = {
|
||||
@@ -118,15 +129,19 @@ flags coding = utf8 ;
|
||||
n = num.n ;
|
||||
inclCard = num.inclCard ;
|
||||
sp = \\st => case num.inclCard of {
|
||||
True => quant.s ! st ++ ord.attr ++ num.s ++ "つ" ++ num.postpositive ;
|
||||
True => case num.tenPlus of {
|
||||
False => quant.s ! st ++ ord.attr ++ num.s ++ "つ" ++ num.postpositive ;
|
||||
True => quant.s ! st ++ ord.attr ++ num.s ++ num.postpositive
|
||||
} ;
|
||||
False => quant.s ! st ++ ord.attr ++ num.s
|
||||
} ;
|
||||
no = quant.no
|
||||
no = quant.no ;
|
||||
tenPlus = num.tenPlus
|
||||
} ;
|
||||
|
||||
NumSg = mkNum "" Sg False ;
|
||||
NumSg = mkNum "" Sg ;
|
||||
|
||||
NumPl = mkNum "" Pl False ;
|
||||
NumPl = mkNum "" Pl ;
|
||||
|
||||
NumCard card = card ** {inclCard = True} ;
|
||||
|
||||
@@ -138,39 +153,41 @@ flags coding = utf8 ;
|
||||
True => {
|
||||
s = card.s ;
|
||||
postpositive = adn.s ;
|
||||
n = card.n
|
||||
n = card.n ;
|
||||
tenPlus = card.tenPlus
|
||||
} ;
|
||||
False => {
|
||||
s = adn.s ++ card.s ;
|
||||
postpositive = [] ;
|
||||
n = card.n
|
||||
n = card.n ;
|
||||
tenPlus = card.tenPlus
|
||||
}
|
||||
} ;
|
||||
|
||||
OrdDigits d = {
|
||||
pred = \\st,t,p => d.s ++ "番目" ++ mkCopula.s ! st ! t ! p ; -- "banme"
|
||||
attr = d.s ++ "番目の" ;
|
||||
te = d.s ++ "番目" ++ mkCopula.te ;
|
||||
ba = d.s ++ "番目" ++ mkCopula.ba ;
|
||||
adv = d.s ++ "番目" ;
|
||||
te = \\p => d.s ++ "番目" ++ mkCopula.te ! p ;
|
||||
ba = \\p => d.s ++ "番目" ++ mkCopula.ba ! p ;
|
||||
adv = \\p => d.s ++ "番目" ;
|
||||
dropNaEnging = d.s ++ "番目の"
|
||||
} ;
|
||||
|
||||
OrdNumeral num = {
|
||||
pred = \\st,t,p => num.s ++ "番目" ++ mkCopula.s ! st ! t ! p ;
|
||||
attr = num.s ++ "番目の" ;
|
||||
te = num.s ++ "番目" ++ mkCopula.te ;
|
||||
ba = num.s ++ "番目" ++ mkCopula.ba ;
|
||||
adv = num.s ++ "番目" ;
|
||||
te = \\p => num.s ++ "番目" ++ mkCopula.te ! p ;
|
||||
ba = \\p => num.s ++ "番目" ++ mkCopula.ba ! p ;
|
||||
adv = \\p => num.s ++ "番目" ;
|
||||
dropNaEnging = num.s ++ "番目の"
|
||||
} ;
|
||||
|
||||
OrdSuperl a = {
|
||||
pred = \\st,t,p => "一番" ++ a.pred ! st ! t ! p ; -- "ichiban"
|
||||
attr = "一番" ++ a.attr ;
|
||||
te = "一番" ++ a.te ;
|
||||
ba = "一番" ++ a.ba ;
|
||||
adv = "一番" ++ a.adv ;
|
||||
te = \\p => "一番" ++ a.te ! p ;
|
||||
ba = \\p => "一番" ++ a.ba ! p ;
|
||||
adv = \\p => "一番" ++ a.adv ! p ;
|
||||
dropNaEnging = "一番" ++ a.dropNaEnging
|
||||
} ;
|
||||
|
||||
@@ -183,7 +200,7 @@ flags coding = utf8 ;
|
||||
prepositive = cn.prepositive ;
|
||||
needPart = True ;
|
||||
changePolar = False ;
|
||||
Pron1Sg = False ;
|
||||
meaning = SomeoneElse ;
|
||||
anim = cn.anim
|
||||
} ;
|
||||
|
||||
@@ -199,7 +216,8 @@ flags coding = utf8 ;
|
||||
hasAttr = False ;
|
||||
anim = n.anim ;
|
||||
counter = n.counter ;
|
||||
counterReplace = n.counterReplace
|
||||
counterReplace = n.counterReplace ;
|
||||
counterTsu = n.counterTsu
|
||||
} ;
|
||||
|
||||
ComplN2 n2 np = {
|
||||
@@ -209,7 +227,8 @@ flags coding = utf8 ;
|
||||
hasAttr = False ;
|
||||
anim = n2.anim ;
|
||||
counter = n2.counter ;
|
||||
counterReplace = n2.counterReplace
|
||||
counterReplace = n2.counterReplace ;
|
||||
counterTsu = n2.counterTsu
|
||||
} ;
|
||||
|
||||
ComplN3 n3 np = {
|
||||
@@ -219,7 +238,8 @@ flags coding = utf8 ;
|
||||
prep = n3.prep2 ;
|
||||
anim = n3.anim ;
|
||||
counter = n3.counter ;
|
||||
counterReplace = n3.counterReplace
|
||||
counterReplace = n3.counterReplace ;
|
||||
counterTsu = n3.counterTsu
|
||||
} ;
|
||||
|
||||
UseN2 n2 = {
|
||||
@@ -229,7 +249,8 @@ flags coding = utf8 ;
|
||||
hasAttr = False ;
|
||||
anim = n2.anim ;
|
||||
counter = n2.counter ;
|
||||
counterReplace = n2.counterReplace
|
||||
counterReplace = n2.counterReplace ;
|
||||
counterTsu = n2.counterTsu
|
||||
} ;
|
||||
|
||||
Use2N3 n3 = {
|
||||
@@ -238,7 +259,8 @@ flags coding = utf8 ;
|
||||
prep = n3.prep1 ;
|
||||
anim = n3.anim ;
|
||||
counter = n3.counter ;
|
||||
counterReplace = n3.counterReplace
|
||||
counterReplace = n3.counterReplace;
|
||||
counterTsu = n3.counterTsu
|
||||
} ;
|
||||
|
||||
Use3N3 n3 = {
|
||||
@@ -247,20 +269,22 @@ flags coding = utf8 ;
|
||||
prep = n3.prep2 ;
|
||||
anim = n3.anim ;
|
||||
counter = n3.counter ;
|
||||
counterReplace = n3.counterReplace
|
||||
counterReplace = n3.counterReplace;
|
||||
counterTsu = n3.counterTsu
|
||||
} ;
|
||||
|
||||
AdjCN ap cn = {
|
||||
s = \\n,st => case cn.hasAttr of {
|
||||
False => ap.attr ! st ++ cn.s ! n ! st ;
|
||||
True => ap.te ! st ++ cn.s ! n ! st
|
||||
True => ap.te ! st ! Pos ++ cn.s ! n ! st
|
||||
} ;
|
||||
object = cn.object ;
|
||||
prepositive = cn.prepositive ;
|
||||
hasAttr = True ;
|
||||
anim = cn.anim ;
|
||||
counter = cn.counter ;
|
||||
counterReplace = cn.counterReplace
|
||||
counterReplace = cn.counterReplace ;
|
||||
counterTsu = cn.counterTsu
|
||||
} ;
|
||||
|
||||
RelCN cn rs = {
|
||||
@@ -270,7 +294,8 @@ flags coding = utf8 ;
|
||||
counterReplace = cn.counterReplace ;
|
||||
object = \\st => rs.s ! cn.anim ! st ++ cn.object ! st ;
|
||||
prepositive = cn.prepositive ;
|
||||
hasAttr = cn.hasAttr
|
||||
hasAttr = cn.hasAttr ;
|
||||
counterTsu = cn.counterTsu
|
||||
} ;
|
||||
|
||||
AdvCN cn adv = {
|
||||
@@ -286,7 +311,8 @@ flags coding = utf8 ;
|
||||
hasAttr = cn.hasAttr ;
|
||||
anim = cn.anim ;
|
||||
counter = cn.counter ;
|
||||
counterReplace = cn.counterReplace
|
||||
counterReplace = cn.counterReplace ;
|
||||
counterTsu = cn.counterTsu
|
||||
} ;
|
||||
|
||||
SentCN cn sc = {
|
||||
@@ -296,7 +322,8 @@ flags coding = utf8 ;
|
||||
hasAttr = cn.hasAttr ;
|
||||
anim = cn.anim ;
|
||||
counter = cn.counter ;
|
||||
counterReplace = cn.counterReplace
|
||||
counterReplace = cn.counterReplace;
|
||||
counterTsu = cn.counterTsu
|
||||
} ;
|
||||
|
||||
ApposCN cn np = {
|
||||
@@ -306,6 +333,7 @@ flags coding = utf8 ;
|
||||
hasAttr = cn.hasAttr ;
|
||||
anim = cn.anim ;
|
||||
counter = cn.counter ;
|
||||
counterReplace = cn.counterReplace
|
||||
counterReplace = cn.counterReplace ;
|
||||
counterTsu = cn.counterTsu
|
||||
} ;
|
||||
}
|
||||
|
||||
@@ -3,10 +3,13 @@ concrete NumeralJap of Numeral = CatJap ** open ResJap, ParadigmsJap, Prelude in
|
||||
flags coding = utf8 ;
|
||||
|
||||
lincat
|
||||
Digit, Sub1000000 = {s : Str ; n : Number} ;
|
||||
Sub10 = {s : Str ; n : Number ; is1 : Bool} ;
|
||||
Sub100, Sub1000 = {s : Str ; n : Number ; numType : NumeralType ;
|
||||
digit1 : Str ; digit2 : Str} ;
|
||||
Digit = {s : Str ; n : Number} ;
|
||||
Sub10 = {s : Str ; n : Number ; is1 : Bool ; null : Str} ;
|
||||
Sub100 = {s : Str ; n : Number ; numType : NumeralType ; digit1 : Str ; digit2 : Str ;
|
||||
tenPlus : Bool ; is1 : Bool} ;
|
||||
Sub1000 = {s_init : Str ; s_mid : Str ; n : Number ; numType : NumeralType ;
|
||||
man : Str ; sen : Str ; tenPlus : Bool ; is1 : Bool ; null : Str} ;
|
||||
Sub1000000 = {s : Str ; n : Number ; tenPlus : Bool} ;
|
||||
|
||||
lin
|
||||
num dig = dig ;
|
||||
@@ -20,121 +23,195 @@ flags coding = utf8 ;
|
||||
n8 = {s = "八" ; n = Pl} ; -- "hachi"
|
||||
n9 = {s = "九" ; n = Pl} ; -- "kyuu"
|
||||
|
||||
pot01 = {s = "一" ; n = Sg ; is1 = True} ; -- "ichi"
|
||||
pot01 = {s = "一" ; n = Sg ; is1 = True ; null = ""} ;
|
||||
|
||||
pot0 d = d ** {is1 = False} ;
|
||||
pot0 d = d ** {is1 = False ; null = ""} ;
|
||||
|
||||
pot110 = {
|
||||
s = "十" ; -- "juu"
|
||||
n = Pl ;
|
||||
numType = Tens ;
|
||||
digit1 = "1" ;
|
||||
digit2 = "0"
|
||||
numType = EndZero ;
|
||||
digit1 = "一" ;
|
||||
digit2 = "0" ;
|
||||
tenPlus = True ;
|
||||
is1 = False
|
||||
} ;
|
||||
|
||||
pot111 = {
|
||||
s = "十一" ;
|
||||
n = Pl ;
|
||||
numType = TensPlus ;
|
||||
digit1 = "1" ;
|
||||
digit2 = "1"
|
||||
numType = EndNotZero ;
|
||||
digit1 = "一" ;
|
||||
digit2 = "一" ;
|
||||
tenPlus = True ;
|
||||
is1 = False
|
||||
} ;
|
||||
|
||||
pot1to19 d = {
|
||||
s = "十" ++ d.s ;
|
||||
n = Pl ;
|
||||
numType = TensPlus ;
|
||||
digit1 = "1" ;
|
||||
digit2 = d.s
|
||||
numType = EndNotZero ;
|
||||
digit1 = "一" ;
|
||||
digit2 = d.s ;
|
||||
tenPlus = True ;
|
||||
is1 = False
|
||||
} ;
|
||||
|
||||
pot0as1 d = {
|
||||
s = d.s ;
|
||||
n = Pl ;
|
||||
numType = Other ;
|
||||
numType = SingleDigit ;
|
||||
digit1 = [] ;
|
||||
digit2 = []
|
||||
digit2 = d.s ;
|
||||
tenPlus = False ;
|
||||
is1 = d.is1
|
||||
} ;
|
||||
|
||||
pot1 d = {
|
||||
s = d.s ++ "十" ;
|
||||
n = Pl ;
|
||||
numType = Tens ;
|
||||
numType = EndZero ;
|
||||
digit1 = d.s ;
|
||||
digit2 = "0"
|
||||
digit2 = "0" ;
|
||||
tenPlus = True ;
|
||||
is1 = False
|
||||
} ;
|
||||
|
||||
pot1plus d n = {
|
||||
s = d.s ++ "十" ++ n.s ;
|
||||
n = Pl ;
|
||||
numType = TensPlus ;
|
||||
numType = EndNotZero ;
|
||||
digit1 = d.s ;
|
||||
digit2 = n.s
|
||||
digit2 = n.s ;
|
||||
tenPlus = True ;
|
||||
is1 = False
|
||||
} ;
|
||||
|
||||
pot1as2 d = d ;
|
||||
pot1as2 d = {
|
||||
s_init = d.s ;
|
||||
s_mid = d.s ;
|
||||
n = d.n ;
|
||||
numType = d.numType ;
|
||||
man = d.digit1 ;
|
||||
sen = d.digit2 ;
|
||||
tenPlus = d.tenPlus ;
|
||||
is1 = d.is1 ;
|
||||
null = ""
|
||||
} ;
|
||||
|
||||
pot2 d = {
|
||||
s = case d.is1 of {
|
||||
True => "百" ; -- "hyaku"
|
||||
s_init = case d.is1 of {
|
||||
True => d.null ++ "百" ; -- "hyaku"
|
||||
False => d.s ++ "百"
|
||||
} ;
|
||||
s_mid = d.s ++ "百" ;
|
||||
n = Pl ;
|
||||
numType = Other ;
|
||||
digit1 = [] ;
|
||||
digit2 = []
|
||||
numType = EndZero ;
|
||||
man = case d.is1 of {
|
||||
True => d.null ++ "十" ;
|
||||
False => d.s ++ "十"
|
||||
} ;
|
||||
sen = [] ;
|
||||
tenPlus = True ;
|
||||
is1 = False ;
|
||||
null = ""
|
||||
} ;
|
||||
|
||||
pot2plus d n = {
|
||||
s = case d.is1 of {
|
||||
True => "百" ++ n.s ;
|
||||
s_init = case d.is1 of {
|
||||
True => d.null ++ "百" ++ n.s ;
|
||||
False => d.s ++ "百" ++ n.s
|
||||
} ;
|
||||
s_mid = d.s ++ "百" ++ n.s ;
|
||||
n = Pl ;
|
||||
numType = Other ;
|
||||
digit1 = [] ;
|
||||
digit2 = []
|
||||
numType = case n.numType of {
|
||||
EndZero => EndZero ;
|
||||
_ => EndNotZero
|
||||
} ;
|
||||
man = case d.is1 of {
|
||||
True => d.null ++ "十" ++ n.digit1 ;
|
||||
False => d.s ++ "十" ++ n.digit1
|
||||
} ;
|
||||
sen = n.digit2 ;
|
||||
tenPlus = True ;
|
||||
is1 = False ;
|
||||
null = ""
|
||||
} ;
|
||||
|
||||
pot2as3 d = d ;
|
||||
pot2as3 d = {
|
||||
s = d.s_init ;
|
||||
n = d.n ;
|
||||
tenPlus = d.tenPlus
|
||||
} ;
|
||||
|
||||
pot3 d = {
|
||||
s = case d.numType of {
|
||||
Tens => d.digit1 ++ "万" ; -- "man"
|
||||
TensPlus => d.digit1 ++ "万" ++ d.digit2 ++ "千" ; -- "sen"
|
||||
Other => d.s ++ "千"
|
||||
EndZero => d.man ++ "万" ; -- "man"
|
||||
EndNotZero => d.man ++ "万" ++ d.sen ++ "千" ; -- "sen"
|
||||
SingleDigit => case d.is1 of {
|
||||
True => d.null ++ "千" ;
|
||||
False => d.s_init ++ "千"
|
||||
}
|
||||
} ;
|
||||
n = Pl
|
||||
n = Pl;
|
||||
tenPlus = True
|
||||
} ;
|
||||
|
||||
pot3plus d n = {
|
||||
s = case d.numType of {
|
||||
Tens => d.digit1 ++ "万" ++ n.s ;
|
||||
TensPlus => d.digit1 ++ "万" ++ d.digit2 ++ "千" ++ n.s ;
|
||||
Other => d.s ++ "千" ++ n.s
|
||||
EndZero => d.man ++ "万" ++ n.s_mid ;
|
||||
EndNotZero => d.man ++ "万" ++ d.sen ++ "千" ++ n.s_mid ;
|
||||
SingleDigit => case d.is1 of {
|
||||
True => d.null ++ "千" ++ n.s_mid ;
|
||||
False => d.s_init ++ "千" ++ n.s_mid
|
||||
}
|
||||
} ;
|
||||
n = Pl
|
||||
n = Pl;
|
||||
tenPlus = True
|
||||
} ;
|
||||
|
||||
lincat
|
||||
Dig = {s : Str ; n : Number} ;
|
||||
Dig = {s : Str ; n : Number ; is0 : Bool} ;
|
||||
|
||||
lin
|
||||
IDig d = d ;
|
||||
IDig d = {
|
||||
s = d.s ;
|
||||
n = d.n ;
|
||||
tenPlus = False ;
|
||||
tail = T1
|
||||
} ;
|
||||
|
||||
IIDig d n = {
|
||||
s = d.s ++ n.s ;
|
||||
n = Pl
|
||||
s = d.s ++ commaIf n.tail ++ n.s ;
|
||||
n = Pl ;
|
||||
tenPlus = case <d.is0, n.tenPlus> of {
|
||||
<_, True> => True ;
|
||||
<True, False> => False ;
|
||||
_ => True
|
||||
} ;
|
||||
tail = inc n.tail
|
||||
} ;
|
||||
|
||||
D_0 = {s = "0" ; n = Sg} ;
|
||||
D_1 = {s = "1" ; n = Sg} ;
|
||||
D_2 = {s = "2" ; n = Pl} ;
|
||||
D_3 = {s = "3" ; n = Pl} ;
|
||||
D_4 = {s = "4" ; n = Pl} ;
|
||||
D_5 = {s = "5" ; n = Pl} ;
|
||||
D_6 = {s = "6" ; n = Pl} ;
|
||||
D_7 = {s = "7" ; n = Pl} ;
|
||||
D_8 = {s = "8" ; n = Pl} ;
|
||||
D_9 = {s = "9" ; n = Pl} ;
|
||||
D_0 = {s = "0" ; n = Sg ; is0 = True} ;
|
||||
D_1 = {s = "1" ; n = Sg ; is0 = False} ;
|
||||
D_2 = {s = "2" ; n = Pl ; is0 = False} ;
|
||||
D_3 = {s = "3" ; n = Pl ; is0 = False} ;
|
||||
D_4 = {s = "4" ; n = Pl ; is0 = False} ;
|
||||
D_5 = {s = "5" ; n = Pl ; is0 = False} ;
|
||||
D_6 = {s = "6" ; n = Pl ; is0 = False} ;
|
||||
D_7 = {s = "7" ; n = Pl ; is0 = False} ;
|
||||
D_8 = {s = "8" ; n = Pl ; is0 = False} ;
|
||||
D_9 = {s = "9" ; n = Pl ; is0 = False} ;
|
||||
|
||||
oper
|
||||
commaIf : DTail -> Str = \t -> case t of {
|
||||
T3 => "," ;
|
||||
_ => []
|
||||
} ;
|
||||
|
||||
inc : DTail -> DTail = \t -> case t of {
|
||||
T1 => T2 ;
|
||||
T2 => T3 ;
|
||||
T3 => T1
|
||||
} ;
|
||||
}
|
||||
|
||||
@@ -7,22 +7,24 @@ oper
|
||||
|
||||
mkN = overload {
|
||||
mkN : (man : Str) -> (anim : Animateness) -> N
|
||||
= \n,a -> lin N (regNoun n a "つ" False) ;
|
||||
= \n,a -> lin N (regNoun n a "つ" False True) ;
|
||||
mkN : (kane,okane : Str) -> (anim : Animateness) -> N
|
||||
= \kane,okane,a -> lin N (styleNoun kane okane a "つ" False) ;
|
||||
= \kane,okane,a -> lin N (styleNoun kane okane a "つ" False True) ;
|
||||
mkN : (man : Str) -> (anim : Animateness) -> (counter : Str) -> (counterReplace : Bool) -> N
|
||||
= \n,a,c,b -> lin N (regNoun n a c b) ;
|
||||
= \n,a,c,b -> lin N (regNoun n a c b False) ;
|
||||
mkN : (man : Str) -> (anim : Animateness) -> (counter : Str) -> (counterReplace : Bool) ->
|
||||
(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) ->
|
||||
(counterReplace : Bool) -> N
|
||||
= \kane,okane,a,c,b -> lin N (styleNoun kane okane a c b)
|
||||
= \kane,okane,a,c,b -> lin N (styleNoun kane okane a c b False)
|
||||
} ;
|
||||
|
||||
mkN2 : (mother : Str) -> (prep: Str) -> (anim : Animateness) -> (counter : Str) ->
|
||||
(counterReplace : Bool) -> N2 = \n,p,a,c,b ->
|
||||
lin N2 (regNoun n a c b) ** {prep = p; object = \\st => []} ;
|
||||
mkN2 : (man : Str) -> (anim : Animateness) -> (counter : Str) -> (counterReplace : Bool) ->
|
||||
(men : Str) -> (prep : Str) -> N2 = \n,a,c,b,pl,pr ->
|
||||
lin N2 (numberNoun n a c b pl False) ** {prep = pr ; object = \\st => []} ;
|
||||
|
||||
mkN3 : (distance : Str) -> (prep1: Str) -> (prep2: Str) -> (anim : Animateness) -> N3
|
||||
= \n,p1,p2,a -> lin N3 (regNoun n a "つ" False) ** {prep1 = p1; prep2 = p2} ;
|
||||
= \n,p1,p2,a -> lin N3 (regNoun n a "つ" False True) ** {prep1 = p1; prep2 = p2} ;
|
||||
|
||||
mkPN = overload {
|
||||
mkPN : (paris : Str) -> PN
|
||||
@@ -49,16 +51,15 @@ oper
|
||||
\pred,attr,pr -> lin A2 (VerbalA pred attr) ** {prep = pr}
|
||||
} ;
|
||||
|
||||
mkV : (yoma, yomi, yomu, yonda : Str) -> V
|
||||
= \yoma,yomi,yomu,yonda -> lin V (mkVerb yoma yomi yomu yonda) ;
|
||||
mkV : (yomu : Str) -> (group : VerbGroup) -> V
|
||||
= \yomu,gr -> lin V (mkVerb yomu gr) ;
|
||||
|
||||
mkV2 : (yoma, yomi, yomu, yonda, prep : Str) -> V2
|
||||
= \yoma,yomi,yomu,yonda,p ->
|
||||
lin V2 (mkVerb2 yoma yomi yomu yonda p) ;
|
||||
mkV2 : (yomu, prep : Str) -> (group : VerbGroup) -> V2
|
||||
= \yomu,p,gr ->
|
||||
lin V2 (mkVerb2 yomu p gr) ;
|
||||
|
||||
mkV3 : (yoma, yomi, yomu, yonda, p1, p2 : Str) -> (give: Bool) -> V3
|
||||
= \yoma,yomi,yomu,yonda,p1,p2,b ->
|
||||
lin V3 (mkVerb yoma yomi yomu yonda) ** {prep1 = p1 ; prep2 = p2 ; give = b} ;
|
||||
mkV3 : (uru, p1, p2 : Str) -> (group : VerbGroup) -> V3 = \uru,p1,p2,gr ->
|
||||
lin V3 (mkVerb3 uru p1 p2 gr) ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -6,47 +6,58 @@ flags coding = utf8 ;
|
||||
lin
|
||||
|
||||
PhrUtt pconj utt voc = {
|
||||
s = case voc.please of {
|
||||
True => pconj.s ++ utt.s ! Resp ++ voc.s ! Resp ;
|
||||
False => (voc.s ! Resp ++ pconj.s ++ utt.s ! Resp |
|
||||
voc.s ! Plain ++ pconj.s ++ utt.s ! Plain)
|
||||
s = case voc.type of {
|
||||
Please => case utt.type of {
|
||||
ImpPolite => pconj.s ++ utt.s ! Wa ! Resp ++ voc.null ;
|
||||
(Imper|NoImp) => pconj.s ++ utt.s ! Wa ! Resp ++ voc.s ! Resp
|
||||
} ;
|
||||
VocPres => case utt.type of {
|
||||
ImpPolite => voc.s ! Resp ++ "," ++ pconj.s ++ utt.s ! Wa ! Resp ;
|
||||
Imper => voc.s ! Plain ++ "," ++ pconj.s ++ utt.s ! Wa ! Plain ;
|
||||
NoImp => voc.s ! Plain ++ "," ++ pconj.s ++ utt.s ! Wa ! Plain
|
||||
} ;
|
||||
VocAbs => case utt.type of {
|
||||
(Imper|ImpPolite) => voc.s ! Plain ++ pconj.s ++ utt.s ! Wa ! Plain ;
|
||||
NoImp => voc.s ! Plain ++ pconj.s ++ utt.s ! Wa ! Plain
|
||||
}
|
||||
}
|
||||
} ;
|
||||
|
||||
UttS sent = {s = \\st => sent.s ! (Wa|Ga) ! st} ;
|
||||
UttS sent = {s = \\part,st => sent.s ! part ! st ; type = NoImp} ;
|
||||
|
||||
UttQS s = {s = \\st => s.s ! (Wa | Ga) ! st ++ "か"} ;
|
||||
UttQS s = {s = \\part,st => s.s ! part ! st ; type = NoImp} ;
|
||||
|
||||
UttImpSg p imp = {s = \\st => p.s ++ imp.s ! st ! p.b} ;
|
||||
UttImpSg p imp = {s = \\part,st => p.s ++ imp.s ! st ! p.b ; type = Imper} ;
|
||||
|
||||
UttImpPl = UttImpSg ;
|
||||
|
||||
UttImpPol p imp = {s = \\st => p.s ++ imp.s ! Resp ! p.b} ;
|
||||
UttImpPol p imp = {s = \\part,st => p.s ++ imp.s ! Resp ! p.b ++ "ください" ; type = ImpPolite} ;
|
||||
|
||||
UttIP ip = {s = \\st => ip.s ! st ++ "ですか"} ;
|
||||
UttIP ip = {s = \\part,st => ip.s_subj ! st ; type = NoImp} ;
|
||||
|
||||
UttIAdv iadv = {s = \\st => iadv.s ! st ++ "ですか"} ;
|
||||
UttIAdv iadv = {s = \\part,st => iadv.s ! st ; type = NoImp} ;
|
||||
|
||||
UttNP np = {s = \\st => np.prepositive ! st ++ np.s ! st} ;
|
||||
UttNP np = {s = \\part,st => np.prepositive ! st ++ np.s ! st ; type = NoImp} ;
|
||||
|
||||
UttAdv adv = {s = \\st => adv.s ! st} ;
|
||||
UttAdv adv = {s = \\part,st => adv.s ! st ; type = NoImp} ;
|
||||
|
||||
UttVP vp = {s = \\st => vp.prepositive ! st ++ vp.obj ! st ++ vp.prep ++
|
||||
vp.verb ! (Anim | Inanim) ! st ! (TPres | TPast | TFut) ! (Pos | Neg)} ;
|
||||
UttVP vp = {s = \\part,st => vp.prepositive ! st ++ vp.obj ! st ++ vp.prep ++
|
||||
vp.verb ! SomeoneElse ! Inanim ! st ! TPres ! Pos ; type = NoImp} ;
|
||||
|
||||
UttCN cn = {s = \\st => cn.prepositive ! st ++ cn.object ! st ++ cn.s ! (Sg | Pl) ! st} ;
|
||||
UttCN cn = {s = \\part,st => cn.prepositive ! st ++ cn.object ! st ++ cn.s ! Sg ! st ;
|
||||
type = NoImp} ;
|
||||
|
||||
UttCard card = {s = \\st => card.s ++ card.postpositive} ;
|
||||
UttCard card = {s = \\part,st => card.s ++ card.postpositive ; type = NoImp} ;
|
||||
|
||||
UttAP ap = {s = \\st => ap.prepositive ! st ++ ap.attr ! st} ;
|
||||
UttAP ap = {s = \\part,st => ap.prepositive ! st ++ ap.attr ! st ; type = NoImp} ;
|
||||
|
||||
UttInterj interj = {s = \\st => interj.s} ;
|
||||
UttInterj interj = {s = \\part,st => interj.s ; type = NoImp} ;
|
||||
|
||||
NoPConj = ss "" ;
|
||||
|
||||
PConjConj conj = {s = conj.s} ;
|
||||
|
||||
NoVoc = {s = \\st => [] ; please = False} ;
|
||||
NoVoc = {s = \\st => [] ; type = VocAbs ; null = ""} ;
|
||||
|
||||
VocNP np = {s = \\st => np.prepositive ! st ++ np.s ! st ; please = False} ;
|
||||
VocNP np = {s = \\st => np.prepositive ! st ++ np.s ! st ; type = VocPres ; null = ""} ;
|
||||
}
|
||||
|
||||
@@ -5,57 +5,107 @@ flags coding = utf8 ;
|
||||
|
||||
lin
|
||||
|
||||
QuestCl cl = { -- ending "ka" is added at the utterance level
|
||||
s = cl.s ;
|
||||
QuestCl cl = {
|
||||
s = \\part,st,t,p => cl.s ! part ! st ! t ! p ++ "か" ;
|
||||
s_plain_pred = \\part,st,t,p => cl.subj ! part ! st ++ cl.pred ! Plain ! t ! p ++ "か" ;
|
||||
changePolar = cl.changePolar
|
||||
} ;
|
||||
|
||||
QuestVP ip vp = {
|
||||
s = \\part,st,t,p => case ip.how8many of {
|
||||
True => ip.s ! st ++ vp.obj ! st ++ vp.prep ++ vp.verb ! ip.anim ! st ! t ! p ;
|
||||
False => ip.s ! st ++ "が" ++ vp.obj ! st ++ vp.prep ++ vp.verb ! ip.anim ! st ! t ! p
|
||||
True => ip.s_subj ! st ++ vp.obj ! st ++ vp.prep ++
|
||||
vp.verb ! SomeoneElse ! ip.anim ! st ! t ! p ++ "か" ;
|
||||
False => ip.s_subj ! st ++ "が" ++ vp.obj ! st ++ vp.prep ++
|
||||
vp.verb ! SomeoneElse ! ip.anim ! st ! t ! p ++ "か"
|
||||
} ;
|
||||
s_plain_pred = \\part,st,t,p => case ip.how8many of {
|
||||
True => ip.s_subj ! st ++ vp.obj ! st ++ vp.prep ++
|
||||
vp.verb ! SomeoneElse ! ip.anim ! Plain ! t ! p ++ "か" ;
|
||||
False => ip.s_subj ! st ++ "が" ++ vp.obj ! st ++ vp.prep ++
|
||||
vp.verb ! SomeoneElse ! ip.anim ! Plain ! t ! p ++ "か"
|
||||
} ;
|
||||
changePolar = False
|
||||
} ;
|
||||
|
||||
QuestSlash ip clslash = {
|
||||
s = \\part,st,t,p => clslash.subj ! part ! st ++ ip.s ! st ++ clslash.pred ! st ! t ! p ;
|
||||
s = \\part,st,t,p => clslash.subj ! part ! st ++ ip.s_obj ! st ++ clslash.pred ! st ! t ! p
|
||||
++ "か" ;
|
||||
s_plain_pred = \\part,st,t,p => clslash.subj ! part ! st ++ ip.s_obj ! st ++
|
||||
clslash.pred ! Plain ! t ! p ++ "か" ;
|
||||
changePolar = False
|
||||
} ;
|
||||
|
||||
QuestIAdv iadv cl = {
|
||||
s = \\part,st,t,p => cl.subj ! part ! st ++ iadv.s ! st ++ iadv.particle ++
|
||||
cl.pred ! st ! t ! p ;
|
||||
cl.pred ! st ! t ! p ++ "か" ;
|
||||
s_plain_pred = \\part,st,t,p => cl.subj ! part ! st ++ iadv.s ! st ++ iadv.particle ++
|
||||
cl.pred ! Plain ! t ! p ++ "か" ;
|
||||
changePolar = cl.changePolar
|
||||
} ;
|
||||
|
||||
QuestIComp icomp np = {
|
||||
s = table {
|
||||
Wa => \\st,t,p => case np.needPart of {
|
||||
True => np.prepositive ! st ++ np.s ! st ++ "は" ++ icomp.s ! st ++
|
||||
mkCopula.s ! st ! t ! p ;
|
||||
False => np.prepositive ! st ++ np.s ! st ++ icomp.s ! st ++ mkCopula.s ! st ! t ! p
|
||||
Wa => \\st,t,p => case <np.needPart, icomp.wh8re> of {
|
||||
<True, True> => np.prepositive ! st ++ np.s ! st ++ "は" ++ icomp.s ! st ++ "に" ++
|
||||
mkExistV.verb ! SomeoneElse ! np.anim ! st ! t ! p ++ "か" ;
|
||||
<False, True> => np.prepositive ! st ++ np.s ! st ++ icomp.s ! st ++ "に" ++
|
||||
mkExistV.verb ! SomeoneElse ! np.anim ! st ! t ! p ++ "か" ;
|
||||
<True, False> => np.prepositive ! st ++ np.s ! st ++ "は" ++ icomp.s ! st ++
|
||||
mkCopula.s ! st ! t ! p ++ "か" ;
|
||||
<False, False> => np.prepositive ! st ++ np.s ! st ++ icomp.s ! st ++
|
||||
mkCopula.s ! st ! t ! p ++ "か"
|
||||
} ;
|
||||
Ga => \\st,t,p => case np.needPart of {
|
||||
True => np.prepositive ! st ++ np.s ! st ++ "が" ++ icomp.s ! st ++
|
||||
mkCopula.s ! st ! t ! p ;
|
||||
False => np.prepositive ! st ++ np.s ! st ++ icomp.s ! st ++ mkCopula.s ! st ! t ! p
|
||||
Ga => \\st,t,p => case <np.needPart, icomp.wh8re> of {
|
||||
<True, True> => np.prepositive ! st ++ np.s ! st ++ "が" ++ icomp.s ! st ++ "に" ++
|
||||
mkExistV.verb ! SomeoneElse ! np.anim ! st ! t ! p ++ "か" ;
|
||||
<False, True> => np.prepositive ! st ++ np.s ! st ++ icomp.s ! st ++ "に" ++
|
||||
mkExistV.verb ! SomeoneElse ! np.anim ! st ! t ! p ++ "か" ;
|
||||
<True, False> => np.prepositive ! st ++ np.s ! st ++ "が" ++ icomp.s ! st ++
|
||||
mkCopula.s ! st ! t ! p ++ "か" ;
|
||||
<False, False> => np.prepositive ! st ++ np.s ! st ++ icomp.s ! st ++
|
||||
mkCopula.s ! st ! t ! p ++ "か"
|
||||
}
|
||||
} ;
|
||||
s_plain_pred = table {
|
||||
Wa => \\st,t,p => case <np.needPart, icomp.wh8re> of {
|
||||
<True, True> => np.prepositive ! st ++ np.s ! st ++ "は" ++ icomp.s ! st ++ "に" ++
|
||||
mkExistV.verb ! SomeoneElse ! np.anim ! Plain ! t ! p ++ "か" ;
|
||||
<False, True> => np.prepositive ! st ++ np.s ! st ++ icomp.s ! st ++ "に" ++
|
||||
mkExistV.verb ! SomeoneElse ! np.anim ! Plain ! t ! p ++ "か" ;
|
||||
<True, False> => np.prepositive ! st ++ np.s ! st ++ "は" ++ icomp.s ! st ++
|
||||
mkCopula.s ! Plain ! t ! p ++ "か" ;
|
||||
<False, False> => np.prepositive ! st ++ np.s ! st ++ icomp.s ! st ++
|
||||
mkCopula.s ! Plain ! t ! p ++ "か"
|
||||
} ;
|
||||
Ga => \\st,t,p => case <np.needPart, icomp.wh8re> of {
|
||||
<True, True> => np.prepositive ! st ++ np.s ! st ++ "が" ++ icomp.s ! st ++ "に" ++
|
||||
mkExistV.verb ! SomeoneElse ! np.anim ! Plain ! t ! p ++ "か" ;
|
||||
<False, True> => np.prepositive ! st ++ np.s ! st ++ icomp.s ! st ++ "に" ++
|
||||
mkExistV.verb ! SomeoneElse ! np.anim ! Plain ! t ! p ++ "か" ;
|
||||
<True, False> => np.prepositive ! st ++ np.s ! st ++ "が" ++ icomp.s ! st ++
|
||||
mkCopula.s ! Plain ! t ! p ++ "か" ;
|
||||
<False, False> => np.prepositive ! st ++ np.s ! st ++ icomp.s ! st ++
|
||||
mkCopula.s ! Plain ! t ! p ++ "か"
|
||||
}
|
||||
} ;
|
||||
changePolar = np.changePolar
|
||||
} ;
|
||||
|
||||
IdetCN idet cn = {
|
||||
s = \\st => case idet.how8many of {
|
||||
s_subj = \\st => case idet.how8many of {
|
||||
True => cn.prepositive ! st ++ cn.object ! st ++ cn.s ! idet.n ! st ++ "が" ++ idet.s ;
|
||||
False => cn.prepositive ! st ++ cn.object ! st ++ idet.s ++ cn.s ! idet.n ! st
|
||||
} ;
|
||||
s_obj = \\st => case idet.how8many of {
|
||||
True => cn.prepositive ! st ++ cn.object ! st ++ idet.s ++ "の" ++ cn.s ! idet.n ! st ;
|
||||
False => cn.prepositive ! st ++ cn.object ! st ++ idet.s ++ cn.s ! idet.n ! st
|
||||
} ;
|
||||
anim = cn.anim ;
|
||||
how8many = idet.how8many
|
||||
} ;
|
||||
|
||||
IdetIP idet = {
|
||||
s = \\st => case idet.inclCard of {
|
||||
s_subj, s_obj = \\st => case idet.inclCard of {
|
||||
True => idet.s ++ "つ" ;
|
||||
False => idet.s
|
||||
} ;
|
||||
@@ -64,7 +114,8 @@ flags coding = utf8 ;
|
||||
} ;
|
||||
|
||||
AdvIP ip adv = {
|
||||
s = \\st => adv.s ! st ++ ip.s ! st ;
|
||||
s_subj = \\st => adv.s ! st ++ ip.s_subj ! st ;
|
||||
s_obj = \\st => adv.s ! st ++ ip.s_obj ! st ;
|
||||
anim = ip.anim ;
|
||||
how8many = ip.how8many
|
||||
} ;
|
||||
@@ -76,13 +127,14 @@ flags coding = utf8 ;
|
||||
inclCard = num.inclCard
|
||||
} ;
|
||||
|
||||
PrepIP prep ip = {s = \\st => ip.s ! st ++ prep.s ; particle = ""} ;
|
||||
PrepIP prep ip = {s = \\st => ip.s_obj ! st ++ prep.s ; particle = "" ; wh8re = False} ;
|
||||
|
||||
AdvIAdv iadv adv = {s = \\st => adv.s ! st ++ iadv.s ! st ; particle = iadv.particle} ;
|
||||
AdvIAdv iadv adv = {s = \\st => adv.s ! st ++ iadv.s ! st ;
|
||||
particle = iadv.particle ; wh8re = iadv.wh8re} ;
|
||||
|
||||
CompIAdv iadv = {s = iadv.s} ;
|
||||
CompIAdv iadv = {s = iadv.s ; wh8re = iadv.wh8re} ;
|
||||
|
||||
CompIP ip = {s = ip.s} ;
|
||||
CompIP ip = {s = ip.s_obj ; wh8re = False} ;
|
||||
|
||||
lincat
|
||||
|
||||
@@ -91,13 +143,14 @@ flags coding = utf8 ;
|
||||
lin
|
||||
|
||||
ComplSlashIP vpslash ip = {
|
||||
s = \\a,st,t,p => vpslash.obj ! st ++ ip.s ! st ++ vpslash.prep ++ vpslash.s ! st ! t ! p ;
|
||||
s = \\a,st,t,p => vpslash.obj ! st ++ ip.s_obj ! st ++ vpslash.prep ++
|
||||
vpslash.s ! SomeoneElse ! st ! t ! p ;
|
||||
prepositive = vpslash.prepositive
|
||||
} ;
|
||||
|
||||
AdvQVP vp iadv = {
|
||||
s = \\a,st,t,p => iadv.s ! st ++ iadv.particle ++ vp.obj ! st ++ vp.prep ++
|
||||
vp.verb ! a ! st ! t ! p ;
|
||||
vp.verb ! SomeoneElse ! a ! st ! t ! p ;
|
||||
prepositive = vp.prepositive
|
||||
} ;
|
||||
|
||||
@@ -107,8 +160,16 @@ flags coding = utf8 ;
|
||||
} ;
|
||||
|
||||
QuestQVP ip qvp = {
|
||||
s = \\part,st,t,p => qvp.prepositive ! st ++ ip.s ! st ++ "が" ++
|
||||
qvp.s ! ip.anim ! st ! t ! p ;
|
||||
s = \\part,st,t,p => case ip.how8many of {
|
||||
True => qvp.prepositive ! st ++ ip.s_subj ! st ++ qvp.s ! ip.anim ! st ! t ! p ++ "か" ;
|
||||
False => qvp.prepositive ! st ++ ip.s_subj ! st ++ "が" ++ qvp.s ! ip.anim ! st ! t ! p
|
||||
++ "か"
|
||||
} ;
|
||||
s_plain_pred = \\part,st,t,p => case ip.how8many of {
|
||||
True => qvp.prepositive ! st ++ ip.s_subj ! st ++ qvp.s ! ip.anim ! Plain ! t ! p ++ "か" ;
|
||||
False => qvp.prepositive ! st ++ ip.s_subj ! st ++ "が" ++ qvp.s ! ip.anim ! Plain ! t ! p
|
||||
++ "か"
|
||||
} ;
|
||||
changePolar = False
|
||||
} ;
|
||||
}
|
||||
|
||||
@@ -6,43 +6,47 @@ flags coding = utf8 ;
|
||||
|
||||
RelCl cl = {
|
||||
s = \\_,st,t,p => cl.s ! Ga ! st ! t ! p ;
|
||||
te = \\_,st => cl.te ! Ga ! st ;
|
||||
te = \\_ => cl.te ! Ga ;
|
||||
changePolar = cl.changePolar ;
|
||||
subj = cl.subj ;
|
||||
pred = \\_,st,t,p => cl.pred ! st ! t ! p ;
|
||||
pred_te = \\a,st => cl.pred_te ! st ;
|
||||
pred_ba = \\a,st => cl.pred_ba ! st ;
|
||||
pred_te = \\a => cl.pred_te ;
|
||||
pred_ba = \\a => cl.pred_ba ;
|
||||
missingSubj = False
|
||||
} ;
|
||||
|
||||
RelVP rp vp = {
|
||||
s = \\a,st,t,p => vp.prepositive ! st ++ rp.s ! st ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.verb ! a ! Plain ! t ! p ++ rp.prep ;
|
||||
te = \\a,st => vp.prepositive ! st ++ rp.s ! st ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! a ! st ++ rp.prep ;
|
||||
vp.prep ++ vp.verb ! SomeoneElse ! a ! Plain ! t ! p ;
|
||||
te = \\a,st,p => vp.prepositive ! st ++ rp.s ! st ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! SomeoneElse ! a ! st ! p ;
|
||||
changePolar = False ;
|
||||
subj = \\part,st => vp.prepositive ! st ++ rp.s ! st ;
|
||||
pred = \\a,st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! a ! st ! t ! p ++ rp.prep ;
|
||||
pred_te = \\a,st => vp.obj ! st ++ vp.prep ++ vp.te ! a ! st ++ rp.prep ;
|
||||
pred_ba = \\a,st => vp.obj ! st ++ vp.prep ++ vp.ba ! a ! st ++ rp.prep ;
|
||||
pred = \\a,st,t,p => vp.obj ! st ++ vp.prep ++
|
||||
vp.verb ! SomeoneElse ! a ! st ! t ! p ;
|
||||
pred_te = \\a,st,p => vp.obj ! st ++ vp.prep ++ vp.te ! SomeoneElse ! a ! st ! p ;
|
||||
pred_ba = \\a,st,p => vp.obj ! st ++ vp.prep ++ vp.ba ! SomeoneElse ! a ! st ! p ;
|
||||
missingSubj = True
|
||||
} ;
|
||||
|
||||
RelSlash rp clslash = {
|
||||
s = \\_,st,t,p => rp.s ! st ++ clslash.s ! st ! t ! p ++ rp.prep ;
|
||||
te = \\_,st => rp.s ! st ++ clslash.te ! st ;
|
||||
s = \\_,st,t,p => case rp.null of {
|
||||
True => rp.s ! st ++ clslash.s ! st ! t ! p ;
|
||||
False => clslash.subj ! Ga ! st ++ rp.s ! st ++ clslash.pred ! Plain ! t ! p
|
||||
} ;
|
||||
te = \\_,st,p => case rp.null of {
|
||||
True => rp.s ! st ++ clslash.te ! st ! p ;
|
||||
False => clslash.subj ! Ga ! st ++ rp.s ! st ++ clslash.pred_te ! st ! p
|
||||
} ;
|
||||
changePolar = clslash.changePolar ;
|
||||
subj = \\part,st => rp.s ! st ++ clslash.subj ! part ! st ;
|
||||
pred = \\_,st,t,p => clslash.pred ! st ! t ! p ++ rp.prep ;
|
||||
pred_te = \\a,st => clslash.pred_te ! st ++ rp.prep ;
|
||||
pred_ba = \\a,st => clslash.pred_ba ! st ++ rp.prep ;
|
||||
pred = \\_,st,t,p => clslash.pred ! st ! t ! p ;
|
||||
pred_te = \\a => clslash.pred_te ;
|
||||
pred_ba = \\a => clslash.pred_ba ;
|
||||
missingSubj = False
|
||||
} ;
|
||||
|
||||
IdRP = {s = \\st => [] ; prep = []} ;
|
||||
IdRP = {s = \\st => [] ; null = True} ;
|
||||
|
||||
FunRP prep np rp = {
|
||||
s = \\st => np.prepositive ! st ++ np.s ! st ;
|
||||
prep = prep.relPrep
|
||||
} ;
|
||||
}
|
||||
FunRP prep np rp = {s = \\st => np.prepositive ! st ++ np.s ! st ; null = False} ;
|
||||
}
|
||||
@@ -9,49 +9,54 @@ param
|
||||
Mood = Ind | Con ;
|
||||
TTense = TPres | TPast | TFut ;
|
||||
Polarity = Pos | Neg ;
|
||||
VerbGroup = Gr1 | Gr2 | Suru | Kuru ;
|
||||
ModSense = Abil | Oblig | Wish ;
|
||||
Speaker = Me | SomeoneElse ;
|
||||
Particle = Wa | Ga ;
|
||||
Anteriority = Simul | Anter ;
|
||||
NumeralType = Tens | TensPlus | Other ;
|
||||
ComparSense = Less | More | NoCompar ;
|
||||
NumeralType = EndZero | EndNotZero | SingleDigit ;
|
||||
DTail = T1 | T2 | T3 ;
|
||||
ConjType = And | Or | Both ;
|
||||
SubjType = That | If | OtherSubj ;
|
||||
VocType = VocPres | Please | VocAbs ;
|
||||
UttType = Imper | ImpPolite | NoImp ;
|
||||
|
||||
oper
|
||||
|
||||
NP : Type = {s : Style => Str ; prepositive : Style => Str ; needPart : Bool ;
|
||||
changePolar : Bool ; Pron1Sg : Bool ; anim : Animateness} ;
|
||||
VP : Type = {verb : Animateness => Style => TTense => Polarity => Str ;
|
||||
te : Animateness => Style => Str; a_stem : Animateness => Style => Str ;
|
||||
i_stem : Animateness => Style => Str ; ba : Animateness => Style => Str ;
|
||||
prep : Str ; obj : Style => Str ; prepositive : Style => Str ;
|
||||
compar : ComparSense} ;
|
||||
changePolar : Bool ; meaning : Speaker ; anim : Animateness} ;
|
||||
VP : Type = {verb : Speaker => Animateness => Style => TTense => Polarity => Str ;
|
||||
a_stem, i_stem : Speaker => Animateness => Style => Str ;
|
||||
te, ba : Speaker => Animateness => Style => Polarity => Str ;
|
||||
prep : Str ; obj : Style => Str ; prepositive : Style => Str} ;
|
||||
|
||||
Noun : Type = {s : Number => Style => Str ; anim : Animateness ;
|
||||
counter : Str ; counterReplace : Bool} ;
|
||||
counter : Str ; counterReplace : Bool ; counterTsu : Bool} ;
|
||||
PropNoun : Type = {s : Style => Str ; anim : Animateness} ;
|
||||
Adj : Type = {pred : Style => TTense => Polarity => Str;
|
||||
attr : Str; te : Str ; ba : Str ; adv : Str ; dropNaEnging : Str} ;
|
||||
Adj2 : Type = {pred : Style => TTense => Polarity => Str ; attr : Str;
|
||||
te : Str ; ba : Str ; adv : Str ; prep : Str ; dropNaEnging : Str} ;
|
||||
Adverb : Type = {s : Style => Str ; prepositive : Bool ; compar : ComparSense} ;
|
||||
Adj : Type = {pred : Style => TTense => Polarity => Str ; attr, dropNaEnging : Str ;
|
||||
te, ba, adv : Polarity => Str} ;
|
||||
Adj2 : Type = {pred : Style => TTense => Polarity => Str ; attr, dropNaEnging,
|
||||
prep : Str ; te, ba, adv : Polarity => Str} ;
|
||||
Adverb : Type = {s : Style => Str ; prepositive : Bool} ;
|
||||
Pronoun : Type = {s : Style => Str ; Pron1Sg : Bool ; anim : Animateness} ;
|
||||
Determiner : Type = {quant : Style => Str ; postpositive : Str ; num : Str ;
|
||||
n : Number ; inclCard : Bool ; sp : Style => Str ; no : Bool} ;
|
||||
Num : Type = {s : Str ; postpositive : Str ; n : Number ; inclCard : Bool} ;
|
||||
Preposition : Type = {s : Str ; relPrep : Str} ;
|
||||
Verb : Type = {s : Style => TTense => Polarity => Str ; te : Str ;
|
||||
a_stem : Str ; i_stem : Str ; ba : Str} ;
|
||||
Verb2 : Type = {s : Style => TTense => Polarity => Str ; te : Str ;
|
||||
a_stem : Str ; i_stem : Str ; ba : Str ;
|
||||
pass : Style => TTense => Polarity => Str ; pass_te : Str ;
|
||||
pass_a_stem : Str ; pass_i_stem : Str ; pass_ba : Str ;
|
||||
prep : Str} ;
|
||||
Determiner : Type = {quant : Style => Str ; postpositive : Str ; num : Str ; n : Number ;
|
||||
inclCard : Bool ; sp : Style => Str ; no : Bool ; tenPlus : Bool} ;
|
||||
Num : Type = {s : Str ; postpositive : Str ; n : Number ; inclCard : Bool ;
|
||||
tenPlus : Bool} ;
|
||||
Preposition : Type = {s : Str ; null : Str} ;
|
||||
Verb : Type = {s : Style => TTense => Polarity => Str ; a_stem, i_stem : Str ;
|
||||
te, ba : Polarity => Str} ;
|
||||
Verb2 : Type = {s, pass : Style => TTense => Polarity => Str ; a_stem, i_stem, pass_a_stem,
|
||||
pass_i_stem, prep : Str ; te, ba, pass_te, pass_ba : Polarity => Str} ;
|
||||
Verb3 : Type = {s : Speaker => Style => TTense => Polarity => Str ; a_stem, i_stem :
|
||||
Speaker => Str ; te, ba : Speaker => Polarity => Str ; prep1, prep2 : Str} ;
|
||||
VV : Type = {s : Speaker => Style => TTense => Polarity => Str ; a_stem, i_stem :
|
||||
Speaker => Str ; te, ba : Speaker => Polarity => Str ; sense : ModSense} ;
|
||||
Conjunction : Type = {s : Str ; null : Str ; type : ConjType} ;
|
||||
Subjunction : Type = {s : Str ; type : SubjType} ;
|
||||
|
||||
mkNoun : Str -> Str -> Str -> Str -> Animateness -> Str -> Bool -> Noun =
|
||||
\man1,man2,man3,man4,a,c,b -> {
|
||||
mkNoun : Str -> Str -> Str -> Str -> Animateness -> Str -> Bool -> Bool -> Noun =
|
||||
\man1,man2,man3,man4,a,c,b1,b2 -> {
|
||||
s = table {
|
||||
Sg => table {
|
||||
Plain => man1 ;
|
||||
@@ -64,13 +69,18 @@ oper
|
||||
} ;
|
||||
anim = a ;
|
||||
counter = c ;
|
||||
counterReplace = b
|
||||
counterReplace = b1 ;
|
||||
counterTsu = b2
|
||||
} ;
|
||||
|
||||
regNoun : Str -> Animateness -> Str -> Bool -> Noun = \s,a,c,b -> mkNoun s s s s a c b ;
|
||||
regNoun : Str -> Animateness -> Str -> Bool -> Bool -> Noun = \s,a,c,b1,b2 ->
|
||||
mkNoun s s s s a c b1 b2 ;
|
||||
|
||||
styleNoun : Str -> Str -> Animateness -> Str -> Bool -> Noun = \kane,okane,a,c,b ->
|
||||
mkNoun kane okane kane okane a c b ;
|
||||
styleNoun : Str -> Str -> Animateness -> Str -> Bool -> Bool -> Noun = \kane,okane,a,c,b1,b2 ->
|
||||
mkNoun kane okane kane okane a c b1 b2 ;
|
||||
|
||||
numberNoun : Str -> Animateness -> Str -> Bool -> Str -> Bool -> Noun = \n,a,c,b1,pl,b2 ->
|
||||
mkNoun n n pl pl a c b1 b2 ;
|
||||
|
||||
regAdj : Str -> Adj = \a -> case a of {
|
||||
chiisa + "い" => i_mkAdj a ;
|
||||
@@ -83,329 +93,422 @@ oper
|
||||
in {
|
||||
pred = table {
|
||||
Resp => table {
|
||||
TPres => table {
|
||||
(TPres|TFut) => table {
|
||||
Pos => chiisai ++ "です" ;
|
||||
Neg => (chiisa + "くありません" |
|
||||
chiisa + "くないです")
|
||||
Neg => chiisa + "くありません"
|
||||
} ;
|
||||
TPast => table {
|
||||
Pos => chiisa + "かったです" ;
|
||||
Neg => (chiisa + "くありませんでした" |
|
||||
chiisa + "くなかったです")
|
||||
} ;
|
||||
TFut => table {
|
||||
Pos => chiisai ++ "です" ;
|
||||
Neg => (chiisa + "くありません" |
|
||||
chiisa + "くないです")
|
||||
Neg => chiisa + "くありませんでした"
|
||||
}
|
||||
} ;
|
||||
Plain => table {
|
||||
TPres => table {
|
||||
(TPres|TFut) => table {
|
||||
Pos => chiisai ;
|
||||
Neg => chiisa + "くない"
|
||||
} ;
|
||||
TPast => table {
|
||||
Pos => chiisa + "かった" ;
|
||||
Neg => chiisa + "くなかった"
|
||||
} ;
|
||||
TFut => table {
|
||||
Pos => chiisai ;
|
||||
Neg => chiisa + "くない"
|
||||
}
|
||||
}
|
||||
} ;
|
||||
attr = chiisai ;
|
||||
te = chiisa + "くて" ;
|
||||
ba = chiisa + "ければ" ;
|
||||
adv = chiisa + "く" ;
|
||||
te = table {
|
||||
Pos => chiisa + "くて" ;
|
||||
Neg => chiisa + "くなくて"
|
||||
} ;
|
||||
ba = table {
|
||||
Pos => chiisa + "ければ" ;
|
||||
Neg => chiisa + "くなければ"
|
||||
} ;
|
||||
adv = table {
|
||||
Pos => chiisa + "く" ;
|
||||
Neg => chiisa + "くなく"
|
||||
} ;
|
||||
dropNaEnging = chiisai
|
||||
} ;
|
||||
|
||||
na_mkAdj : Str -> Adj = \ookina ->
|
||||
let
|
||||
ooki = init ookina
|
||||
ooki = init ookina
|
||||
in {
|
||||
pred = table {
|
||||
Resp => table {
|
||||
TPres => table {
|
||||
Pos => ooki ++ "です" ;
|
||||
Neg => ooki ++ "ではありません"
|
||||
} ;
|
||||
TPast => table {
|
||||
Pos => ooki ++ "でした" ;
|
||||
Neg => ooki ++ "ではありませんでした"
|
||||
} ;
|
||||
TFut => table {
|
||||
Pos => ooki ++ "です" ;
|
||||
Neg => ooki ++ "ではありません"
|
||||
}
|
||||
} ;
|
||||
Plain => table {
|
||||
TPres => table {
|
||||
Pos => ooki ++ "だ" ;
|
||||
Neg => ooki ++ "ではない"
|
||||
} ;
|
||||
TPast => table {
|
||||
Pos => ooki ++ "だった" ;
|
||||
Neg => ooki ++ "ではなかった"
|
||||
} ;
|
||||
TFut => table {
|
||||
Pos => ooki ++ "だ" ;
|
||||
Neg => ooki ++ "ではない"
|
||||
}
|
||||
}
|
||||
} ;
|
||||
pred = \\st,t,p => ooki ++ mkCopula.s ! st ! t ! p ;
|
||||
attr = ookina ;
|
||||
te = ooki + "で" ;
|
||||
ba = ooki + "であれば" ;
|
||||
adv = ooki + "に" ;
|
||||
te = table {
|
||||
Pos => ooki + "で" ;
|
||||
Neg => ooki + "ではなくて"
|
||||
} ;
|
||||
ba = \\p => ooki ++ mkCopula.ba ! p ;
|
||||
adv = table {
|
||||
Pos => ooki + "に" ;
|
||||
Neg => ooki + "ではなく"
|
||||
} ;
|
||||
dropNaEnging = ooki
|
||||
} ;
|
||||
|
||||
VerbalA : Str -> Str -> Adj = \kekkonshiteiru,kikonno ->
|
||||
let
|
||||
kekkonshite = Predef.tk 2 kekkonshiteiru
|
||||
kekkonshite = Predef.tk 2 kekkonshiteiru
|
||||
in {
|
||||
pred = table {
|
||||
Resp => table {
|
||||
TPres => table {
|
||||
Pos => kekkonshite + "います" ;
|
||||
Neg => kekkonshite + "いません"
|
||||
} ;
|
||||
TPast => table {
|
||||
Pos => kekkonshite + "いました" ;
|
||||
Neg => kekkonshite + "いませんでした"
|
||||
} ;
|
||||
TFut => table {
|
||||
Pos => kekkonshite + "います" ;
|
||||
Neg => kekkonshite + "いません"
|
||||
}
|
||||
} ;
|
||||
Plain => table {
|
||||
TPres => table {
|
||||
Pos => kekkonshite + "いる" ;
|
||||
Neg => kekkonshite + "いない"
|
||||
} ;
|
||||
TPast => table {
|
||||
Pos => kekkonshite + "いた" ;
|
||||
Neg => kekkonshite + "いなかった"
|
||||
} ;
|
||||
TFut => table {
|
||||
Pos => kekkonshite + "いる" ;
|
||||
Neg => kekkonshite + "いない"
|
||||
}
|
||||
}
|
||||
} ;
|
||||
pred = \\st,t,p => kekkonshite ++ mkExistV.verb ! SomeoneElse ! Anim ! st ! t ! p ;
|
||||
attr = kikonno ;
|
||||
te = kekkonshite + "いて" ;
|
||||
ba = kekkonshite + "いれば" ;
|
||||
adv = init kikonno + "で" ;
|
||||
te = \\p => kekkonshite ++ mkExistV.te ! SomeoneElse ! Anim ! Resp ! p ;
|
||||
ba = \\p => kekkonshite ++ mkExistV.ba ! SomeoneElse ! Anim ! Resp ! p ;
|
||||
adv = table {
|
||||
Pos => init kikonno + "で" ;
|
||||
Neg => init kikonno + "ではなく"
|
||||
} ;
|
||||
dropNaEnging = init kikonno
|
||||
} ;
|
||||
|
||||
mkVerb : Str -> Str -> Str -> Str -> Verb =
|
||||
\yoma,yomi,yomu,yonda ->
|
||||
let yon = init yonda ;
|
||||
mkVerb : Str -> VerbGroup -> Verb =
|
||||
\yomu,gr ->
|
||||
let
|
||||
yoma = mk_a_stem yomu gr ;
|
||||
yomi = mk_i_stem yomu gr ;
|
||||
yonda = mk_plain_past yomu gr ;
|
||||
in {
|
||||
s = table {
|
||||
Resp => table {
|
||||
TPres => table {
|
||||
(TPres|TFut) => table {
|
||||
Pos => yomi + "ます" ;
|
||||
Neg => yomi + "ません"
|
||||
} ;
|
||||
TPast => table {
|
||||
Pos => yomi + "ました" ;
|
||||
Neg => yomi + "ませんでした"
|
||||
} ;
|
||||
TFut => table {
|
||||
Pos => yomi + "ます" ;
|
||||
Neg => yomi + "ません"
|
||||
}
|
||||
} ;
|
||||
Plain => table {
|
||||
TPres => table {
|
||||
(TPres|TFut) => table {
|
||||
Pos => yomu ;
|
||||
Neg => yoma + "ない"
|
||||
} ;
|
||||
TPast => table {
|
||||
Pos => yonda ;
|
||||
Neg => yoma + "なかった"
|
||||
} ;
|
||||
TFut => table {
|
||||
Pos => yomu ;
|
||||
Neg => yoma + "ない"
|
||||
}
|
||||
}
|
||||
} ;
|
||||
te = case yonda of {
|
||||
te = table {
|
||||
Pos => case yonda of {
|
||||
yon + "だ" => yon + "で" ;
|
||||
yon + "た" => yon + "て"
|
||||
} ;
|
||||
a_stem = yoma ;
|
||||
i_stem = yomi ;
|
||||
ba = mkBaForm yomu
|
||||
Neg => yoma + "ないで"
|
||||
} ;
|
||||
a_stem = yoma ;
|
||||
i_stem = yomi ;
|
||||
ba = table {
|
||||
Pos => mkBaForm yomu gr ;
|
||||
Neg => yoma + "なければ"
|
||||
}
|
||||
} ;
|
||||
|
||||
mkVerb2 : Str -> Str -> Str -> Str -> Str -> Verb2 =
|
||||
\yoma,yomi,yomu,yonda,p -> {
|
||||
s = (mkVerb yoma yomi yomu yonda).s ;
|
||||
te = (mkVerb yoma yomi yomu yonda).te ;
|
||||
|
||||
mkVerb2 : Str -> Str -> VerbGroup -> Verb2 =
|
||||
\yomu,p,gr ->
|
||||
let
|
||||
yoma = mk_a_stem yomu gr ;
|
||||
in {
|
||||
s = (mkVerb yomu gr).s ;
|
||||
te = (mkVerb yomu gr).te ;
|
||||
a_stem = yoma ;
|
||||
i_stem = yomi ;
|
||||
ba = mkBaForm yomu ;
|
||||
i_stem = mk_i_stem yomu gr ;
|
||||
ba = (mkVerb yomu gr).ba ;
|
||||
prep = p ;
|
||||
pass = table {
|
||||
Resp => table {
|
||||
TPres => table {
|
||||
Pos => case yomu of {
|
||||
x + "する" => x + "されます" ;
|
||||
_ => yoma + "れます"
|
||||
(TPres|TFut) => table {
|
||||
Pos => case gr of {
|
||||
Gr1 => yoma + "れます" ;
|
||||
Gr2 => yoma + "られます" ;
|
||||
Suru => Predef.tk 2 yomu + "されます" ;
|
||||
Kuru => "来られます"
|
||||
} ;
|
||||
Neg => case gr of {
|
||||
Gr1 => yoma + "れません" ;
|
||||
Gr2 => yoma + "られません" ;
|
||||
Suru => Predef.tk 2 yomu + "されません" ;
|
||||
Kuru => "来られません"
|
||||
}
|
||||
} ;
|
||||
Neg => case yomu of {
|
||||
x + "する" => x + "されません" ;
|
||||
_ => yoma + "れません"
|
||||
TPast => table {
|
||||
Pos => case gr of {
|
||||
Gr1 => yoma + "れました" ;
|
||||
Gr2 => yoma + "られました" ;
|
||||
Suru => Predef.tk 2 yomu + "されました" ;
|
||||
Kuru => "来られました"
|
||||
} ;
|
||||
Neg => case gr of {
|
||||
Gr1 => yoma + "れませんでした" ;
|
||||
Gr2 => yoma + "られませんでした" ;
|
||||
Suru => Predef.tk 2 yomu + "されませんでした" ;
|
||||
Kuru => "来られませんでした"
|
||||
}
|
||||
}
|
||||
} ;
|
||||
TPast => table {
|
||||
Pos => case yomu of {
|
||||
x + "する" => x + "されました" ;
|
||||
_ => yoma + "れました"
|
||||
Plain => table {
|
||||
(TPres|TFut) => table {
|
||||
Pos => case gr of {
|
||||
Gr1 => yoma + "れる" ;
|
||||
Gr2 => yoma + "られる" ;
|
||||
Suru => Predef.tk 2 yomu + "される" ;
|
||||
Kuru => "来られる"
|
||||
} ;
|
||||
Neg => case gr of {
|
||||
Gr1 => yoma + "れない" ;
|
||||
Gr2 => yoma + "られない" ;
|
||||
Suru => Predef.tk 2 yomu + "されない" ;
|
||||
Kuru => "来られない"
|
||||
}
|
||||
} ;
|
||||
Neg => case yomu of {
|
||||
x + "する" => x + "されませんでした" ;
|
||||
_ => yoma + "れませんでした"
|
||||
}
|
||||
} ;
|
||||
TFut => table {
|
||||
Pos => case yomu of {
|
||||
x + "する" => x + "されます" ;
|
||||
_ => yoma + "れます"
|
||||
} ;
|
||||
Neg => case yomu of {
|
||||
x + "する" => x + "されません" ;
|
||||
_ => yoma + "れません"
|
||||
TPast => table {
|
||||
Pos => case gr of {
|
||||
Gr1 => yoma + "れた" ;
|
||||
Gr2 => yoma + "られた" ;
|
||||
Suru => Predef.tk 2 yomu + "された" ;
|
||||
Kuru => "来られた"
|
||||
} ;
|
||||
Neg => case gr of {
|
||||
Gr1 => yoma + "れなかった" ;
|
||||
Gr2 => yoma + "られなかった" ;
|
||||
Suru => Predef.tk 2 yomu + "されなかった" ;
|
||||
Kuru => "来られなかった"
|
||||
}
|
||||
}
|
||||
}
|
||||
} ;
|
||||
Plain => table {
|
||||
TPres => table {
|
||||
Pos => case yomu of {
|
||||
x + "する" => x + "される" ;
|
||||
_ => yoma + "れる"
|
||||
} ;
|
||||
Neg => case yomu of {
|
||||
x + "する" => x + "されない" ;
|
||||
_ => yoma + "れない"
|
||||
}
|
||||
pass_te = table {
|
||||
Pos => case gr of {
|
||||
Gr1 => yoma + "れて" ;
|
||||
Gr2 => yoma + "られて" ;
|
||||
Suru => Predef.tk 2 yomu + "されて" ;
|
||||
Kuru => "来られて"
|
||||
} ;
|
||||
TPast => table {
|
||||
Pos => case yomu of {
|
||||
x + "する" => x + "された" ;
|
||||
_ => yoma + "れた"
|
||||
} ;
|
||||
Neg => case yomu of {
|
||||
x + "する" => x + "されなかった" ;
|
||||
_ => yoma + "れなかった"
|
||||
}
|
||||
Neg => case gr of {
|
||||
Gr1 => yoma + "れないで" ;
|
||||
Gr2 => yoma + "られないで" ;
|
||||
Suru => Predef.tk 2 yomu + "されないで" ;
|
||||
Kuru => "来られないで"
|
||||
}
|
||||
} ;
|
||||
pass_a_stem = case gr of {
|
||||
Gr1 => yoma + "れ" ;
|
||||
Gr2 => yoma + "られ" ;
|
||||
Suru => Predef.tk 2 yomu + "され" ;
|
||||
Kuru => "来られ"
|
||||
} ;
|
||||
pass_i_stem = case gr of {
|
||||
Gr1 => yoma + "れ" ;
|
||||
Gr2 => yoma + "られ" ;
|
||||
Suru => Predef.tk 2 yomu + "され" ;
|
||||
Kuru => "来られ"
|
||||
} ;
|
||||
pass_ba = table {
|
||||
Pos => case gr of {
|
||||
Gr1 => yoma + "れれば" ;
|
||||
Gr2 => yoma + "られれば" ;
|
||||
Suru => Predef.tk 2 yomu + "されれば" ;
|
||||
Kuru => "来られれば"
|
||||
} ;
|
||||
TFut => table {
|
||||
Pos => case yomu of {
|
||||
x + "する" => x + "される" ;
|
||||
_ => yoma + "れる"
|
||||
} ;
|
||||
Neg => case yomu of {
|
||||
x + "する" => x + "されない" ;
|
||||
_ => yoma + "れない"
|
||||
}
|
||||
}
|
||||
Neg => case gr of {
|
||||
Gr1 => yoma + "れなければ" ;
|
||||
Gr2 => yoma + "られなければ" ;
|
||||
Suru => Predef.tk 2 yomu + "されなければ" ;
|
||||
Kuru => "来られなければ"
|
||||
}
|
||||
}
|
||||
} ;
|
||||
pass_te = case yomu of {
|
||||
x + "する" => x + "されて" ;
|
||||
_ => yoma + "れて"
|
||||
} ;
|
||||
pass_a_stem = case yomu of {
|
||||
x + "する" => x + "され" ;
|
||||
_ => yoma + "れ"
|
||||
} ;
|
||||
pass_i_stem = case yomu of {
|
||||
x + "する" => x + "され" ;
|
||||
_ => yoma + "れ"
|
||||
} ;
|
||||
pass_ba = case yomu of {
|
||||
x + "する" => x + "されれば" ;
|
||||
_ => yoma + "れれば"
|
||||
}
|
||||
|
||||
mkVerb3 : Str -> Str -> Str -> VerbGroup -> Verb3 =
|
||||
\uru,p1,p2,gr -> {
|
||||
s = \\sp => (mkVerb uru gr).s ;
|
||||
te = \\sp => (mkVerb uru gr).te ;
|
||||
a_stem = \\sp => mk_a_stem uru gr ;
|
||||
i_stem = \\sp => mk_i_stem uru gr ;
|
||||
ba = \\sp => (mkVerb uru gr).ba ;
|
||||
prep1 = p1 ;
|
||||
prep2 = p2
|
||||
} ;
|
||||
|
||||
mkCopula : Verb = {
|
||||
mkCopula = {
|
||||
s = table {
|
||||
Resp => table {
|
||||
TPres => table {
|
||||
(TPres|TFut) => table {
|
||||
Pos => "です" ;
|
||||
Neg => "ではありません"
|
||||
} ;
|
||||
TPast => table {
|
||||
Pos => "でした" ;
|
||||
Neg => "ではありませんでした"
|
||||
} ;
|
||||
TFut => table {
|
||||
Pos => "です" ;
|
||||
Neg => "ではありません"
|
||||
}
|
||||
} ;
|
||||
Plain => table {
|
||||
TPres => table {
|
||||
(TPres|TFut) => table {
|
||||
Pos => "だ" ;
|
||||
Neg => "ではない"
|
||||
} ;
|
||||
TPast => table {
|
||||
Pos => "だった" ;
|
||||
Neg => "ではなかった"
|
||||
} ;
|
||||
TFut => table {
|
||||
Pos => "だ" ;
|
||||
Neg => "ではない"
|
||||
}
|
||||
}
|
||||
} ;
|
||||
te = table {
|
||||
Pos => "だって" ;
|
||||
Neg => "ではなくて"
|
||||
} ;
|
||||
te = "だって" ;
|
||||
a_stem = "で" ;
|
||||
i_stem = "で" ;
|
||||
ba = "であれば"
|
||||
ba = table {
|
||||
Pos => "であれば" ;
|
||||
Neg => "でなければ"
|
||||
}
|
||||
} ;
|
||||
|
||||
mkExistV : VP = {
|
||||
verb = table {
|
||||
Anim => \\st,t,p => (mkVerb "い" "い" "いる" "いた").s ! st ! t ! p ;
|
||||
Inanim => \\st,t,p => (mkVerb "" "あり" "ある" "あった").s ! st ! t ! p
|
||||
verb = \\sp => table {
|
||||
Anim => \\st,t,p => (mkVerb "いる" Gr2).s ! st ! t ! p ;
|
||||
Inanim => table {
|
||||
Resp => table {
|
||||
(TPres|TFut) => table {
|
||||
Pos => "あります" ;
|
||||
Neg => "ありません"
|
||||
} ;
|
||||
TPast => table {
|
||||
Pos => "ありました" ;
|
||||
Neg => "ありませんでした"
|
||||
}
|
||||
} ;
|
||||
Plain => table {
|
||||
(TPres|TFut) => table {
|
||||
Pos => "ある" ;
|
||||
Neg => "ない"
|
||||
} ;
|
||||
TPast => table {
|
||||
Pos => "あった" ;
|
||||
Neg => "なかった"
|
||||
}
|
||||
}
|
||||
}
|
||||
} ;
|
||||
te = table {
|
||||
Anim => \\st => "いて" ;
|
||||
Inanim => \\st => "あって"
|
||||
te = \\sp => table {
|
||||
Anim => \\st => table {
|
||||
Pos => "いて" ;
|
||||
Neg => "いないで"
|
||||
} ;
|
||||
Inanim => \\st => table {
|
||||
Pos => "あって" ;
|
||||
Neg => "ないで"
|
||||
}
|
||||
} ;
|
||||
a_stem = table {
|
||||
a_stem = \\sp => table {
|
||||
Anim => \\st => "い" ;
|
||||
Inanim => \\st => ""
|
||||
} ;
|
||||
i_stem = table {
|
||||
i_stem = \\sp => table {
|
||||
Anim => \\st => "い" ;
|
||||
Inanim => \\st => "あり"
|
||||
} ;
|
||||
ba = table {
|
||||
Anim => \\st => "いれば" ;
|
||||
Inanim => \\st => "あれば"
|
||||
ba = \\sp => table {
|
||||
Anim => \\st => table {
|
||||
Pos => "いれば" ;
|
||||
Neg => "いなければ"
|
||||
} ;
|
||||
Inanim => \\st => table {
|
||||
Pos => "あれば" ;
|
||||
Neg => "なければ"
|
||||
}
|
||||
} ;
|
||||
prep = [] ;
|
||||
prepositive, obj = \\st => [] ;
|
||||
compar = NoCompar
|
||||
prepositive, obj = \\st => []
|
||||
} ;
|
||||
|
||||
mkNum : Str -> Number -> Bool -> Num = \s,n,b -> {
|
||||
|
||||
mkWant : VV = {
|
||||
s = table {
|
||||
Me => \\st,t,p => (i_mkAdj "たい").pred ! st ! t ! p ;
|
||||
SomeoneElse => \\st,t,p => "たがって" ++ (mkVerb "いる" Gr2).s ! st ! t ! p
|
||||
} ;
|
||||
te = table {
|
||||
Me => table {
|
||||
Pos => "たくて" ;
|
||||
Neg => "たくなくて"
|
||||
} ;
|
||||
SomeoneElse => table {
|
||||
Pos => "たがっていて" ;
|
||||
Neg => "たがっていないで"
|
||||
}
|
||||
} ;
|
||||
a_stem = table {
|
||||
Me => "たいで" ;
|
||||
SomeoneElse => "たがってい"
|
||||
} ;
|
||||
i_stem = table {
|
||||
Me => "たいで" ;
|
||||
SomeoneElse => "たがってい"
|
||||
} ;
|
||||
ba = table {
|
||||
Me => table {
|
||||
Pos => "たければ" ;
|
||||
Neg => "たくなければ"
|
||||
} ;
|
||||
SomeoneElse => table {
|
||||
Pos => "たがっていれば" ;
|
||||
Neg => "たがっていなければ"
|
||||
}
|
||||
} ;
|
||||
sense = Wish
|
||||
} ;
|
||||
|
||||
mkCan : VV = {
|
||||
s = \\sp,st,t,p => (mkVerb "できる" Gr2).s ! st ! t ! p ;
|
||||
te = \\sp => table {
|
||||
Pos => "できて" ;
|
||||
Neg => "できないで"
|
||||
} ;
|
||||
a_stem, i_stem = \\sp => "でき" ;
|
||||
ba = \\sp => table {
|
||||
Pos => "できれば" ;
|
||||
Neg => "できなければ"
|
||||
} ;
|
||||
sense = Abil
|
||||
} ;
|
||||
|
||||
mkMust : VV = {
|
||||
s = \\sp,st,t,p => (mkVerb "なる" Gr1).s ! st ! t ! Neg ;
|
||||
te = \\sp,p => "ならなくて" ;
|
||||
a_stem = \\sp => "なら" ;
|
||||
i_stem = \\sp => "なり" ;
|
||||
ba = \\sp,p => "ならなければ" ;
|
||||
sense = Oblig
|
||||
} ;
|
||||
|
||||
mkGive : Verb3 = {
|
||||
s = table {
|
||||
Me => \\st,t,p => (mkVerb "呉れる" Gr2).s ! st ! t ! p ; -- "kureru"
|
||||
SomeoneElse => \\st,t,p => (mkVerb "上げる" Gr2).s ! st ! t ! p -- "ageru"
|
||||
} ;
|
||||
te = table {
|
||||
Me => (mkVerb "呉れる" Gr2).te ;
|
||||
SomeoneElse => (mkVerb "上げる" Gr2).te
|
||||
} ;
|
||||
a_stem, i_stem = table {
|
||||
Me => "呉れ" ;
|
||||
SomeoneElse => "上げ"
|
||||
} ;
|
||||
ba = table {
|
||||
Me => (mkVerb "呉れる" Gr2).ba ;
|
||||
SomeoneElse => (mkVerb "上げる" Gr2).ba
|
||||
} ;
|
||||
prep1 = "に" ;
|
||||
prep2 = "を"
|
||||
} ;
|
||||
|
||||
mkNum : Str -> Number -> Num = \s,n -> {
|
||||
s = s ;
|
||||
postpositive = [] ;
|
||||
n = n ;
|
||||
inclCard = b
|
||||
inclCard = False ;
|
||||
tenPlus = False
|
||||
} ;
|
||||
|
||||
regPron : Str -> Bool -> Animateness -> Pronoun = \kare,b,a -> {
|
||||
@@ -421,7 +524,8 @@ oper
|
||||
n = n ;
|
||||
inclCard = False ;
|
||||
sp = \\st => sp ;
|
||||
no = False
|
||||
no = False ;
|
||||
tenPlus = False
|
||||
} ;
|
||||
|
||||
stylePron : Str -> Str -> Bool -> Animateness -> Pronoun = \boku,watashi,b,a -> {
|
||||
@@ -451,8 +555,7 @@ oper
|
||||
|
||||
mkAdv : Str -> Adverb = \adv -> {
|
||||
s = \\st => adv ;
|
||||
prepositive = False ;
|
||||
compar = NoCompar
|
||||
prepositive = False
|
||||
} ;
|
||||
|
||||
mkNP : Str -> Bool -> Bool -> Animateness -> NP = \np,b1,b2,a -> {
|
||||
@@ -460,7 +563,7 @@ oper
|
||||
prepositive = \\st => [] ;
|
||||
needPart = b1 ;
|
||||
changePolar = b2 ;
|
||||
Pron1Sg = False ;
|
||||
meaning = SomeoneElse ;
|
||||
anim = a
|
||||
} ;
|
||||
|
||||
@@ -470,27 +573,104 @@ oper
|
||||
type = t
|
||||
} ;
|
||||
|
||||
mkPrep : Str -> Str -> Preposition = \p,r -> {
|
||||
mkPrep : Str -> Preposition = \p -> {
|
||||
s = p ;
|
||||
relPrep = r ;
|
||||
null = "" ;
|
||||
} ;
|
||||
|
||||
mkSubj : Str -> SubjType -> Subjunction = \s,t -> {
|
||||
s = s ;
|
||||
type = t ;
|
||||
} ;
|
||||
|
||||
mkBaForm : Str -> Str = \neru ->
|
||||
case last neru of {
|
||||
|
||||
mk_a_stem : Str -> VerbGroup -> Str = \neru,gr ->
|
||||
case gr of {
|
||||
Gr1 => case last neru of {
|
||||
"る" => init neru + "ら" ;
|
||||
"す" => init neru + "さ" ;
|
||||
"く" => init neru + "か" ;
|
||||
"ぐ" => init neru + "が" ;
|
||||
"む" => init neru + "ま" ;
|
||||
"ぬ" => init neru + "な" ;
|
||||
"ぶ" => init neru + "ば" ;
|
||||
"つ" => init neru + "た" ;
|
||||
_ => init neru + "わ"
|
||||
} ;
|
||||
(Gr2 | Kuru) => init neru ;
|
||||
Suru => Predef.tk 2 neru + "し"
|
||||
} ;
|
||||
|
||||
mk_i_stem : Str -> VerbGroup -> Str = \neru,gr ->
|
||||
case gr of {
|
||||
Gr1 => case last neru of {
|
||||
"る" => init neru + "り" ;
|
||||
"す" => init neru + "し" ;
|
||||
"く" => init neru + "き" ;
|
||||
"ぐ" => init neru + "ぎ" ;
|
||||
"む" => init neru + "み" ;
|
||||
"ぬ" => init neru + "に" ;
|
||||
"ぶ" => init neru + "び" ;
|
||||
"つ" => init neru + "ち" ;
|
||||
_ => init neru + "い"
|
||||
} ;
|
||||
(Gr2 | Kuru) => init neru ;
|
||||
Suru => Predef.tk 2 neru + "し"
|
||||
} ;
|
||||
|
||||
mk_plain_past : Str -> VerbGroup -> Str = \neru,gr ->
|
||||
case gr of {
|
||||
Gr1 => case last neru of {
|
||||
"る" => init neru + "った" ;
|
||||
"す" => init neru + "した" ;
|
||||
"く" => init neru + "いた" ;
|
||||
"ぐ" => init neru + "いだ" ;
|
||||
"む" => init neru + "んだ" ;
|
||||
"ぬ" => init neru + "んだ" ;
|
||||
"ぶ" => init neru + "んだ" ;
|
||||
"つ" => init neru + "った" ;
|
||||
_ => init neru + "った"
|
||||
} ;
|
||||
(Gr2 | Kuru) => init neru + "た" ;
|
||||
Suru => Predef.tk 2 neru + "した"
|
||||
} ;
|
||||
|
||||
mkBaForm : Str -> VerbGroup -> Str = \neru,gr ->
|
||||
case last neru of {
|
||||
"る" => init neru + "れば" ;
|
||||
"す" => init neru + "せば" ;
|
||||
"く" => init neru + "けば" ;
|
||||
"ぐ" => init neru + "げば" ;
|
||||
"む" => init neru + "めば" ;
|
||||
"む" => init neru + "めば" ;
|
||||
"ぬ" => init neru + "ねば" ;
|
||||
"ぶ" => init neru + "べば" ;
|
||||
"つ" => init neru + "てば" ;
|
||||
_ => init neru + "えば"
|
||||
"つ" => init neru + "てば" ;
|
||||
_ => init neru + "えば"
|
||||
} ;
|
||||
|
||||
mkFirst : Adj = {
|
||||
pred = \\st,t,p => "一番目" ++ mkCopula.s ! st ! t ! p ;
|
||||
attr = "一番目の" ;
|
||||
te = \\p => "一番目" ++ mkCopula.te ! p ;
|
||||
ba = \\p => "一番目" ++ mkCopula.ba ! p ;
|
||||
adv = table {
|
||||
Pos => "一番目" ;
|
||||
Neg => "一番目ではなく"
|
||||
} ;
|
||||
dropNaEnging = "一番目"
|
||||
} ;
|
||||
|
||||
mkRain : Verb = {
|
||||
s = \\st,t,p => "雨が" ++ (mkVerb "降る" Gr1).s ! st ! t ! p ; -- "ame ga furu"
|
||||
te = table {
|
||||
Pos => "雨が降って" ;
|
||||
Neg => "雨が降らないで"
|
||||
} ;
|
||||
a_stem = "雨が降ら" ;
|
||||
i_stem = "雨が降り" ;
|
||||
ba = table {
|
||||
Pos => "雨が降れば" ;
|
||||
Neg => "雨が降らなければ"
|
||||
}
|
||||
} ;
|
||||
}
|
||||
|
||||
|
||||
@@ -5,102 +5,59 @@ flags coding = utf8 ;
|
||||
|
||||
lin
|
||||
|
||||
PredVP np vp = case vp.compar of {
|
||||
More => {
|
||||
PredVP np vp = case np.needPart of {
|
||||
True => {
|
||||
s = table {
|
||||
Wa => \\st,t,p => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "は" ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.verb ! np.anim ! st ! t ! p ;
|
||||
Ga => \\st,t,p => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++
|
||||
"のほうが" ++ vp.obj ! st ++ vp.prep ++ vp.verb ! np.anim ! st ! t ! p
|
||||
vp.obj ! st ++ vp.prep ++ vp.verb ! np.meaning ! np.anim ! st ! t ! p ;
|
||||
Ga => \\st,t,p => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "が" ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.verb ! np.meaning ! np.anim ! st ! t ! p
|
||||
} ;
|
||||
te = table {
|
||||
Wa => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "は" ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.te ! np.anim ! st ;
|
||||
Ga => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "のほうが" ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.te ! np.anim ! st
|
||||
Wa => \\st,p => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "は" ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.te ! np.meaning ! np.anim ! st ! p ;
|
||||
Ga => \\st,p => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "が" ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.te ! np.meaning ! np.anim ! st ! p
|
||||
} ;
|
||||
ba = table {
|
||||
Wa => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "は" ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.ba ! np.anim ! st ;
|
||||
Ga => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "のほうが" ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.ba ! np.anim ! st
|
||||
Wa => \\st,p => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "は" ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.ba ! np.meaning ! np.anim ! st ! p ;
|
||||
Ga => \\st,p => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "が" ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.ba ! np.meaning ! np.anim ! st ! p
|
||||
} ;
|
||||
subj = table {
|
||||
Wa => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "は" ;
|
||||
Ga => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "のほうが"
|
||||
Ga => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "が"
|
||||
} ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! np.anim ! st ! t ! p ;
|
||||
pred_te = \\st => vp.obj ! st ++ vp.prep ++ vp.te ! np.anim ! st ;
|
||||
pred_ba = \\st => vp.obj ! st ++ vp.prep ++ vp.ba ! np.anim ! st ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! np.meaning ! np.anim ! st ! t ! p ;
|
||||
pred_te = \\st,p => vp.obj ! st ++ vp.prep ++ vp.te ! np.meaning ! np.anim ! st ! p ;
|
||||
pred_ba = \\st,p => vp.obj ! st ++ vp.prep ++ vp.ba ! np.meaning ! np.anim ! st ! p ;
|
||||
changePolar = np.changePolar
|
||||
} ;
|
||||
Less => {
|
||||
s = \\part,st,t,p => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++
|
||||
"より" ++ vp.obj ! st ++ vp.prep ++ vp.verb ! np.anim ! st ! t ! p ;
|
||||
te = \\part,st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "より"
|
||||
++ vp.obj ! st ++ vp.prep ++ vp.te ! np.anim ! st ;
|
||||
ba = \\part,st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++
|
||||
"より" ++ vp.obj ! st ++ vp.prep ++ vp.ba ! np.anim ! st ;
|
||||
subj = \\part,st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "より" ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! np.anim ! st ! t ! p ;
|
||||
pred_te = \\st => vp.obj ! st ++ vp.prep ++ vp.te ! np.anim ! st ;
|
||||
pred_ba = \\st => vp.obj ! st ++ vp.prep ++ vp.ba ! np.anim ! st ;
|
||||
changePolar = np.changePolar
|
||||
} ;
|
||||
NoCompar => case np.needPart of {
|
||||
True => {
|
||||
s = table {
|
||||
Wa => \\st,t,p => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "は" ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.verb ! np.anim ! st ! t ! p ;
|
||||
Ga => \\st,t,p => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "が" ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.verb ! np.anim ! st ! t ! p
|
||||
} ;
|
||||
te = table {
|
||||
Wa => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "は" ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.te ! np.anim ! st ;
|
||||
Ga => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "が" ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.te ! np.anim ! st
|
||||
} ;
|
||||
ba = table {
|
||||
Wa => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "は" ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.ba ! np.anim ! st ;
|
||||
Ga => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "が" ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.ba ! np.anim ! st
|
||||
} ;
|
||||
subj = table {
|
||||
Wa => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "は" ;
|
||||
Ga => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "が"
|
||||
} ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! np.anim ! st ! t ! p ;
|
||||
pred_te = \\st => vp.obj ! st ++ vp.prep ++ vp.te ! np.anim ! st ;
|
||||
pred_ba = \\st => vp.obj ! st ++ vp.prep ++ vp.ba ! np.anim ! st ;
|
||||
changePolar = np.changePolar
|
||||
False => {
|
||||
s = table {
|
||||
Wa => \\st,t,p => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.verb ! np.meaning ! np.anim ! st ! t ! p ;
|
||||
Ga => \\st,t,p => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.verb ! np.meaning ! np.anim ! st ! t ! p
|
||||
} ;
|
||||
te = table {
|
||||
Wa => \\st,p => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! np.meaning ! np.anim ! st ! p ;
|
||||
Ga => \\st,p => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! np.meaning ! np.anim ! st ! p
|
||||
} ;
|
||||
False => {
|
||||
s = table {
|
||||
Wa => \\st,t,p => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.verb ! np.anim ! st ! t ! p ;
|
||||
Ga => \\st,t,p => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.verb ! np.anim ! st ! t ! p
|
||||
} ;
|
||||
te = table {
|
||||
Wa => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! np.anim ! st ;
|
||||
Ga => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! np.anim ! st
|
||||
} ;
|
||||
ba = table {
|
||||
Wa => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.ba ! np.anim ! st ;
|
||||
Ga => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.ba ! np.anim ! st
|
||||
} ;
|
||||
subj = \\part,st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! np.anim ! st ! t ! p ;
|
||||
pred_te = \\st => vp.obj ! st ++ vp.prep ++ vp.te ! np.anim ! st ;
|
||||
pred_ba = \\st => vp.obj ! st ++ vp.prep ++ vp.ba ! np.anim ! st ;
|
||||
changePolar = np.changePolar
|
||||
}
|
||||
ba = table {
|
||||
Wa => \\st,p => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.ba ! np.meaning ! np.anim ! st ! p ;
|
||||
Ga => \\st,p => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.ba ! np.meaning ! np.anim ! st ! p
|
||||
} ;
|
||||
subj = \\part,st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! np.meaning ! np.anim ! st ! t ! p ;
|
||||
pred_te = \\st,p => vp.obj ! st ++ vp.prep ++ vp.te ! np.meaning ! np.anim ! st ! p ;
|
||||
pred_ba = \\st,p => vp.obj ! st ++ vp.prep ++ vp.ba ! np.meaning ! np.anim ! st ! p ;
|
||||
changePolar = np.changePolar
|
||||
}
|
||||
} ;
|
||||
|
||||
@@ -108,82 +65,67 @@ flags coding = utf8 ;
|
||||
True => {
|
||||
s = table {
|
||||
Wa => \\st,t,p => sc.s ! Wa ! st ++ "ことは" ++ vp.obj ! st ++ vp.prep ++
|
||||
vp.verb ! Inanim ! st ! t ! p ;
|
||||
vp.verb ! SomeoneElse ! Inanim ! st ! t ! p ;
|
||||
Ga => \\st,t,p => sc.s ! Ga ! st ++ "ことが" ++ vp.obj ! st ++ vp.prep ++
|
||||
vp.verb ! Inanim ! st ! t ! p
|
||||
vp.verb ! SomeoneElse ! Inanim ! st ! t ! p
|
||||
} ;
|
||||
te = table {
|
||||
Wa => \\st => sc.s ! Wa ! st ++ "ことは" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! Inanim ! st ;
|
||||
Ga => \\st => sc.s ! Ga ! st ++ "ことが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! Inanim ! st
|
||||
Wa => \\st,p => sc.s ! Wa ! st ++ "ことは" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! SomeoneElse ! Inanim ! st ! p ;
|
||||
Ga => \\st,p => sc.s ! Ga ! st ++ "ことが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! SomeoneElse ! Inanim ! st ! p
|
||||
} ;
|
||||
ba = table {
|
||||
Wa => \\st => sc.s ! Wa ! st ++ "ことは" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.ba ! Inanim ! st ;
|
||||
Ga => \\st => sc.s ! Ga ! st ++ "ことが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.ba ! Inanim ! st
|
||||
Wa => \\st,p => sc.s ! Wa ! st ++ "ことは" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.ba ! SomeoneElse ! Inanim ! st ! p ;
|
||||
Ga => \\st,p => sc.s ! Ga ! st ++ "ことが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.ba ! SomeoneElse ! Inanim ! st ! p
|
||||
} ;
|
||||
subj = table {
|
||||
Wa => \\st => sc.s ! Wa ! st ++ "ことは" ;
|
||||
Ga => \\st => sc.s ! Ga ! st ++ "ことが"
|
||||
} ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! Inanim ! st ! t ! p ;
|
||||
pred_te = \\st => vp.obj ! st ++ vp.prep ++ vp.te ! Inanim ! st ;
|
||||
pred_ba = \\st => vp.obj ! st ++ vp.prep ++ vp.ba ! Inanim ! st ;
|
||||
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_ba = \\st,p => vp.obj ! st ++ vp.prep ++ vp.ba ! SomeoneElse ! Inanim ! st ! p ;
|
||||
changePolar = False
|
||||
} ;
|
||||
False => {
|
||||
s = table {
|
||||
Wa => \\st,t,p => sc.s ! Wa ! st ++ "ことが" ++ vp.obj ! st ++ vp.prep ++
|
||||
vp.verb ! Inanim ! st ! t ! p ;
|
||||
Ga => \\st,t,p => sc.s ! Ga ! st ++ "ことが" ++ vp.obj ! st ++ vp.prep ++
|
||||
vp.verb ! Inanim ! st ! t ! p
|
||||
} ;
|
||||
te = table {
|
||||
Wa => \\st => sc.s ! Wa ! st ++ "ことが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! Inanim ! st ;
|
||||
Ga => \\st => sc.s ! Ga ! st ++ "ことが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! Inanim ! st
|
||||
} ;
|
||||
ba = table {
|
||||
Wa => \\st => sc.s ! Wa ! st ++ "ことが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.ba ! Inanim ! st ;
|
||||
Ga => \\st => sc.s ! Ga ! st ++ "ことが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.ba ! Inanim ! st
|
||||
} ;
|
||||
subj = table {
|
||||
Wa => \\st => sc.s ! Wa ! st ++ "ことが" ;
|
||||
Ga => \\st => sc.s ! Ga ! st ++ "ことが"
|
||||
} ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! Inanim ! st ! t ! p ;
|
||||
pred_te = \\st => vp.obj ! st ++ vp.prep ++ vp.te ! Inanim ! st ;
|
||||
pred_ba = \\st => vp.obj ! st ++ vp.prep ++ vp.ba ! Inanim ! st ;
|
||||
s = \\part,st,t,p => sc.s ! part ! st ++ "ことが" ++ vp.obj ! st ++ vp.prep ++
|
||||
vp.verb ! SomeoneElse ! Inanim ! st ! t ! p ;
|
||||
te = \\part,st,p => sc.s ! part ! st ++ "ことが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! SomeoneElse ! Inanim ! st ! p ;
|
||||
ba = \\part,st,p => sc.s ! part ! st ++ "ことが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.ba ! SomeoneElse ! Inanim ! st ! p ;
|
||||
subj = \\part,st => sc.s ! part ! st ++ "ことが" ;
|
||||
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_ba = \\st,p => vp.obj ! st ++ vp.prep ++ vp.ba ! SomeoneElse ! Inanim ! st ! p ;
|
||||
changePolar = False
|
||||
}
|
||||
} ;
|
||||
|
||||
SlashVP np vpslash = {
|
||||
s = \\st,t,p => vpslash.prepositive ! st ++ np.prepositive ! st ++ np.s ! st ++ "が" ++
|
||||
vpslash.obj ! st ++ vpslash.prep ++ vpslash.s ! Plain ! t ! p ;
|
||||
te = \\st => vpslash.prepositive ! st ++ np.prepositive ! st ++ np.s ! st ++ "が" ++
|
||||
vpslash.obj ! st ++ vpslash.prep ++ vpslash.te ;
|
||||
ba = \\st => vpslash.prepositive ! st ++ np.prepositive ! st ++ np.s ! st ++ "が" ++
|
||||
vpslash.obj ! st ++ vpslash.prep ++ vpslash.ba ;
|
||||
vpslash.obj ! st ++ vpslash.s ! np.meaning ! Plain ! t ! p ;
|
||||
te = \\st,p => vpslash.prepositive ! st ++ np.prepositive ! st ++ np.s ! st ++ "が" ++
|
||||
vpslash.obj ! st ++ vpslash.te ! np.meaning ! p ;
|
||||
ba = \\st,p => vpslash.prepositive ! st ++ np.prepositive ! st ++ np.s ! st ++ "が" ++
|
||||
vpslash.obj ! st ++ vpslash.ba ! np.meaning ! p ;
|
||||
subj = table {
|
||||
Wa => \\st => vpslash.prepositive ! st ++ np.prepositive ! st ++ np.s ! st ++ "は" ;
|
||||
Ga => \\st => vpslash.prepositive ! st ++ np.prepositive ! st ++ np.s ! st ++ "が"
|
||||
} ;
|
||||
pred = \\st,t,p => vpslash.obj ! st ++ vpslash.prep ++ vpslash.s ! st ! t ! p ;
|
||||
pred_te = \\st => vpslash.obj ! st ++ vpslash.prep ++ vpslash.te ;
|
||||
pred_ba = \\st => vpslash.obj ! st ++ vpslash.ba ;
|
||||
pred = \\st,t,p => vpslash.obj ! st ++ vpslash.prep ++ vpslash.s ! np.meaning ! st ! t ! p ;
|
||||
pred_te = \\st,p => vpslash.obj ! st ++ vpslash.prep ++ vpslash.te ! np.meaning ! p ;
|
||||
pred_ba = \\st,p => vpslash.obj ! st ++ vpslash.prep ++ vpslash.ba ! np.meaning ! p ;
|
||||
changePolar = np.changePolar
|
||||
} ;
|
||||
|
||||
AdvSlash clslash adv = {
|
||||
s = \\st,t,p => adv.s ! st ++ clslash.s ! st ! t ! p ;
|
||||
te = \\st => adv.s ! st ++ clslash.te ! st ;
|
||||
ba = \\st => adv.s ! st ++ clslash.ba ! st ;
|
||||
te = \\st,p => adv.s ! st ++ clslash.te ! st ! p ;
|
||||
ba = \\st,p => adv.s ! st ++ clslash.ba ! st ! p ;
|
||||
subj = \\part,st => adv.s ! st ++ clslash.subj ! part ! st ;
|
||||
pred = clslash.pred ;
|
||||
pred_te = clslash.pred_te ;
|
||||
@@ -192,29 +134,30 @@ flags coding = utf8 ;
|
||||
} ;
|
||||
|
||||
SlashPrep cl prep = {
|
||||
s = \\st,t,p => cl.s ! Ga ! st ! t ! p ++ prep.relPrep ;
|
||||
te = \\st => cl.te ! Ga ! st ++ prep.relPrep ;
|
||||
ba = \\st => cl.ba ! Ga ! st ++ prep.relPrep ;
|
||||
s = \\st,t,p => cl.s ! Ga ! st ! t ! p ++ prep.null ;
|
||||
te = \\st,p => cl.te ! Ga ! st ! p ++ prep.null ;
|
||||
ba = \\st,p => cl.ba ! Ga ! st ! p ++ prep.null ;
|
||||
subj = cl.subj ;
|
||||
pred = \\st,t,p => cl.pred ! st ! t ! p ++ prep.relPrep ;
|
||||
pred_te = \\st => cl.pred_te ! st ++ prep.relPrep ;
|
||||
pred_ba = \\st => cl.pred_ba ! st ++ prep.relPrep ;
|
||||
pred = \\st,t,p => cl.pred ! st ! t ! p ++ prep.null ;
|
||||
pred_te = \\st,p => cl.pred_te ! st ! p ++ prep.null ;
|
||||
pred_ba = \\st,p => cl.pred_ba ! st ! p ++ prep.null ;
|
||||
changePolar = cl.changePolar
|
||||
} ;
|
||||
|
||||
SlashVS np vs sslash = {
|
||||
s = \\st,t,p => np.prepositive ! st ++ np.s ! st ++ "が" ++ sslash.s ! st ++
|
||||
vs.prep ++ vs.s ! Plain ! t ! p ;
|
||||
te = \\st => np.prepositive ! st ++ np.s ! st ++ "が" ++ sslash.s ! st ++ vs.prep ++ vs.te ;
|
||||
ba = \\st => np.prepositive ! st ++ np.s ! st ++ "が" ++ sslash.s ! st ++
|
||||
vs.prep ++ vs.ba ;
|
||||
te = \\st,p => np.prepositive ! st ++ np.s ! st ++ "が" ++ sslash.s ! st ++ vs.prep ++
|
||||
vs.te ! p ;
|
||||
ba = \\st,p => np.prepositive ! st ++ np.s ! st ++ "が" ++ sslash.s ! st ++
|
||||
vs.prep ++ vs.ba ! p ;
|
||||
subj = table {
|
||||
Wa => \\st => np.prepositive ! st ++ np.s ! st ++ "は" ;
|
||||
Ga => \\st => np.prepositive ! st ++ np.s ! st ++ "が"
|
||||
} ;
|
||||
pred = \\st,t,p => sslash.s ! st ++ vs.prep ++ vs.s ! st ! t ! p ;
|
||||
pred_te = \\st => sslash.s ! st ++ vs.prep ++ vs.te ;
|
||||
pred_ba = \\st => sslash.s ! st ++ vs.prep ++ vs.ba ;
|
||||
pred_te = \\st,p => sslash.s ! st ++ vs.prep ++ vs.te ! p ;
|
||||
pred_ba = \\st,p => sslash.s ! st ++ vs.prep ++ vs.ba ! p ;
|
||||
changePolar = np.changePolar
|
||||
} ;
|
||||
|
||||
@@ -222,15 +165,15 @@ flags coding = utf8 ;
|
||||
s = table {
|
||||
Resp => table {
|
||||
Pos => vp.prepositive ! Resp ++ vp.obj ! Resp ++ vp.prep ++
|
||||
vp.te ! Anim ! Resp ;
|
||||
vp.te ! SomeoneElse ! Anim ! Resp ! Pos ;
|
||||
Neg => vp.prepositive ! Resp ++ vp.obj ! Resp ++ vp.prep ++
|
||||
vp.verb ! Anim ! Plain ! TPres ! Neg ++ "で"
|
||||
vp.verb ! SomeoneElse ! Anim ! Plain ! TPres ! Neg ++ "で"
|
||||
} ;
|
||||
Plain => table {
|
||||
Pos => vp.prepositive ! Plain ++ vp.obj ! Plain ++ vp.prep ++
|
||||
vp.i_stem ! Anim ! Plain ++ "なさい" ;
|
||||
vp.i_stem ! SomeoneElse ! Anim ! Plain ++ "nasai" ;
|
||||
Neg => vp.prepositive ! Plain ++ vp.obj ! Plain ++ vp.prep ++
|
||||
vp.verb ! Anim ! Plain ! TPres ! Pos ++ "な"
|
||||
vp.verb ! SomeoneElse ! Anim ! Plain ! TPres ! Pos ++ "な"
|
||||
}
|
||||
}
|
||||
} ;
|
||||
@@ -239,7 +182,8 @@ flags coding = utf8 ;
|
||||
|
||||
EmbedQS qs = {s = \\part,st => qs.s ! part ! Plain ; isVP = False} ;
|
||||
|
||||
EmbedVP vp = {s = \\part,st => vp.verb ! Inanim ! Plain ! TPres ! Pos ; isVP = True} ;
|
||||
EmbedVP vp = {s = \\part,st => vp.verb ! SomeoneElse ! Inanim ! Plain ! TPres ! Pos ;
|
||||
isVP = True} ;
|
||||
|
||||
UseCl t p cl = {
|
||||
s = \\part,st => case t.a of {
|
||||
@@ -262,8 +206,8 @@ flags coding = utf8 ;
|
||||
}
|
||||
}
|
||||
} ;
|
||||
te = \\part,st => t.s ++ p.s ++ cl.te ! part ! st ;
|
||||
ba = \\part,st => t.s ++ p.s ++ cl.ba ! part ! st ;
|
||||
te = \\part,st => t.s ++ p.s ++ cl.te ! part ! st ! p.b ;
|
||||
ba = \\part,st => t.s ++ p.s ++ cl.ba ! part ! st ! p.b ;
|
||||
subj = cl.subj ;
|
||||
pred = \\st => case t.a of {
|
||||
Simul => case cl.changePolar of {
|
||||
@@ -285,8 +229,8 @@ flags coding = utf8 ;
|
||||
}
|
||||
}
|
||||
} ;
|
||||
pred_te = cl.pred_te ;
|
||||
pred_ba = cl.pred_ba
|
||||
pred_te = \\st => cl.pred_te ! st ! p.b ;
|
||||
pred_ba = \\st => cl.pred_ba ! st ! p.b
|
||||
} ;
|
||||
|
||||
UseQCl t p cl = {
|
||||
@@ -309,7 +253,27 @@ flags coding = utf8 ;
|
||||
True => t.s ++ p.s ++ cl.s ! part ! st ! TPres ! Neg
|
||||
}
|
||||
}
|
||||
}
|
||||
} ;
|
||||
s_plain_pred = \\part,st => case t.a of {
|
||||
Simul => case cl.changePolar of {
|
||||
False => t.s ++ p.s ++ cl.s_plain_pred ! part ! st ! t.t ! p.b ;
|
||||
True => t.s ++ p.s ++ cl.s_plain_pred ! part ! st ! t.t ! Neg
|
||||
} ;
|
||||
Anter => case t.t of {
|
||||
TPres => case cl.changePolar of {
|
||||
False => t.s ++ p.s ++ cl.s_plain_pred ! part ! st ! TPast ! p.b ;
|
||||
True => t.s ++ p.s ++ cl.s_plain_pred ! part ! st ! TPast ! Neg
|
||||
} ;
|
||||
TPast => case cl.changePolar of {
|
||||
False => t.s ++ p.s ++ cl.s_plain_pred ! part ! st ! TPast ! p.b ;
|
||||
True => t.s ++ p.s ++ cl.s_plain_pred ! part ! st ! TPast ! Neg
|
||||
} ;
|
||||
TFut => case cl.changePolar of {
|
||||
False => t.s ++ p.s ++ cl.s_plain_pred ! part ! st ! TPres ! p.b ;
|
||||
True => t.s ++ p.s ++ cl.s_plain_pred ! part ! st ! TPres ! Neg
|
||||
}
|
||||
}
|
||||
}
|
||||
} ;
|
||||
|
||||
UseRCl t p rcl = {
|
||||
@@ -333,7 +297,7 @@ flags coding = utf8 ;
|
||||
}
|
||||
}
|
||||
} ;
|
||||
te = \\a,st => t.s ++ p.s ++ rcl.te ! a ! st ;
|
||||
te = \\a,st => t.s ++ p.s ++ rcl.te ! a ! st ! p.b ;
|
||||
subj = rcl.subj ;
|
||||
pred = \\a,st => case t.a of {
|
||||
Simul => case rcl.changePolar of {
|
||||
@@ -355,8 +319,8 @@ flags coding = utf8 ;
|
||||
}
|
||||
}
|
||||
} ;
|
||||
pred_te = \\a,st => t.s ++ p.s ++ rcl.pred_te ! a ! st ;
|
||||
pred_ba = \\a,st => t.s ++ p.s ++ rcl.pred_ba ! a ! st ;
|
||||
pred_te = \\a,st => t.s ++ p.s ++ rcl.pred_te ! a ! st ! p.b ;
|
||||
pred_ba = \\a,st => t.s ++ p.s ++ rcl.pred_ba ! a ! st ! p.b ;
|
||||
missingSubj = rcl.missingSubj
|
||||
} ;
|
||||
|
||||
@@ -381,7 +345,7 @@ flags coding = utf8 ;
|
||||
}
|
||||
}
|
||||
} ;
|
||||
te = \\st => clslash.te ! st
|
||||
te = \\st => clslash.te ! st ! p.b
|
||||
} ;
|
||||
|
||||
AdvS adv s = {
|
||||
@@ -444,7 +408,7 @@ flags coding = utf8 ;
|
||||
te = \\part,st => rs.subj ! part ! st ++ sent.subj ! Ga ! st ++ sent.pred ! Plain ++
|
||||
"ことが" ++ rs.pred_te ! Inanim ! st ;
|
||||
ba = \\part,st => rs.subj ! part ! st ++ sent.subj ! Ga ! st ++ sent.pred ! Plain ++
|
||||
"ことが" ++ rs.pred_ba ! Inanim ! st ;
|
||||
"ことが" ++ rs.pred_ba ! Inanim ! st ;
|
||||
subj = \\part,st => rs.subj ! part ! st ++ sent.subj ! Ga ! st ++ sent.pred ! Plain ++
|
||||
"ことが" ;
|
||||
pred = \\st => rs.pred ! Inanim ! st ;
|
||||
@@ -452,24 +416,12 @@ flags coding = utf8 ;
|
||||
pred_ba = \\st => rs.pred_ba ! Inanim ! st
|
||||
} ;
|
||||
False => {
|
||||
s = table {
|
||||
Wa => \\st => rs.subj ! Wa ! st ++ sent.subj ! Ga ! st ++ sent.pred ! Plain ++
|
||||
"ことを" ++ rs.pred ! Inanim ! st ;
|
||||
Ga => \\st => rs.subj ! Ga ! st ++ sent.subj ! Ga ! st ++ sent.pred ! Plain ++
|
||||
"ことを" ++ rs.pred ! Inanim ! st
|
||||
} ;
|
||||
te = table {
|
||||
Wa => \\st => rs.subj ! Wa ! st ++ sent.subj ! Ga ! st ++ sent.pred ! Plain ++
|
||||
"ことを" ++ rs.pred_te ! Inanim ! st ;
|
||||
Ga => \\st => rs.subj ! Ga ! st ++ sent.subj ! Ga ! st ++ sent.pred ! Plain ++
|
||||
"ことを" ++ rs.pred_te ! Inanim ! st
|
||||
} ;
|
||||
ba = table {
|
||||
Wa => \\st => rs.subj ! Wa ! st ++ sent.subj ! Ga ! st ++ sent.pred ! Plain ++
|
||||
"ことを" ++ rs.pred_ba ! Inanim ! st ;
|
||||
Ga => \\st => rs.subj ! Ga ! st ++ sent.subj ! Ga ! st ++ sent.pred ! Plain ++
|
||||
"ことを" ++ rs.pred_ba ! Inanim ! st
|
||||
} ;
|
||||
s = \\part,st => rs.subj ! part ! st ++ sent.subj ! Ga ! st ++ sent.pred ! Plain ++
|
||||
"ことを" ++ rs.pred ! Inanim ! st ;
|
||||
te = \\part,st => rs.subj ! part ! st ++ sent.subj ! Ga ! st ++ sent.pred ! Plain ++
|
||||
"ことを" ++ rs.pred_te ! Inanim ! st ;
|
||||
ba = \\part,st => rs.subj ! Wa ! st ++ sent.subj ! Ga ! st ++ sent.pred ! Plain ++
|
||||
"ことを" ++ rs.pred_ba ! Inanim ! st ;
|
||||
subj = \\part,st => rs.subj ! part ! st ;
|
||||
pred = \\st => sent.subj ! Ga ! st ++ sent.pred ! Plain ++ "ことを" ++
|
||||
rs.pred ! Inanim ! st ;
|
||||
|
||||
@@ -4,8 +4,8 @@ flags coding = utf8 ;
|
||||
|
||||
lin
|
||||
|
||||
above_Prep = mkPrep "の上に" "上に" ; -- "noueni" "ueni"
|
||||
after_Prep = mkPrep "の後に" "後" ; -- "noatoni" "ato"
|
||||
above_Prep = mkPrep "の上に" ; -- "noueni"
|
||||
after_Prep = mkPrep "の後に" ; -- "noatoni"
|
||||
all_Predet = {s = "全部" ; not = False} ;
|
||||
almost_AdA = ss "殆ど" ; -- "hotondo"
|
||||
almost_AdN = {s = "殆ど" ; postposition = False} ;
|
||||
@@ -13,56 +13,52 @@ flags coding = utf8 ;
|
||||
always_AdV = ss "いつも" ;
|
||||
and_Conj = mkConj "そして" And ;
|
||||
because_Subj = mkSubj "から" OtherSubj ;
|
||||
before_Prep = mkPrep "の前に" "前に" ; -- "nomaeni" "maeni"
|
||||
behind_Prep = mkPrep "後ろに" "後ろに" ; -- "ushironi" "ushironi"
|
||||
between_Prep = mkPrep "の間に" "間に" ; -- "noaidani" "aidani"
|
||||
before_Prep = mkPrep "の前に" ; -- "nomaeni"
|
||||
behind_Prep = mkPrep "後ろに" ; -- "ushironi"
|
||||
between_Prep = mkPrep "の間に" ; -- "noaidani"
|
||||
both7and_DConj = mkConj "そして" Both ;
|
||||
by8agent_Prep = mkPrep "に" "" ;
|
||||
by8means_Prep = mkPrep "によって" "" ;
|
||||
by8agent_Prep = mkPrep "に" ;
|
||||
by8means_Prep = mkPrep "によって" ;
|
||||
but_PConj = ss "けれども" ;
|
||||
can8know_VV = mkVerb "でき" "でき" "できる" "できた" ** {sense = Abil} ;
|
||||
can8know_VV = mkCan ;
|
||||
can_VV = can8know_VV ;
|
||||
during_Prep = mkPrep "の間に" "" ; -- "noaidani"
|
||||
during_Prep = mkPrep "の間に" ; -- "noaidani"
|
||||
either7or_DConj = mkConj "それとも" Or ;
|
||||
every_Det = mkDet "全ての" "全て" Sg ; -- "subeteno"
|
||||
everybody_NP = mkNP "皆" True False Anim ; -- "minna"
|
||||
everything_NP = mkNP "全て" True False Inanim ; -- "subete"
|
||||
everywhere_Adv = mkAdv "どこでも" ; -- "dokodemo" ;
|
||||
first_Ord = {pred = \\st,t,p => "一番目" ++ mkCopula.s ! st ! t ! p ;
|
||||
attr = "一番目の" ; te = "一番目" ++ mkCopula.te ;
|
||||
ba = "一番目" ++ mkCopula.ba ; adv = "一番目" ;
|
||||
dropNaEnging = "一番目"} ;
|
||||
everywhere_Adv = mkAdv "どこでも" ; -- "dokodemo"
|
||||
first_Ord = mkFirst ;
|
||||
few_Det = mkDet "少数の" "少数" Pl ; -- "shoosuuno"
|
||||
for_Prep = mkPrep "のために" "" ;
|
||||
from_Prep = mkPrep "から" "" ;
|
||||
for_Prep = mkPrep "のために" ;
|
||||
from_Prep = mkPrep "から" ;
|
||||
he_Pron = mkPron "彼" False Anim ; -- "kare"
|
||||
here_Adv = mkAdv "ここで" ;
|
||||
here7to_Adv = mkAdv "ここに" ;
|
||||
here7from_Adv = mkAdv "ここから" ;
|
||||
how_IAdv = {s = \\st => "どのように" ; particle = ""} ;
|
||||
how_IAdv = {s = \\st => "どのように" ; particle = "" ; wh8re = False} ;
|
||||
how8many_IDet = {s = "いくつ" ; n = Pl ; how8many = True ; inclCard = False} ;
|
||||
how8much_IAdv = {s = \\st => "いくら" ; particle = ""} ;
|
||||
i_Pron = mkPron ("僕"|"私") "私" True Anim ; -- "boku"|"watashi"
|
||||
how8much_IAdv = {s = \\st => "いくら" ; particle = "" ; wh8re = False} ;
|
||||
i_Pron = mkPron "私" "私" True Anim ; -- "watashi"
|
||||
if_Subj = mkSubj "" If ;
|
||||
in8front_Prep = mkPrep "の前に" "前に" ; -- "nomaeni" "maeni"
|
||||
in_Prep = mkPrep "に" "" ;
|
||||
in8front_Prep = mkPrep "の前に" ; -- "nomaeni"
|
||||
in_Prep = mkPrep "に" ;
|
||||
it_Pron = mkPron "それ" False Inanim ;
|
||||
less_CAdv = {s = "のほうが" ; compar = Less} ;
|
||||
less_CAdv = {s = "より" ; less = True ; s_adn = "以下"} ; -- "ika"
|
||||
many_Det = mkDet "多くの" "多く" Pl ; -- "ookuno"
|
||||
more_CAdv = {s = "より" ; compar = More} ;
|
||||
more_CAdv = {s = "より" ; less = False ; s_adn = "以上"} ; -- "ijou"
|
||||
most_Predet = {s = "ほとんどの" ; not = False} ;
|
||||
much_Det = mkDet "多くの" "多量" Sg ; -- "ookuno" "taryou"
|
||||
must_VV = {s = (mkVerb "なら" "なり" "なる" "なった").s ; te = "ならなくて" ;
|
||||
ba = "ならなければ" ; a_stem = "なら" ; i_stem = "なり" ; sense = Oblig} ;
|
||||
no_Phr = ss "いいえ" ;
|
||||
no_Utt = {s = \\st => "いいえ"} ;
|
||||
on_Prep = mkPrep "の上に" "" ;
|
||||
must_VV = mkMust ;
|
||||
no_Phr = {s = "いいえ"} ;
|
||||
no_Utt = {s = \\part,st => "いいえ" ; type = NoImp} ;
|
||||
on_Prep = mkPrep "の上に" ; -- "noueni"
|
||||
only_Predet = {s = "ほんの" ; not = False} ;
|
||||
or_Conj = mkConj "それとも" Or ;
|
||||
otherwise_PConj = ss "そうしなければ" ;
|
||||
part_Prep = mkPrep "の" "" ;
|
||||
please_Voc = {s = table {Resp => "ください" ; Plain => "" } ; please = True} ;
|
||||
possess_Prep = mkPrep "の" "" ;
|
||||
part_Prep = mkPrep "の" ;
|
||||
please_Voc = {s = \\st => "ください" ; type = Please ; null = ""} ;
|
||||
possess_Prep = mkPrep "の" ;
|
||||
quite_Adv = ss "可成" ; -- "kanari"
|
||||
she_Pron = mkPron "彼女" False Anim ; -- "kanojo"
|
||||
so_AdA = ss "非常に" ; -- "hijooni"
|
||||
@@ -73,48 +69,47 @@ flags coding = utf8 ;
|
||||
somewhere_Adv = mkAdv "どこかに" ;
|
||||
that_Quant = {s = \\st => "その" ; sp = \\st => "それ" ; no = False} ;
|
||||
that_Subj = mkSubj "ことを" That ;
|
||||
there_Adv = mkAdv "そこに" ;
|
||||
there_Adv = mkAdv "そこで" ;
|
||||
there7to_Adv = mkAdv "そこに" ;
|
||||
there7from_Adv = mkAdv "そこから" ;
|
||||
therefore_PConj = ss "それで" ;
|
||||
they_Pron = mkPron "彼ら" "あの人達" False Anim ; -- "karera" "ano hito-tachi"
|
||||
this_Quant = {s = \\st => "この" ; sp = \\st => "これ" ; no = False} ;
|
||||
through_Prep = mkPrep "を通じて" "通じて" ; -- "otsuujite"
|
||||
to_Prep = mkPrep "に" "" ;
|
||||
through_Prep = mkPrep "を通じて" ; -- "otsuujite"
|
||||
to_Prep = mkPrep "に" ;
|
||||
too_AdA = ss "あまりにも" ;
|
||||
under_Prep = mkPrep "の下に" "下に" ; -- "noshitani"
|
||||
under_Prep = mkPrep "の下に" ; -- "noshitani"
|
||||
very_AdA = ss "とても" ;
|
||||
want_VV = {s = (mkVerb "い" "い" "いる" "いった").s ; te = "いって" ;
|
||||
ba = "いれば" ; a_stem = "い" ; i_stem = "い" ; sense = Wish} ;
|
||||
want_VV = mkWant ;
|
||||
we_Pron = mkPron "私達" False Anim ; -- "watashitachi"
|
||||
whatPl_IP = {s = \\st => "何" ; anim = Inanim ; how8many = False} ; -- "nani"
|
||||
whatSg_IP = {s = \\st => "何" ; anim = Inanim ; how8many = False} ;
|
||||
when_IAdv = {s = \\st => "いつ" ; particle = ""} ;
|
||||
whatPl_IP = {s_subj, s_obj = \\st => "何" ; anim = Inanim ; how8many = False} ; -- "nani"
|
||||
whatSg_IP = {s_subj, s_obj = \\st => "何" ; anim = Inanim ; how8many = False} ;
|
||||
when_IAdv = {s = \\st => "いつ" ; particle = "" ; wh8re = False} ;
|
||||
when_Subj = mkSubj "と" OtherSubj ;
|
||||
where_IAdv = {s = \\st => "どこ" ; particle = "で"} ;
|
||||
where_IAdv = {s = \\st => "どこ" ; particle = "で" ; wh8re = True} ;
|
||||
which_IQuant = ss "どの" ;
|
||||
whoPl_IP = {s = \\st => "誰" ; anim = Anim ; how8many = False} ;
|
||||
whoSg_IP = {s = \\st => "誰" ; anim = Anim ; how8many = False} ;
|
||||
why_IAdv = {s = \\st => "どうして" ; particle = ""} ;
|
||||
with_Prep = mkPrep "と" "" ;
|
||||
without_Prep = mkPrep "無しで" "無しで" ; -- "nashide"
|
||||
yes_Phr = ss "はい" ;
|
||||
yes_Utt = {s = \\st => "はい"} ;
|
||||
youSg_Pron = mkPron ("あなた"|"君") "あなた" False Anim ; -- ("anata"|"kimi")
|
||||
whoPl_IP = {s_subj, s_obj = \\st => "誰" ; anim = Anim ; how8many = False} ; -- "dare"
|
||||
whoSg_IP = {s_subj, s_obj = \\st => "誰" ; anim = Anim ; how8many = False} ;
|
||||
why_IAdv = {s = \\st => "どうして" ; particle = "" ; wh8re = False} ;
|
||||
with_Prep = mkPrep "と" ;
|
||||
without_Prep = mkPrep "無しで" ; -- "nashide"
|
||||
yes_Phr = {s = "はい"} ;
|
||||
yes_Utt = {s = \\part,st => "はい" ; type = NoImp} ;
|
||||
youSg_Pron = mkPron "あなた" "あなた" False Anim ;
|
||||
youPl_Pron = mkPron "あなた達" "あなた方" False Anim ; -- "anatatachi" "anatagata"
|
||||
youPol_Pron = mkPron "あなた" False Anim ;
|
||||
|
||||
no_Quant = {s = \\st => "" ; sp = \\st => "何も" ; no = True} ;
|
||||
no_Quant = {s = \\st => "" ; sp = \\st => "何も" ; no = True} ; -- "nanimo"
|
||||
not_Predet = {s = "" ; not = True} ;
|
||||
at_least_AdN = {s = "少なくとも" ; postposition = False} ; -- "sukunakutomo"
|
||||
at_most_AdN = {s = "せいぜい" ; postposition = False} ;
|
||||
nobody_NP = mkNP "誰も" False True Anim ;
|
||||
nothing_NP = mkNP "何も" False True Inanim ;
|
||||
except_Prep = mkPrep "を除いて" "を除いて" ; -- "onozoite"
|
||||
|
||||
as_CAdv = {s = "と同じぐらい" ; compar = NoCompar} ; -- "toonajigurai"
|
||||
|
||||
have_V2 = mkV2 "持ってい" "持ってい" "持っている" "持っていた" "を" ;
|
||||
nobody_NP = mkNP "誰も" False True Anim ; -- "daremo"
|
||||
nothing_NP = mkNP "何も" False True Inanim ; -- "nanimo"
|
||||
except_Prep = mkPrep "を除いて" ;
|
||||
|
||||
language_title_Utt = {s = \\st => "日本語"} ; -- "nihongo"
|
||||
as_CAdv = {s = "と同じぐらい" ; less = False ; s_adn = "もの"} ;
|
||||
|
||||
have_V2 = mkV2 "持っている" "を" Gr2 ;
|
||||
|
||||
language_title_Utt = {s = \\part,st => "日本語" ; type = NoImp} ; -- "nihongo"
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ flags coding = utf8 ;
|
||||
|
||||
lin
|
||||
|
||||
TEmpty = ss "" ;
|
||||
TEmpty = {s = ""} ;
|
||||
|
||||
TFullStop phr txt = {s = phr.s ++ "." ++ txt.s} ;
|
||||
|
||||
|
||||
@@ -5,208 +5,183 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
lin
|
||||
|
||||
UseV v = {
|
||||
verb = \\a,st,t,p => v.s ! st ! t ! p ;
|
||||
te = \\a,st => v.te ;
|
||||
a_stem = \\a,st => v.a_stem ;
|
||||
i_stem = \\a,st => v.i_stem ;
|
||||
ba = \\a,st => v.ba ;
|
||||
verb = \\sp,a,st,t,p => v.s ! st ! t ! p ;
|
||||
te = \\sp,a,st => v.te ;
|
||||
a_stem = \\sp,a,st => v.a_stem ;
|
||||
i_stem = \\sp,a,st => v.i_stem ;
|
||||
ba = \\sp,a,st => v.ba ;
|
||||
prep = [] ;
|
||||
obj = \\st => [] ;
|
||||
prepositive = \\st => [] ;
|
||||
compar = NoCompar
|
||||
prepositive = \\st => []
|
||||
} ;
|
||||
|
||||
ComplVV v vp = case v.sense of {
|
||||
Abil => {
|
||||
verb = \\a,st,t,p => vp.verb ! Anim ! Plain ! TPres ! ResJap.Pos ++
|
||||
"ことが" ++ v.s ! st ! t ! p ;
|
||||
te = \\a,st => vp.verb ! Anim ! Plain ! TPres ! ResJap.Pos ++ "ことが" ++ v.te ;
|
||||
a_stem = \\a,st => vp.verb ! Anim ! Plain ! TPres ! ResJap.Pos ++ "ことが" ++ v.a_stem ;
|
||||
i_stem = \\a,st => vp.verb ! Anim ! Plain ! TPres ! ResJap.Pos ++ "ことが" ++ v.i_stem ;
|
||||
ba = \\a,st => vp.verb ! Anim ! Plain ! TPres ! ResJap.Pos ++ "ことが" ++ v.ba ;
|
||||
verb = \\sp,a,st,t,p => vp.verb ! sp ! a ! Plain ! TPres ! ResJap.Pos ++
|
||||
"ことが" ++ v.s ! sp ! st ! t ! p ;
|
||||
te = \\sp,a,st,p => vp.verb ! sp ! a ! Plain ! TPres ! ResJap.Pos ++ "ことが" ++
|
||||
v.te ! sp ! p ;
|
||||
a_stem = \\sp,a,st => vp.verb ! sp ! a ! Plain ! TPres ! ResJap.Pos ++
|
||||
"ことが" ++ v.a_stem ! sp ;
|
||||
i_stem = \\sp,a,st => vp.verb ! sp ! a ! Plain ! TPres ! ResJap.Pos ++
|
||||
"ことが" ++ v.i_stem ! sp ;
|
||||
ba = \\sp,a,st,p => vp.verb ! sp ! a ! Plain ! TPres ! ResJap.Pos ++ "ことが" ++
|
||||
v.ba ! sp ! p ;
|
||||
prep = vp.prep ;
|
||||
obj = \\st => vp.obj ! st ;
|
||||
prepositive = vp.prepositive ;
|
||||
compar = NoCompar
|
||||
prepositive = vp.prepositive
|
||||
} ;
|
||||
Oblig => {
|
||||
verb = \\a,st,t,p => vp.a_stem ! Anim ! st ++ "なければ" ++ v.s ! st ! t ! Neg ;
|
||||
te = \\a,st => vp.a_stem ! Anim ! st ++ "なければ" ++ v.te ;
|
||||
a_stem = \\a,st => vp.a_stem ! Anim ! st ++ "なければ" ++ v.a_stem ;
|
||||
i_stem = \\a,st => vp.a_stem ! Anim ! st ++ "なければ" ++ v.i_stem ;
|
||||
ba = \\a,st => vp.a_stem ! Anim ! st ++ "なければ" ++ v.ba ;
|
||||
verb = \\sp,a,st,t => table {
|
||||
Pos => vp.a_stem ! sp ! a ! st ++ "なければ" ++ v.s ! sp ! st ! t ! Neg ;
|
||||
Neg => vp.te ! sp ! a ! st ! Pos ++ "は" ++ v.s ! sp ! st ! t ! Neg
|
||||
} ;
|
||||
te = \\sp,a,st => table {
|
||||
Pos => vp.a_stem ! sp ! a ! st ++ "なければ" ++ v.te ! sp ! Pos ;
|
||||
Neg => vp.te ! sp ! a ! st ! Pos ++ "は" ++ v.te ! sp ! Pos
|
||||
} ;
|
||||
a_stem = \\sp,a,st => vp.a_stem ! sp ! a ! st ++ "なければ" ++ v.a_stem ! sp ;
|
||||
i_stem = \\sp,a,st => vp.a_stem ! sp ! a ! st ++ "なければ" ++ v.i_stem ! sp ;
|
||||
ba = \\sp,a,st => table {
|
||||
Pos => vp.a_stem ! sp ! a ! st ++ "なければ" ++ v.ba ! sp ! Pos ;
|
||||
Neg => vp.te ! sp ! a ! st ! Pos ++ "は" ++ v.ba ! sp ! Pos
|
||||
} ;
|
||||
prep = vp.prep ;
|
||||
obj = \\st => vp.obj ! st ;
|
||||
prepositive = vp.prepositive ;
|
||||
compar = NoCompar
|
||||
prepositive = vp.prepositive
|
||||
} ;
|
||||
Wish => {
|
||||
verb = \\a,st,t,p => vp.i_stem ! Anim ! st ++ "たがって" ++ v.s ! st ! t ! p ;
|
||||
te = \\a,st => vp.i_stem ! Anim ! st ++ "たがって" ++ v.te ;
|
||||
a_stem = \\a,st => vp.i_stem ! Anim ! st ++ "たがって" ++ v.a_stem ;
|
||||
i_stem = \\a,st => vp.i_stem ! Anim ! st ++ "たがって" ++ v.i_stem ;
|
||||
ba = \\a,st => vp.i_stem ! Anim ! st ++ "たがって" ++ v.ba ;
|
||||
verb = \\sp,a,st,t,p => vp.i_stem ! sp ! a ! st ++ v.s ! sp ! st ! t ! p ;
|
||||
te = \\sp,a,st,p => vp.i_stem ! sp ! a ! st ++ v.te ! sp ! p ;
|
||||
a_stem = \\sp,a,st => vp.i_stem ! sp ! a ! st ++ v.a_stem ! sp ;
|
||||
i_stem = \\sp,a,st => vp.i_stem ! sp ! a ! st ++ v.i_stem ! sp ;
|
||||
ba = \\sp,a,st,p => vp.i_stem ! sp ! a ! st ++ v.ba ! sp ! p ;
|
||||
prep = vp.prep ;
|
||||
obj = \\st => vp.obj ! st ;
|
||||
prepositive = vp.prepositive ;
|
||||
compar = NoCompar
|
||||
prepositive = vp.prepositive
|
||||
}
|
||||
} ;
|
||||
|
||||
ComplVS vs sent = {
|
||||
verb = \\a,st,t,p => vs.s ! st ! t ! p ;
|
||||
te = \\a,st => vs.te ;
|
||||
a_stem = \\a,st => vs.a_stem ;
|
||||
i_stem = \\a,st => vs.i_stem ;
|
||||
ba = \\a,st => vs.ba ;
|
||||
verb = \\sp,a,st,t,p => vs.s ! st ! t ! p ;
|
||||
te = \\sp,a,st => vs.te ;
|
||||
a_stem = \\sp,a,st => vs.a_stem ;
|
||||
i_stem = \\sp,a,st => vs.i_stem ;
|
||||
ba = \\sp,a,st => vs.ba ;
|
||||
prep = vs.prep ;
|
||||
obj = \\st => sent.s ! Ga ! Plain ;
|
||||
prepositive = \\st => [] ;
|
||||
compar = NoCompar
|
||||
obj = \\st => sent.subj ! Ga ! st ++ sent.pred ! Plain ;
|
||||
prepositive = \\st => []
|
||||
} ;
|
||||
|
||||
ComplVQ vq qs = {
|
||||
verb = \\a,st,t,p => vq.s ! st ! t ! p ;
|
||||
te = \\a,st => vq.te ;
|
||||
a_stem = \\a,st => vq.a_stem ;
|
||||
i_stem = \\a,st => vq.i_stem ;
|
||||
ba = \\a,st => vq.ba ;
|
||||
prep = vq.prep ;
|
||||
obj = \\st => qs.s ! Ga ! Plain ++ "こと" ;
|
||||
prepositive = \\st => [] ;
|
||||
compar = NoCompar
|
||||
verb = \\sp,a,st,t,p => vq.s ! st ! t ! p ;
|
||||
te = \\sp,a,st => vq.te ;
|
||||
a_stem = \\sp,a,st => vq.a_stem ;
|
||||
i_stem = \\sp,a,st => vq.i_stem ;
|
||||
ba = \\sp,a,st => vq.ba ;
|
||||
prep = "" ;
|
||||
obj = \\st => qs.s_plain_pred ! Ga ! st ;
|
||||
prepositive = \\st => []
|
||||
} ;
|
||||
|
||||
ComplVA va ap = {
|
||||
verb = \\a,st,t,p => va.s ! st ! t ! p ;
|
||||
te = \\a,st => va.te ;
|
||||
a_stem = \\a,st => va.a_stem ;
|
||||
i_stem = \\a,st => va.i_stem ;
|
||||
ba = \\a,st => va.ba ;
|
||||
verb = \\sp,a,st,t,p => va.s ! st ! t ! p ;
|
||||
te = \\sp,a,st => va.te ;
|
||||
a_stem = \\sp,a,st => va.a_stem ;
|
||||
i_stem = \\sp,a,st => va.i_stem ;
|
||||
ba = \\sp,a,st => va.ba ;
|
||||
prep = [] ;
|
||||
obj = \\st => ap.adv ! st ;
|
||||
prepositive = ap.prepositive ;
|
||||
compar = NoCompar
|
||||
prepositive = ap.prepositive
|
||||
} ;
|
||||
|
||||
SlashV2a v2 = {
|
||||
s = \\st,t,p => v2.s ! st ! t ! p ;
|
||||
a_stem = v2.a_stem ;
|
||||
i_stem = v2.i_stem ;
|
||||
ba = v2.ba ;
|
||||
s = \\sp,st,t,p => v2.s ! st ! t ! p ;
|
||||
a_stem = \\sp => v2.a_stem ;
|
||||
i_stem = \\sp => v2.i_stem ;
|
||||
ba = \\sp => v2.ba ;
|
||||
prep = v2.prep ;
|
||||
obj = \\st => [] ;
|
||||
prepositive = \\st => [] ;
|
||||
te = v2.te ;
|
||||
v2vType = False ;
|
||||
compar = NoCompar
|
||||
te = \\sp => v2.te ;
|
||||
v2vType = False
|
||||
} ;
|
||||
|
||||
Slash2V3 v3 np = case v3.give of {
|
||||
True => {
|
||||
s = \\st,t,p => case np.Pron1Sg of {
|
||||
True => (mkVerb "呉れ" "呉れ" "呉れる" "呉れた").s ! st ! t ! p ; -- "kureru"
|
||||
False => v3.s ! st ! t ! p
|
||||
} ;
|
||||
a_stem = case np.Pron1Sg of {
|
||||
True => "呉れ" ;
|
||||
False => "上げ"
|
||||
} ;
|
||||
i_stem = case np.Pron1Sg of {
|
||||
True => "呉れ" ;
|
||||
False => "上げ"
|
||||
} ;
|
||||
ba = case np.Pron1Sg of {
|
||||
True => "呉れれば" ;
|
||||
False => "上げれば"
|
||||
} ;
|
||||
Slash2V3 v3 np = {
|
||||
s = \\sp,st,t,p => v3.s ! np.meaning ! st ! t ! p ;
|
||||
a_stem = \\sp => v3.a_stem ! np.meaning ;
|
||||
i_stem = \\sp => v3.i_stem ! np.meaning ;
|
||||
ba = \\sp,p => v3.ba ! np.meaning ! p ;
|
||||
prep = v3.prep2 ;
|
||||
obj = \\st => np.s ! st ++ v3.prep1 ;
|
||||
prepositive = np.prepositive ;
|
||||
te = case np.Pron1Sg of {
|
||||
True => "呉れて" ;
|
||||
False => "上げて"
|
||||
} ;
|
||||
v2vType = False ;
|
||||
compar = NoCompar
|
||||
} ;
|
||||
False => {
|
||||
s = \\st,t,p => v3.s ! st ! t ! p ;
|
||||
a_stem = v3.a_stem ;
|
||||
i_stem = v3.i_stem ;
|
||||
ba = v3.ba ;
|
||||
prep = v3.prep2 ;
|
||||
obj = \\st => np.s ! st ++ v3.prep1 ;
|
||||
prepositive = np.prepositive ;
|
||||
te = v3.te ;
|
||||
v2vType = False ;
|
||||
compar = NoCompar
|
||||
}
|
||||
te = \\sp,p => v3.te ! np.meaning ! p ;
|
||||
v2vType = False
|
||||
} ;
|
||||
|
||||
Slash3V3 = Slash2V3 ;
|
||||
|
||||
SlashV2V v2v vp = {
|
||||
s = \\st,t,p => vp.verb ! Anim ! Plain ! TPres ! ResJap.Pos ++ "ように"
|
||||
++ v2v.s ! st ! t ! p ;
|
||||
a_stem = vp.verb ! Anim ! Plain ! TPres ! ResJap.Pos ++ "ように" ++ v2v.a_stem ;
|
||||
i_stem = vp.verb ! Anim ! Plain ! TPres ! ResJap.Pos ++ "ように" ++ v2v.i_stem ;
|
||||
ba = vp.verb ! Anim ! Plain ! TPres ! ResJap.Pos ++ "ように" ++ v2v.ba ;
|
||||
s = \\sp,st,t,p => vp.verb ! SomeoneElse ! Anim ! Plain ! TPres ! ResJap.Pos ++ "ように"
|
||||
++ v2v.s ! st ! t ! p ;
|
||||
a_stem = \\sp => vp.verb ! SomeoneElse ! Anim ! Plain ! TPres ! ResJap.Pos ++
|
||||
"ように" ++ v2v.a_stem ;
|
||||
i_stem = \\sp => vp.verb ! SomeoneElse ! Anim ! Plain ! TPres ! ResJap.Pos ++
|
||||
"ように" ++ v2v.i_stem ;
|
||||
ba = \\sp,p => vp.verb ! SomeoneElse ! Anim ! Plain ! TPres ! ResJap.Pos ++ "ように" ++
|
||||
v2v.ba ! p ;
|
||||
prep = "に" ;
|
||||
obj = \\st => vp.obj ! st ++ vp.prep ;
|
||||
te = vp.verb ! Anim ! Plain ! TPres ! ResJap.Pos ++ "ように" ++ v2v.te ;
|
||||
te = \\sp,p => vp.verb ! SomeoneElse ! Anim ! Plain ! TPres ! ResJap.Pos ++ "ように" ++
|
||||
v2v.te ! p ;
|
||||
prepositive = vp.prepositive ;
|
||||
v2vType = True ;
|
||||
compar = NoCompar
|
||||
v2vType = True
|
||||
} ;
|
||||
|
||||
SlashV2S v2s s = {
|
||||
s = v2s.s ;
|
||||
a_stem = v2s.a_stem ;
|
||||
i_stem = v2s.i_stem ;
|
||||
ba = v2s.ba ;
|
||||
s = \\sp,st,t,p => v2s.s ! st ! t ! p ;
|
||||
a_stem = \\sp => v2s.a_stem ;
|
||||
i_stem = \\sp => v2s.i_stem ;
|
||||
ba = \\sp => v2s.ba ;
|
||||
prep = "に" ;
|
||||
obj = \\st => s.s ! Ga ! Plain ++ "と" ;
|
||||
obj = \\st => s.subj ! Ga ! st ++ s.pred ! Plain ++ "と" ;
|
||||
prepositive = \\st => [] ;
|
||||
te = v2s.te ;
|
||||
v2vType = False ;
|
||||
compar = NoCompar
|
||||
te = \\sp => v2s.te ;
|
||||
v2vType = False
|
||||
} ;
|
||||
|
||||
SlashV2Q v2q qs = {
|
||||
s = v2q.s ;
|
||||
a_stem = v2q.a_stem ;
|
||||
i_stem = v2q.i_stem ;
|
||||
ba = v2q.ba ;
|
||||
s = \\sp,st,t,p => v2q.s ! st ! t ! p ;
|
||||
a_stem = \\sp => v2q.a_stem ;
|
||||
i_stem = \\sp => v2q.i_stem ;
|
||||
ba = \\sp => v2q.ba ;
|
||||
prep = "に" ;
|
||||
obj = \\st => qs.s ! Ga ! Plain ++ "ことを" ;
|
||||
obj = \\st => qs.s_plain_pred ! Ga ! st ;
|
||||
prepositive = \\st => [] ;
|
||||
te = v2q.te ;
|
||||
v2vType = True ;
|
||||
compar = NoCompar
|
||||
te = \\sp => v2q.te ;
|
||||
v2vType = True
|
||||
} ;
|
||||
|
||||
SlashV2A v2a ap = {
|
||||
s = v2a.s ;
|
||||
a_stem = v2a.a_stem ;
|
||||
i_stem = v2a.i_stem ;
|
||||
ba = v2a.ba ;
|
||||
s = \\sp,st,t,p => v2a.s ! st ! t ! p ;
|
||||
a_stem = \\sp => v2a.a_stem ;
|
||||
i_stem = \\sp => v2a.i_stem ;
|
||||
ba = \\sp => v2a.ba ;
|
||||
prep = "を" ;
|
||||
obj = ap.adv ;
|
||||
prepositive = ap.prepositive ;
|
||||
te = v2a.te ;
|
||||
v2vType = True ;
|
||||
compar = NoCompar
|
||||
te = \\sp => v2a.te ;
|
||||
v2vType = True
|
||||
} ;
|
||||
|
||||
ComplSlash vpslash np = {
|
||||
verb = \\a,st,t,p => case np.changePolar of {
|
||||
True => vpslash.s ! st ! t ! Neg ;
|
||||
False => vpslash.s ! st ! t ! p
|
||||
verb = \\sp,a,st,t,p => case np.changePolar of {
|
||||
True => vpslash.s ! sp ! st ! t ! Neg ;
|
||||
False => vpslash.s ! sp ! st ! t ! p
|
||||
} ;
|
||||
a_stem = \\a,st => vpslash.a_stem ;
|
||||
i_stem = \\a,st => vpslash.i_stem ;
|
||||
ba = \\a,st => vpslash.ba ;
|
||||
a_stem = \\sp,a,st => vpslash.a_stem ! sp ;
|
||||
i_stem = \\sp,a,st => vpslash.i_stem ! sp ;
|
||||
ba = \\sp,a,st,p => vpslash.ba ! sp ! p ;
|
||||
prep = case np.needPart of {
|
||||
True => case vpslash.v2vType of {
|
||||
True => [] ;
|
||||
@@ -218,85 +193,104 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
True => np.s ! st ++ vpslash.prep ++ vpslash.obj ! st ;
|
||||
False => vpslash.obj ! st ++ np.s ! st
|
||||
} ;
|
||||
te = \\a,st => vpslash.te ;
|
||||
prepositive = \\st => np.prepositive ! st ++ vpslash.prepositive ! st ;
|
||||
compar = vpslash.compar
|
||||
te = \\sp,a,st,p => vpslash.te ! sp ! p ;
|
||||
prepositive = \\st => np.prepositive ! st ++ vpslash.prepositive ! st
|
||||
} ;
|
||||
|
||||
SlashVV v vpslash = {
|
||||
s = \\st,t,p => case v.sense of {
|
||||
Abil => vpslash.s ! Plain ! TPres ! ResJap.Pos ++
|
||||
"ことが" ++ v.s ! st ! t ! p ;
|
||||
Oblig => vpslash.a_stem ++ "なければ" ++ v.s ! st ! t ! p ;
|
||||
Wish => vpslash.i_stem ++ "たがって" ++ v.s ! st ! t ! p
|
||||
SlashVV v vpslash = case v.sense of {
|
||||
Abil => {
|
||||
s = \\sp,st,t,p => vpslash.s ! sp ! Plain ! TPres ! ResJap.Pos ++
|
||||
"ことが" ++ v.s ! sp ! st ! t ! p ;
|
||||
te = \\sp,p => vpslash.s ! sp ! Plain ! TPres ! ResJap.Pos ++ "ことが" ++
|
||||
v.te ! sp ! p ;
|
||||
a_stem = \\sp => vpslash.s ! sp ! Plain ! TPres ! ResJap.Pos ++ "ことが" ++
|
||||
v.a_stem ! sp ;
|
||||
i_stem = \\sp => vpslash.s ! sp ! Plain ! TPres ! ResJap.Pos ++ "ことが" ++
|
||||
v.i_stem ! sp ;
|
||||
ba = \\sp,p => vpslash.s ! sp ! Plain ! TPres ! ResJap.Pos ++ "ことが" ++
|
||||
v.ba ! sp ! p ;
|
||||
prep = vpslash.prep ;
|
||||
obj = vpslash.obj ;
|
||||
prepositive = vpslash.prepositive ;
|
||||
v2vType = False
|
||||
} ;
|
||||
te = case v.sense of {
|
||||
Abil => vpslash.s ! Plain ! TPres ! ResJap.Pos ++ "ことが" ++ v.te ;
|
||||
Oblig => vpslash.a_stem ++ "なければ" ++ v.te ;
|
||||
Wish => vpslash.i_stem ++ "たがって" ++ v.te
|
||||
Oblig => {
|
||||
s = \\sp,st,t => table {
|
||||
Pos => vpslash.a_stem ! sp ++ "なければ" ++ v.s ! sp ! st ! t ! Neg ;
|
||||
Neg => vpslash.te ! sp ! Pos ++ "は" ++ v.s ! sp ! st ! t ! Neg
|
||||
} ;
|
||||
te = \\sp => table {
|
||||
Pos => vpslash.a_stem ! sp ++ "なければ" ++ v.te ! sp ! Pos ;
|
||||
Neg => vpslash.te ! sp ! Pos ++ "は" ++ v.te ! sp ! Pos
|
||||
} ;
|
||||
a_stem = \\sp => vpslash.a_stem ! sp ++ "なければ" ++ v.a_stem ! sp ;
|
||||
i_stem = \\sp => vpslash.a_stem ! sp ++ "なければ" ++ v.i_stem ! sp ;
|
||||
ba = \\sp => table {
|
||||
Pos => vpslash.a_stem ! sp ++ "なければ" ++ v.ba ! sp ! Pos ;
|
||||
Neg => vpslash.te ! sp ! Pos ++ "は" ++ v.ba ! sp ! Pos
|
||||
} ;
|
||||
prep = vpslash.prep ;
|
||||
obj = vpslash.obj ;
|
||||
prepositive = vpslash.prepositive ;
|
||||
v2vType = False
|
||||
} ;
|
||||
a_stem = [] ;
|
||||
i_stem = [] ;
|
||||
ba = case v.sense of {
|
||||
Abil => vpslash.s ! Plain ! TPres ! ResJap.Pos ++ "ことが" ++ v.ba ;
|
||||
Oblig => vpslash.a_stem ++ "なければ" ++ v.ba ;
|
||||
Wish => vpslash.i_stem ++ "たがって" ++ v.ba
|
||||
} ;
|
||||
prep = vpslash.prep ;
|
||||
obj = vpslash.obj ;
|
||||
prepositive = vpslash.prepositive ;
|
||||
v2vType = False ;
|
||||
compar = vpslash.compar
|
||||
} ;
|
||||
Wish => {
|
||||
s = \\sp,st,t,p => vpslash.i_stem ! sp ++ v.s ! sp ! st ! t ! p ;
|
||||
te = \\sp,p => vpslash.i_stem ! sp ++ v.te ! sp ! p ;
|
||||
a_stem = \\sp => vpslash.i_stem ! sp ++ v.a_stem ! sp ;
|
||||
i_stem = \\sp => vpslash.i_stem ! sp ++ v.i_stem ! sp ;
|
||||
ba = \\sp,p => vpslash.i_stem ! sp ++ v.ba ! sp ! p ;
|
||||
prep = vpslash.prep ;
|
||||
obj = vpslash.obj ;
|
||||
prepositive = vpslash.prepositive ;
|
||||
v2vType = False
|
||||
}
|
||||
} ;
|
||||
|
||||
SlashV2VNP v2v np vpslash = {
|
||||
s = \\st,t,p => vpslash.s ! Plain ! TPres ! ResJap.Pos ++ "ように"
|
||||
++ v2v.s ! st ! t ! p ;
|
||||
a_stem = vpslash.s ! Plain ! TPres ! ResJap.Pos ++ "ように" ++ v2v.a_stem ;
|
||||
i_stem = vpslash.s ! Plain ! TPres ! ResJap.Pos ++ "ように" ++ v2v.i_stem ;
|
||||
ba = vpslash.s ! Plain ! TPres ! ResJap.Pos ++ "ように" ++ v2v.ba ;
|
||||
s = \\sp,st,t,p => vpslash.s ! sp ! Plain ! TPres ! ResJap.Pos ++ "ように"
|
||||
++ v2v.s ! st ! t ! p ;
|
||||
a_stem = \\sp => vpslash.s ! sp ! Plain ! TPres ! ResJap.Pos ++ "ように" ++ v2v.a_stem ;
|
||||
i_stem = \\sp => vpslash.s ! sp ! Plain ! TPres ! ResJap.Pos ++ "ように" ++ v2v.i_stem ;
|
||||
ba = \\sp,p => vpslash.s ! sp ! Plain ! TPres ! ResJap.Pos ++ "ように" ++ v2v.ba ! p ;
|
||||
prep = vpslash.prep ;
|
||||
obj = \\st => np.s ! st ++ "に" ;
|
||||
te = vpslash.s ! Plain ! TPres ! ResJap.Pos ++ "ように" ++ v2v.te ;
|
||||
prepositive = vpslash.prepositive ;
|
||||
v2vType = True ;
|
||||
compar = vpslash.compar
|
||||
obj = \\st => np.s ! st ++ "に" ++ vpslash.obj ! st ;
|
||||
te = \\sp,p => vpslash.s ! sp ! Plain ! TPres ! ResJap.Pos ++ "ように" ++ v2v.te ! p ;
|
||||
prepositive = \\st => np.prepositive ! st ++ vpslash.prepositive ! st ;
|
||||
v2vType = True
|
||||
} ;
|
||||
|
||||
ReflVP vpslash = {
|
||||
verb = \\a,st,t,p => vpslash.s ! st ! t ! p ;
|
||||
a_stem = \\a,st => vpslash.a_stem ;
|
||||
i_stem = \\a,st => vpslash.i_stem ;
|
||||
ba = \\a,st => vpslash.ba ;
|
||||
verb = \\sp,a,st,t,p => vpslash.s ! sp ! st ! t ! p ;
|
||||
a_stem = \\sp,a,st => vpslash.a_stem ! sp ;
|
||||
i_stem = \\sp,a,st => vpslash.i_stem ! sp ;
|
||||
ba = \\sp,a,st,p => vpslash.ba ! sp ! p ;
|
||||
prep = vpslash.prep ;
|
||||
obj = \\st => "自分" ; -- "jibun"
|
||||
te = \\a,st => vpslash.te ;
|
||||
prepositive = vpslash.prepositive ;
|
||||
compar = vpslash.compar
|
||||
obj = \\st => vpslash.obj ! st ++ "自分" ; -- "jibun"
|
||||
te = \\sp,a,st,p => vpslash.te ! sp ! p ;
|
||||
prepositive = vpslash.prepositive
|
||||
} ;
|
||||
|
||||
UseComp comp = {
|
||||
verb = comp.verb ;
|
||||
te = comp.te ;
|
||||
a_stem = comp.a_stem ;
|
||||
i_stem = comp.i_stem ;
|
||||
ba = comp.ba ;
|
||||
verb = \\sp,a,st,t,p => comp.verb ! a ! st ! t ! p;
|
||||
te = \\sp => comp.te ;
|
||||
a_stem = \\sp,a,st => comp.a_stem ! a ! st ;
|
||||
i_stem = \\sp,a,st => comp.i_stem ! a ! st ;
|
||||
ba = \\sp => comp.ba ;
|
||||
prep = [] ;
|
||||
obj = comp.obj ;
|
||||
prepositive = comp.prepositive ;
|
||||
compar = comp.compar
|
||||
prepositive = comp.prepositive
|
||||
} ;
|
||||
|
||||
PassV2 v2 = {
|
||||
verb = \\a,st,t,p => v2.pass ! st ! t ! p ;
|
||||
te = \\a,st => v2.pass_te ;
|
||||
a_stem = \\a,st => v2.pass_a_stem ;
|
||||
i_stem = \\a,st => v2.pass_i_stem ;
|
||||
ba = \\a,st => v2.pass_ba ;
|
||||
verb = \\sp,a,st,t,p => v2.pass ! st ! t ! p ;
|
||||
te = \\sp,a,st => v2.pass_te ;
|
||||
a_stem = \\sp,a,st => v2.pass_a_stem ;
|
||||
i_stem = \\sp,a,st => v2.pass_i_stem ;
|
||||
ba = \\sp,a,st => v2.pass_ba ;
|
||||
prep = [] ;
|
||||
obj = \\st => [] ;
|
||||
prepositive = \\st => [] ;
|
||||
compar = NoCompar
|
||||
prepositive = \\st => []
|
||||
} ;
|
||||
|
||||
AdvVP vp adv = {
|
||||
@@ -311,10 +305,9 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
False => adv.s ! st ++ vp.obj ! st
|
||||
} ;
|
||||
prepositive = \\st => case adv.prepositive of {
|
||||
True => adv.s ! st ;
|
||||
False => []
|
||||
} ;
|
||||
compar = adv.compar
|
||||
True => vp.prepositive ! st ++ adv.s ! st ;
|
||||
False => vp.prepositive ! st
|
||||
}
|
||||
} ;
|
||||
|
||||
AdVVP adv vp = {
|
||||
@@ -325,8 +318,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
ba = vp.ba ;
|
||||
prep = vp.prep ;
|
||||
obj = \\st => adv.s ++ vp.obj ! st ;
|
||||
prepositive = vp.prepositive ;
|
||||
compar = NoCompar
|
||||
prepositive = vp.prepositive
|
||||
} ;
|
||||
|
||||
AdvVPSlash vpslash adv = {
|
||||
@@ -341,11 +333,10 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
False => adv.s ! st ++ vpslash.obj ! st
|
||||
} ;
|
||||
prepositive = \\st => case adv.prepositive of {
|
||||
True => adv.s ! st ;
|
||||
False => []
|
||||
True => vpslash.prepositive ! st ++ adv.s ! st ;
|
||||
False => vpslash.prepositive ! st
|
||||
} ;
|
||||
v2vType = False ;
|
||||
compar = adv.compar
|
||||
v2vType = False
|
||||
} ;
|
||||
|
||||
AdVVPSlash adv vpslash = {
|
||||
@@ -357,38 +348,35 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
prep = vpslash.prep ;
|
||||
obj = \\st => adv.s ++ vpslash.obj ! st ;
|
||||
prepositive = vpslash.prepositive ;
|
||||
v2vType = False ;
|
||||
compar = vpslash.compar
|
||||
v2vType = False
|
||||
} ;
|
||||
|
||||
CompAP ap = {
|
||||
verb = \\a,st,t,p => ap.pred ! st ! t ! p ;
|
||||
te = \\a,st => ap.te ! st ;
|
||||
a_stem = \\a,st => ap.adv ! st ;
|
||||
i_stem = \\a,st => ap.adv ! st ; -- for wishes - not correct!
|
||||
ba = \\a,st => ap.ba ! st ;
|
||||
te = \\a => ap.te ;
|
||||
a_stem = \\a,st => ap.attr ! st ++ "では" ;
|
||||
i_stem = \\a,st => ap.adv ! st ++ "なり" ;
|
||||
ba = \\a => ap.ba ;
|
||||
obj = \\st => [] ;
|
||||
prepositive = ap.prepositive ;
|
||||
compar = ap.compar
|
||||
prepositive = ap.prepositive
|
||||
} ;
|
||||
|
||||
CompNP np = {
|
||||
verb = \\a,st,t,p => mkCopula.s ! st ! t ! p ;
|
||||
te = \\a,st => "だって" ;
|
||||
ba = \\a,st => "であれば" ;
|
||||
a_stem = \\a,st => "で" ;
|
||||
i_stem = \\a,st => "で" ; -- for wishes - not correct!
|
||||
te = \\a,st => mkCopula.te ;
|
||||
ba = \\a,st => mkCopula.ba ;
|
||||
a_stem = \\a,st => "では" ;
|
||||
i_stem = \\a,st => "になり" ; -- "become" - for wishes
|
||||
obj = \\st => np.s ! st ;
|
||||
prepositive = np.prepositive ;
|
||||
compar = NoCompar
|
||||
prepositive = np.prepositive
|
||||
} ;
|
||||
|
||||
CompAdv adv = {
|
||||
verb = mkExistV.verb ;
|
||||
te = mkExistV.te ;
|
||||
ba = mkExistV.ba ;
|
||||
a_stem = mkExistV.a_stem ;
|
||||
i_stem = mkExistV.i_stem ;
|
||||
verb = mkExistV.verb ! SomeoneElse ;
|
||||
te = mkExistV.te ! SomeoneElse ;
|
||||
ba = mkExistV.ba ! SomeoneElse ;
|
||||
a_stem = mkExistV.a_stem ! SomeoneElse ;
|
||||
i_stem = mkExistV.i_stem ! SomeoneElse ;
|
||||
obj = \\st => case adv.prepositive of {
|
||||
True => [] ;
|
||||
False => adv.s ! st
|
||||
@@ -396,32 +384,28 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
prepositive = \\st => case adv.prepositive of {
|
||||
True => adv.s ! st ;
|
||||
False => []
|
||||
} ;
|
||||
compar = NoCompar
|
||||
}
|
||||
} ;
|
||||
|
||||
CompCN cn = {
|
||||
verb = \\a,st,t,p => mkCopula.s ! st ! t ! p ;
|
||||
te = \\a,st => "だって" ;
|
||||
ba = \\a,st => "であれば" ;
|
||||
a_stem = \\a,st => "で" ;
|
||||
i_stem = \\a,st => "で" ; -- for wishes - not correct!
|
||||
obj = \\st => cn.s ! (Sg|Pl) ! st ;
|
||||
prepositive = cn.prepositive ;
|
||||
compar = NoCompar
|
||||
verb = \\a => mkCopula.s ;
|
||||
te = \\a,st => mkCopula.te ;
|
||||
ba = \\a,st => mkCopula.ba ;
|
||||
a_stem = \\a,st => "では" ;
|
||||
i_stem = \\a,st => "になり" ; -- "become" - for wishes
|
||||
obj = \\st => cn.s ! Sg ! st ;
|
||||
prepositive = cn.prepositive
|
||||
} ;
|
||||
|
||||
UseCopula = {
|
||||
verb = \\a,st,t,p => mkCopula.s ! st ! t ! p ;
|
||||
te = \\a,st => "だって" ;
|
||||
ba = \\a,st => "であれば" ;
|
||||
a_stem = \\a,st => "で" ;
|
||||
i_stem = \\a,st => "で" ; -- for wishes - not correct!
|
||||
verb = \\sp,a => mkCopula.s ;
|
||||
te = \\sp,a,st => mkCopula.te ;
|
||||
ba = \\sp,a,st => mkCopula.ba ;
|
||||
a_stem = \\sp,a,st => "では" ;
|
||||
i_stem = \\sp,a,st => "なり" ; -- "become" - for wishes
|
||||
obj = \\st => [] ;
|
||||
prepositive = \\st => [] ;
|
||||
prep = [] ;
|
||||
compar = NoCompar
|
||||
prep = []
|
||||
} ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user