forked from GitHub/gf-core
fixes to Ja
This commit is contained in:
@@ -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
|
||||
} ;
|
||||
}
|
||||
|
||||
@@ -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} ;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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} ;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
} ;
|
||||
|
||||
|
||||
@@ -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 ++
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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} ;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
} ;
|
||||
}
|
||||
|
||||
|
||||
@@ -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 ++ "な"
|
||||
}
|
||||
|
||||
@@ -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} ;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
} ;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user