1
0
forked from GitHub/gf-core

fixes to Ja

This commit is contained in:
aarne
2012-06-01 13:43:24 +00:00
parent c1dc5b7355
commit 0ea5455e24
11 changed files with 146 additions and 108 deletions

View File

@@ -11,7 +11,8 @@ flags coding = utf8 ;
ba = \\st => adj.ba ;
adv = \\st => adj.adv ! Pos ;
prepositive = \\st => [] ;
dropNaEnging = \\st => adj.dropNaEnging
dropNaEnging = \\st => adj.dropNaEnging ;
needSubject = True
} ;
ComparA adj np = {
@@ -22,6 +23,7 @@ flags coding = utf8 ;
adv = \\st => np.s ! st ++ "より" ++ adj.adv ! Pos ;
prepositive = np.prepositive ;
dropNaEnging = \\st => np.s ! st ++ "より" ++ adj.dropNaEnging ;
needSubject = True
} ;
ComplA2 a2 np = {
@@ -31,7 +33,8 @@ flags coding = utf8 ;
ba = \\st,p => np.s ! st ++ a2.prep ++ a2.ba ! p ;
prepositive = np.prepositive ;
adv = \\st => np.s ! st ++ a2.prep ++ a2.adv ! Pos ;
dropNaEnging = \\st => np.s ! st ++ a2.prep ++ a2.dropNaEnging
dropNaEnging = \\st => np.s ! st ++ a2.prep ++ a2.dropNaEnging ;
needSubject = True
} ;
ReflA2 a2 = {
@@ -41,7 +44,8 @@ flags coding = utf8 ;
ba = \\st,p => "自分" ++ a2.prep ++ a2.ba ! p ;
adv = \\st => "自分" ++ a2.prep ++ a2.adv ! Pos ;
prepositive = \\st => [] ;
dropNaEnging = \\st => "自分" ++ a2.prep ++ a2.dropNaEnging
dropNaEnging = \\st => "自分" ++ a2.prep ++ a2.dropNaEnging ;
needSubject = True
} ;
UseA2 a2 = {
@@ -51,7 +55,8 @@ flags coding = utf8 ;
ba = \\st => a2.ba ;
adv = \\st => a2.adv ! Pos ;
prepositive = \\st => [] ;
dropNaEnging = \\st => a2.dropNaEnging
dropNaEnging = \\st => a2.dropNaEnging ;
needSubject = True
} ;
UseComparA adj = {
@@ -61,7 +66,8 @@ flags coding = utf8 ;
ba = \\st,p => "もっと" ++ adj.ba ! p ;
adv = \\st => "もっと" ++ adj.adv ! Pos ;
prepositive = \\st => [] ;
dropNaEnging = \\st => "もっと" ++ adj.dropNaEnging
dropNaEnging = \\st => "もっと" ++ adj.dropNaEnging ;
needSubject = True
} ;
CAdvAP cadv ap np = {
@@ -95,7 +101,8 @@ flags coding = utf8 ;
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
}
} ;
needSubject = True
} ;
AdjOrd ord = {
@@ -105,7 +112,8 @@ flags coding = utf8 ;
ba = \\st => ord.ba ;
adv = \\st => ord.adv ! Pos ;
prepositive = \\st => [] ;
dropNaEnging = \\st => ord.dropNaEnging
dropNaEnging = \\st => ord.dropNaEnging ;
needSubject = True
} ;
SentAP ap sc = {
@@ -115,7 +123,8 @@ flags coding = utf8 ;
ba = \\st,p => sc.s ! Wa ! st ++ "ことが" ++ ap.ba ! st ! p ;
adv = \\st => sc.s ! Wa ! st ++ "ことが" ++ ap.adv ! st ;
prepositive = ap.prepositive ;
dropNaEnging = \\st => sc.s ! Wa ! st ++ "ことが" ++ ap.dropNaEnging ! st
dropNaEnging = \\st => sc.s ! Wa ! st ++ "ことが" ++ ap.dropNaEnging ! st ;
needSubject = False
} ;
AdAP ada ap = {
@@ -125,7 +134,8 @@ flags coding = utf8 ;
ba = \\st,p => ada.s ++ ap.ba ! st ! p ;
adv = \\st => ada.s ++ ap.adv ! st ;
prepositive = ap.prepositive ;
dropNaEnging = \\st => ada.s ++ ap.dropNaEnging ! st
dropNaEnging = \\st => ada.s ++ ap.dropNaEnging ! st ;
needSubject = True
} ;
AdvAP ap adv = {
@@ -156,6 +166,7 @@ flags coding = utf8 ;
dropNaEnging = \\st => case adv.prepositive of {
True => ap.dropNaEnging ! st ;
False => adv.s ! st ++ ap.dropNaEnging ! st
}
} ;
needSubject = True
} ;
}

View File

@@ -18,8 +18,8 @@ flags coding = utf8 ;
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
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} ;
@@ -38,4 +38,4 @@ flags coding = utf8 ;
} ;
AdnCAdv cadv = {s = cadv.s_adn ; postposition = True} ;
}
}

View File

@@ -32,15 +32,16 @@ flags coding = utf8 ;
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} ;
-- prep : Str ; obj : Style => Str ; prepositive : Style => Str ;
-- needSubject : Bool} ;
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} ;
obj : Style => Str ; prepositive : Style => Str ; needSubject : Bool} ;
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} ;
Style => Str ; te, ba : Style => Polarity => Str ; needSubject : Bool} ;
NP = ResJap.NP ; -- {s : Style => Str ; prepositive : Style => Str ; needPart : Bool ;
-- changePolar : Bool ; meaning : Speaker ; anim : Animateness} ;
CN = Noun ** {object : Style => Str ; prepositive : Style => Str ; hasAttr : Bool} ;
@@ -60,18 +61,18 @@ flags coding = utf8 ;
Subj = Subjunction ; -- {s : Str ; type : SubjType} ;
Prep = Preposition ; -- {s : Str ; null : Str} ;
V = Verb ; -- {s : Style => TTense => Polarity => Str ; a_stem, i_stem :
-- Str ; te, ba : Polarity => Str}
-- Str ; te, ba : Polarity => Str ; needSubject : Bool}
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} ;
-- pass_ba : Polarity => Str ; needSubject : Bool} ;
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 ;
VS = Verb2 ;
VQ = Verb2 ;
VA = Verb ;
V2V = Verb ;
V2S = Verb ;
@@ -86,4 +87,4 @@ flags coding = utf8 ;
N3 = Noun ** {prep1 : Str; prep2 : Str} ;
PN = PropNoun ; -- {s : Style => Str ; anim : Animateness} ;
}
}

View File

@@ -54,7 +54,8 @@ concrete ConjunctionJap of Conjunction = CatJap ** open ResJap, Prelude in {
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
prepositive = ap.prepositive ;
needSubject = True
} ;
Or => {
pred = \\st,t,p => conj.null ++ ap.s1or ! st ! p ++ ap.s2pred ! st ! t ! p ;
@@ -63,7 +64,8 @@ concrete ConjunctionJap of Conjunction = CatJap ** open ResJap, Prelude in {
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
prepositive = ap.prepositive ;
needSubject = True
}
} ;

View File

@@ -4,33 +4,48 @@ flags coding = utf8 ;
lin
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
ImpersCl vp = case vp.needSubject of {
True => {
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
} ;
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
} ;
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
} ;
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
} ;
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
False => {
s = \\part,st,t,p => vp.prepositive ! st ++ vp.obj ! st ++ vp.prep ++
vp.verb ! SomeoneElse ! Inanim ! st ! t ! p ;
te = \\part,st,p => vp.prepositive ! st ++ vp.obj ! st ++ vp.prep ++
vp.te ! SomeoneElse ! Inanim ! st ! p ;
ba = \\part,st,p => vp.prepositive ! st ++ vp.obj ! st ++ vp.prep ++
vp.ba ! SomeoneElse ! Inanim ! st ! p ;
subj = \\part,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 = {
@@ -79,28 +94,13 @@ flags coding = utf8 ;
ExistNP np = case np.needPart of {
True => {
s = table {
Wa => \\st,t,p => np.prepositive ! st ++ np.s ! st ++ "は" ++
mkExistV.verb ! SomeoneElse ! np.anim ! st ! t ! p ;
Ga => \\st,t,p => np.prepositive ! st ++ np.s ! st ++ "が" ++
mkExistV.verb ! SomeoneElse ! np.anim ! st ! t ! p
} ;
te = table {
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,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 ++ "が"
} ;
s = \\part,st,t,p => np.prepositive ! st ++ np.s ! 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 ! 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 ;
@@ -143,7 +143,8 @@ flags coding = utf8 ;
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
prepositive = vp.prepositive ;
needSubject = vp.needSubject
} ;
ImpPl1 vp = {s = \\part,st => vp.prepositive ! st ++ vp.obj ! st ++ vp.prep ++

View File

@@ -9,10 +9,10 @@ flags coding = utf8 ;
True => case cn.counterReplace of {
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
<True, True> => cn.object ! st ++ det.quant ! st ++ det.num ++ det.postpositive ++
"の" ++ cn.s ! det.n ! st ;
_ => cn.object ! st ++ det.quant ! st ++ det.num ++ cn.counter ++ det.postpositive
++ "の" ++ cn.s ! det.n ! st
}
} ;
False => cn.object ! st ++ det.quant ! st ++ det.num ++ cn.s ! det.n ! st
@@ -327,7 +327,7 @@ flags coding = utf8 ;
} ;
ApposCN cn np = {
s = \\n,st => cn.s ! n ! st ++ np.s ! st ;
s = \\n,st => np.s ! st ++ cn.s ! n ! st ;
object = cn.object ;
prepositive = cn.prepositive ;
hasAttr = cn.hasAttr ;

View File

@@ -49,4 +49,4 @@ flags coding = utf8 ;
IdRP = {s = \\st => [] ; null = True} ;
FunRP prep np rp = {s = \\st => np.prepositive ! st ++ np.s ! st ; null = False} ;
}
}

View File

@@ -28,7 +28,8 @@ oper
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} ;
prep : Str ; obj : Style => Str ; prepositive : Style => Str ;
needSubject : Bool} ;
Noun : Type = {s : Number => Style => Str ; anim : Animateness ;
counter : Str ; counterReplace : Bool ; counterTsu : Bool} ;
@@ -45,7 +46,7 @@ oper
tenPlus : Bool} ;
Preposition : Type = {s : Str ; null : Str} ;
Verb : Type = {s : Style => TTense => Polarity => Str ; a_stem, i_stem : Str ;
te, ba : Polarity => Str} ;
te, ba : Polarity => Str ; needSubject : Bool} ;
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 :
@@ -203,7 +204,8 @@ oper
ba = table {
Pos => mkBaForm yomu gr ;
Neg => yoma + "なければ"
}
} ;
needSubject = True
} ;
mkVerb2 : Str -> Str -> VerbGroup -> Verb2 =
@@ -318,7 +320,8 @@ oper
Suru => Predef.tk 2 yomu + "されなければ" ;
Kuru => "来られなければ"
}
}
} ;
needSubject = True
} ;
mkVerb3 : Str -> Str -> Str -> VerbGroup -> Verb3 =
@@ -420,7 +423,8 @@ oper
}
} ;
prep = [] ;
prepositive, obj = \\st => []
prepositive, obj = \\st => [] ;
needSubject = True
} ;
mkWant : VV = {
@@ -670,7 +674,8 @@ oper
ba = table {
Pos => "雨が降れば" ;
Neg => "雨が降らなければ"
}
} ;
needSubject = False
} ;
}

View File

@@ -58,7 +58,7 @@ flags coding = utf8 ;
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
}
}
} ;
PredSCVP sc vp = case sc.isVP of {
@@ -171,7 +171,7 @@ flags coding = utf8 ;
} ;
Plain => table {
Pos => vp.prepositive ! Plain ++ vp.obj ! Plain ++ vp.prep ++
vp.i_stem ! SomeoneElse ! Anim ! Plain ++ "nasai" ;
vp.i_stem ! SomeoneElse ! Anim ! Plain ++ "なさい" ;
Neg => vp.prepositive ! Plain ++ vp.obj ! Plain ++ vp.prep ++
vp.verb ! SomeoneElse ! Anim ! Plain ! TPres ! Pos ++ "な"
}

View File

@@ -6,9 +6,9 @@ lin
TEmpty = {s = ""} ;
TFullStop phr txt = {s = phr.s ++ "." ++ txt.s} ;
TFullStop phr txt = {s = phr.s ++ "" ++ txt.s} ;
TQuestMark phr txt = {s = phr.s ++ "?" ++ txt.s} ;
TQuestMark phr txt = {s = phr.s ++ "" ++ txt.s} ;
TExclMark phr txt = {s = phr.s ++ "!" ++ txt.s} ;
}
TExclMark phr txt = {s = phr.s ++ "" ++ txt.s} ;
}

View File

@@ -12,7 +12,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
ba = \\sp,a,st => v.ba ;
prep = [] ;
obj = \\st => [] ;
prepositive = \\st => []
prepositive = \\st => [] ;
needSubject = v.needSubject
} ;
ComplVV v vp = case v.sense of {
@@ -29,7 +30,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
v.ba ! sp ! p ;
prep = vp.prep ;
obj = \\st => vp.obj ! st ;
prepositive = vp.prepositive
prepositive = vp.prepositive ;
needSubject = True
} ;
Oblig => {
verb = \\sp,a,st,t => table {
@@ -48,7 +50,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
} ;
prep = vp.prep ;
obj = \\st => vp.obj ! st ;
prepositive = vp.prepositive
prepositive = vp.prepositive ;
needSubject = True
} ;
Wish => {
verb = \\sp,a,st,t,p => vp.i_stem ! sp ! a ! st ++ v.s ! sp ! st ! t ! p ;
@@ -58,7 +61,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
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
prepositive = vp.prepositive ;
needSubject = True
}
} ;
@@ -70,7 +74,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
ba = \\sp,a,st => vs.ba ;
prep = vs.prep ;
obj = \\st => sent.subj ! Ga ! st ++ sent.pred ! Plain ;
prepositive = \\st => []
prepositive = \\st => [] ;
needSubject = True
} ;
ComplVQ vq qs = {
@@ -81,7 +86,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
ba = \\sp,a,st => vq.ba ;
prep = "" ;
obj = \\st => qs.s_plain_pred ! Ga ! st ;
prepositive = \\st => []
prepositive = \\st => [] ;
needSubject = True
} ;
ComplVA va ap = {
@@ -92,7 +98,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
ba = \\sp,a,st => va.ba ;
prep = [] ;
obj = \\st => ap.adv ! st ;
prepositive = ap.prepositive
prepositive = ap.prepositive ;
needSubject = True
} ;
SlashV2a v2 = {
@@ -194,7 +201,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
False => vpslash.obj ! st ++ np.s ! st
} ;
te = \\sp,a,st,p => vpslash.te ! sp ! p ;
prepositive = \\st => np.prepositive ! st ++ vpslash.prepositive ! st
prepositive = \\st => np.prepositive ! st ++ vpslash.prepositive ! st ;
needSubject = True
} ;
SlashVV v vpslash = case v.sense of {
@@ -268,7 +276,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
prep = vpslash.prep ;
obj = \\st => vpslash.obj ! st ++ "自分" ; -- "jibun"
te = \\sp,a,st,p => vpslash.te ! sp ! p ;
prepositive = vpslash.prepositive
prepositive = vpslash.prepositive ;
needSubject = True
} ;
UseComp comp = {
@@ -279,7 +288,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
ba = \\sp => comp.ba ;
prep = [] ;
obj = comp.obj ;
prepositive = comp.prepositive
prepositive = comp.prepositive ;
needSubject = comp.needSubject
} ;
PassV2 v2 = {
@@ -290,7 +300,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
ba = \\sp,a,st => v2.pass_ba ;
prep = [] ;
obj = \\st => [] ;
prepositive = \\st => []
prepositive = \\st => [] ;
needSubject = True
} ;
AdvVP vp adv = {
@@ -307,7 +318,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
prepositive = \\st => case adv.prepositive of {
True => vp.prepositive ! st ++ adv.s ! st ;
False => vp.prepositive ! st
}
} ;
needSubject = vp.needSubject
} ;
AdVVP adv vp = {
@@ -318,7 +330,8 @@ 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
prepositive = vp.prepositive ;
needSubject = vp.needSubject
} ;
AdvVPSlash vpslash adv = {
@@ -358,7 +371,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
i_stem = \\a,st => ap.adv ! st ++ "なり" ;
ba = \\a => ap.ba ;
obj = \\st => [] ;
prepositive = ap.prepositive
prepositive = ap.prepositive ;
needSubject = ap.needSubject
} ;
CompNP np = {
@@ -368,7 +382,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
a_stem = \\a,st => "では" ;
i_stem = \\a,st => "になり" ; -- "become" - for wishes
obj = \\st => np.s ! st ;
prepositive = np.prepositive
prepositive = np.prepositive ;
needSubject = True
} ;
CompAdv adv = {
@@ -384,7 +399,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
prepositive = \\st => case adv.prepositive of {
True => adv.s ! st ;
False => []
}
} ;
needSubject = True
} ;
CompCN cn = {
@@ -394,7 +410,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
a_stem = \\a,st => "では" ;
i_stem = \\a,st => "になり" ; -- "become" - for wishes
obj = \\st => cn.s ! Sg ! st ;
prepositive = cn.prepositive
prepositive = cn.prepositive ;
needSubject = True
} ;
UseCopula = {
@@ -405,7 +422,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
i_stem = \\sp,a,st => "なり" ; -- "become" - for wishes
obj = \\st => [] ;
prepositive = \\st => [] ;
prep = []
prep = [] ;
needSubject = True
} ;
}