mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-23 09:52:55 -06:00
fixes to Ja
This commit is contained in:
@@ -11,7 +11,8 @@ flags coding = utf8 ;
|
|||||||
ba = \\st => adj.ba ;
|
ba = \\st => adj.ba ;
|
||||||
adv = \\st => adj.adv ! Pos ;
|
adv = \\st => adj.adv ! Pos ;
|
||||||
prepositive = \\st => [] ;
|
prepositive = \\st => [] ;
|
||||||
dropNaEnging = \\st => adj.dropNaEnging
|
dropNaEnging = \\st => adj.dropNaEnging ;
|
||||||
|
needSubject = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
ComparA adj np = {
|
ComparA adj np = {
|
||||||
@@ -22,6 +23,7 @@ flags coding = utf8 ;
|
|||||||
adv = \\st => np.s ! st ++ "より" ++ adj.adv ! Pos ;
|
adv = \\st => np.s ! st ++ "より" ++ adj.adv ! Pos ;
|
||||||
prepositive = np.prepositive ;
|
prepositive = np.prepositive ;
|
||||||
dropNaEnging = \\st => np.s ! st ++ "より" ++ adj.dropNaEnging ;
|
dropNaEnging = \\st => np.s ! st ++ "より" ++ adj.dropNaEnging ;
|
||||||
|
needSubject = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
ComplA2 a2 np = {
|
ComplA2 a2 np = {
|
||||||
@@ -31,7 +33,8 @@ flags coding = utf8 ;
|
|||||||
ba = \\st,p => np.s ! st ++ a2.prep ++ a2.ba ! p ;
|
ba = \\st,p => np.s ! st ++ a2.prep ++ a2.ba ! p ;
|
||||||
prepositive = np.prepositive ;
|
prepositive = np.prepositive ;
|
||||||
adv = \\st => np.s ! st ++ a2.prep ++ a2.adv ! Pos ;
|
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 = {
|
ReflA2 a2 = {
|
||||||
@@ -41,7 +44,8 @@ flags coding = utf8 ;
|
|||||||
ba = \\st,p => "自分" ++ a2.prep ++ a2.ba ! p ;
|
ba = \\st,p => "自分" ++ a2.prep ++ a2.ba ! p ;
|
||||||
adv = \\st => "自分" ++ a2.prep ++ a2.adv ! Pos ;
|
adv = \\st => "自分" ++ a2.prep ++ a2.adv ! Pos ;
|
||||||
prepositive = \\st => [] ;
|
prepositive = \\st => [] ;
|
||||||
dropNaEnging = \\st => "自分" ++ a2.prep ++ a2.dropNaEnging
|
dropNaEnging = \\st => "自分" ++ a2.prep ++ a2.dropNaEnging ;
|
||||||
|
needSubject = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
UseA2 a2 = {
|
UseA2 a2 = {
|
||||||
@@ -51,7 +55,8 @@ flags coding = utf8 ;
|
|||||||
ba = \\st => a2.ba ;
|
ba = \\st => a2.ba ;
|
||||||
adv = \\st => a2.adv ! Pos ;
|
adv = \\st => a2.adv ! Pos ;
|
||||||
prepositive = \\st => [] ;
|
prepositive = \\st => [] ;
|
||||||
dropNaEnging = \\st => a2.dropNaEnging
|
dropNaEnging = \\st => a2.dropNaEnging ;
|
||||||
|
needSubject = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
UseComparA adj = {
|
UseComparA adj = {
|
||||||
@@ -61,7 +66,8 @@ flags coding = utf8 ;
|
|||||||
ba = \\st,p => "もっと" ++ adj.ba ! p ;
|
ba = \\st,p => "もっと" ++ adj.ba ! p ;
|
||||||
adv = \\st => "もっと" ++ adj.adv ! Pos ;
|
adv = \\st => "もっと" ++ adj.adv ! Pos ;
|
||||||
prepositive = \\st => [] ;
|
prepositive = \\st => [] ;
|
||||||
dropNaEnging = \\st => "もっと" ++ adj.dropNaEnging
|
dropNaEnging = \\st => "もっと" ++ adj.dropNaEnging ;
|
||||||
|
needSubject = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
CAdvAP cadv ap np = {
|
CAdvAP cadv ap np = {
|
||||||
@@ -95,7 +101,8 @@ flags coding = utf8 ;
|
|||||||
dropNaEnging = \\st => case cadv.less of {
|
dropNaEnging = \\st => case cadv.less of {
|
||||||
True => np.s ! st ++ cadv.s ++ ap.pred ! Plain ! TPres ! Neg ;
|
True => np.s ! st ++ cadv.s ++ ap.pred ! Plain ! TPres ! Neg ;
|
||||||
False => np.s ! st ++ cadv.s ++ ap.dropNaEnging ! st
|
False => np.s ! st ++ cadv.s ++ ap.dropNaEnging ! st
|
||||||
}
|
} ;
|
||||||
|
needSubject = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
AdjOrd ord = {
|
AdjOrd ord = {
|
||||||
@@ -105,7 +112,8 @@ flags coding = utf8 ;
|
|||||||
ba = \\st => ord.ba ;
|
ba = \\st => ord.ba ;
|
||||||
adv = \\st => ord.adv ! Pos ;
|
adv = \\st => ord.adv ! Pos ;
|
||||||
prepositive = \\st => [] ;
|
prepositive = \\st => [] ;
|
||||||
dropNaEnging = \\st => ord.dropNaEnging
|
dropNaEnging = \\st => ord.dropNaEnging ;
|
||||||
|
needSubject = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
SentAP ap sc = {
|
SentAP ap sc = {
|
||||||
@@ -115,7 +123,8 @@ flags coding = utf8 ;
|
|||||||
ba = \\st,p => sc.s ! Wa ! st ++ "ことが" ++ ap.ba ! st ! p ;
|
ba = \\st,p => sc.s ! Wa ! st ++ "ことが" ++ ap.ba ! st ! p ;
|
||||||
adv = \\st => sc.s ! Wa ! st ++ "ことが" ++ ap.adv ! st ;
|
adv = \\st => sc.s ! Wa ! st ++ "ことが" ++ ap.adv ! st ;
|
||||||
prepositive = ap.prepositive ;
|
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 = {
|
AdAP ada ap = {
|
||||||
@@ -125,7 +134,8 @@ flags coding = utf8 ;
|
|||||||
ba = \\st,p => ada.s ++ ap.ba ! st ! p ;
|
ba = \\st,p => ada.s ++ ap.ba ! st ! p ;
|
||||||
adv = \\st => ada.s ++ ap.adv ! st ;
|
adv = \\st => ada.s ++ ap.adv ! st ;
|
||||||
prepositive = ap.prepositive ;
|
prepositive = ap.prepositive ;
|
||||||
dropNaEnging = \\st => ada.s ++ ap.dropNaEnging ! st
|
dropNaEnging = \\st => ada.s ++ ap.dropNaEnging ! st ;
|
||||||
|
needSubject = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
AdvAP ap adv = {
|
AdvAP ap adv = {
|
||||||
@@ -156,6 +166,7 @@ flags coding = utf8 ;
|
|||||||
dropNaEnging = \\st => case adv.prepositive of {
|
dropNaEnging = \\st => case adv.prepositive of {
|
||||||
True => ap.dropNaEnging ! st ;
|
True => ap.dropNaEnging ! st ;
|
||||||
False => adv.s ! st ++ ap.dropNaEnging ! st
|
False => adv.s ! st ++ ap.dropNaEnging ! st
|
||||||
}
|
} ;
|
||||||
|
needSubject = True
|
||||||
} ;
|
} ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,8 +18,8 @@ flags coding = utf8 ;
|
|||||||
|
|
||||||
ComparAdvAdjS cadv a s = {
|
ComparAdvAdjS cadv a s = {
|
||||||
s = \\st => case cadv.less of {
|
s = \\st => case cadv.less of {
|
||||||
True => s.subj ! Ga ! st ++ s.pred ! Plain ++ cadv.s ++ a.adv ! Neg ;
|
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
|
False => s.subj ! Ga ! st ++ s.pred ! Plain ++ "こと" ++ cadv.s ++ a.adv ! Pos
|
||||||
} ;
|
} ;
|
||||||
prepositive = False} ;
|
prepositive = False} ;
|
||||||
|
|
||||||
|
|||||||
@@ -32,15 +32,16 @@ flags coding = utf8 ;
|
|||||||
VP = ResJap.VP ; -- {verb : Speaker => Animateness => Style => TTense => Polarity => Str ;
|
VP = ResJap.VP ; -- {verb : Speaker => Animateness => Style => TTense => Polarity => Str ;
|
||||||
-- a_stem, i_stem : Speaker => Animateness => Style => Str ;
|
-- a_stem, i_stem : Speaker => Animateness => Style => Str ;
|
||||||
-- te, ba : Speaker => Animateness => Style => Polarity => 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 :
|
Comp = {verb : Animateness => Style => TTense => Polarity => Str ; a_stem, i_stem :
|
||||||
Animateness => Style => Str ; te, ba : Animateness => Style => Polarity => Str ;
|
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 ;
|
VPSlash = {s : Speaker => Style => TTense => Polarity => Str ;
|
||||||
a_stem, i_stem : Speaker => Str ; te, ba : Speaker => Polarity => Str ;
|
a_stem, i_stem : Speaker => Str ; te, ba : Speaker => Polarity => Str ;
|
||||||
prep : Str ; obj : Style => Str ; prepositive : Style => Str ; v2vType : Bool} ;
|
prep : Str ; obj : Style => Str ; prepositive : Style => Str ; v2vType : Bool} ;
|
||||||
AP = {pred : Style => TTense => Polarity => Str ; attr, adv, dropNaEnging, prepositive :
|
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 ;
|
NP = ResJap.NP ; -- {s : Style => Str ; prepositive : Style => Str ; needPart : Bool ;
|
||||||
-- changePolar : Bool ; meaning : Speaker ; anim : Animateness} ;
|
-- changePolar : Bool ; meaning : Speaker ; anim : Animateness} ;
|
||||||
CN = Noun ** {object : Style => Str ; prepositive : Style => Str ; hasAttr : Bool} ;
|
CN = Noun ** {object : Style => Str ; prepositive : Style => Str ; hasAttr : Bool} ;
|
||||||
@@ -60,18 +61,18 @@ flags coding = utf8 ;
|
|||||||
Subj = Subjunction ; -- {s : Str ; type : SubjType} ;
|
Subj = Subjunction ; -- {s : Str ; type : SubjType} ;
|
||||||
Prep = Preposition ; -- {s : Str ; null : Str} ;
|
Prep = Preposition ; -- {s : Str ; null : Str} ;
|
||||||
V = Verb ; -- {s : Style => TTense => Polarity => Str ; a_stem, i_stem :
|
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,
|
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_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,
|
V3 = Verb3 ; -- {s : Speaker => Style => TTense => Polarity => Str ; a_stem,
|
||||||
-- i_stem : Speaker => Str ; te, ba : Speaker => Polarity =>
|
-- i_stem : Speaker => Str ; te, ba : Speaker => Polarity =>
|
||||||
-- Str ; prep1, prep2 : Str} ;
|
-- Str ; prep1, prep2 : Str} ;
|
||||||
VV = ResJap.VV ; -- {s : Speaker => Style => TTense => Polarity => Str ; te,
|
VV = ResJap.VV ; -- {s : Speaker => Style => TTense => Polarity => Str ; te,
|
||||||
-- a_stem, i_stem, ba, te_neg, ba_neg : Speaker => Str ;
|
-- a_stem, i_stem, ba, te_neg, ba_neg : Speaker => Str ;
|
||||||
-- sense : ModSense} ;
|
-- sense : ModSense} ;
|
||||||
VS = Verb ** {prep : Str} ;
|
VS = Verb2 ;
|
||||||
VQ = Verb ;
|
VQ = Verb2 ;
|
||||||
VA = Verb ;
|
VA = Verb ;
|
||||||
V2V = Verb ;
|
V2V = Verb ;
|
||||||
V2S = Verb ;
|
V2S = Verb ;
|
||||||
|
|||||||
@@ -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 ;
|
ba = \\st,p => conj.null ++ ap.s1and ! st ! p ++ ap.s2ba ! st ! p ;
|
||||||
adv = \\st => conj.null ++ ap.s1and ! st ! Pos ++ ap.s2adv ! st ;
|
adv = \\st => conj.null ++ ap.s1and ! st ! Pos ++ ap.s2adv ! st ;
|
||||||
dropNaEnging = \\st => conj.null ++ ap.s1and ! st ! Pos ++ ap.s2dropNaEnging ! st ;
|
dropNaEnging = \\st => conj.null ++ ap.s1and ! st ! Pos ++ ap.s2dropNaEnging ! st ;
|
||||||
prepositive = ap.prepositive
|
prepositive = ap.prepositive ;
|
||||||
|
needSubject = True
|
||||||
} ;
|
} ;
|
||||||
Or => {
|
Or => {
|
||||||
pred = \\st,t,p => conj.null ++ ap.s1or ! st ! p ++ ap.s2pred ! st ! t ! p ;
|
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 ;
|
ba = \\st,p => conj.null ++ ap.s1or ! st ! p ++ ap.s2ba ! st ! p ;
|
||||||
adv = \\st => conj.null ++ ap.s1or ! st ! Pos ++ ap.s2adv ! st ;
|
adv = \\st => conj.null ++ ap.s1or ! st ! Pos ++ ap.s2adv ! st ;
|
||||||
dropNaEnging = \\st => conj.null ++ ap.s1or ! st ! Pos ++ ap.s2dropNaEnging ! st ;
|
dropNaEnging = \\st => conj.null ++ ap.s1or ! st ! Pos ++ ap.s2dropNaEnging ! st ;
|
||||||
prepositive = ap.prepositive
|
prepositive = ap.prepositive ;
|
||||||
|
needSubject = True
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,8 @@ flags coding = utf8 ;
|
|||||||
|
|
||||||
lin
|
lin
|
||||||
|
|
||||||
ImpersCl vp = {
|
ImpersCl vp = case vp.needSubject of {
|
||||||
|
True => {
|
||||||
s = table {
|
s = table {
|
||||||
Wa => \\st,t,p => vp.prepositive ! st ++ "これは" ++ vp.obj ! st ++
|
Wa => \\st,t,p => vp.prepositive ! st ++ "これは" ++ vp.obj ! st ++
|
||||||
vp.prep ++ vp.verb ! SomeoneElse ! Inanim ! st ! t ! p ;
|
vp.prep ++ vp.verb ! SomeoneElse ! Inanim ! st ! t ! p ;
|
||||||
@@ -32,6 +33,20 @@ flags coding = utf8 ;
|
|||||||
pred_ba = \\st,p => vp.obj ! st ++ vp.prep ++ vp.ba ! SomeoneElse ! Inanim ! st ! p ;
|
pred_ba = \\st,p => vp.obj ! st ++ vp.prep ++ vp.ba ! SomeoneElse ! Inanim ! st ! p ;
|
||||||
changePolar = False
|
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 = {
|
GenericCl vp = {
|
||||||
s = \\part,st,t,p => vp.prepositive ! st ++ "誰か" ++ vp.obj ! st ++ -- "dareka"
|
s = \\part,st,t,p => vp.prepositive ! st ++ "誰か" ++ vp.obj ! st ++ -- "dareka"
|
||||||
@@ -79,28 +94,13 @@ flags coding = utf8 ;
|
|||||||
|
|
||||||
ExistNP np = case np.needPart of {
|
ExistNP np = case np.needPart of {
|
||||||
True => {
|
True => {
|
||||||
s = table {
|
s = \\part,st,t,p => np.prepositive ! st ++ np.s ! st ++ "が" ++
|
||||||
Wa => \\st,t,p => np.prepositive ! st ++ np.s ! st ++ "は" ++
|
|
||||||
mkExistV.verb ! SomeoneElse ! np.anim ! st ! t ! p ;
|
mkExistV.verb ! SomeoneElse ! np.anim ! st ! t ! p ;
|
||||||
Ga => \\st,t,p => np.prepositive ! st ++ np.s ! st ++ "が" ++
|
te = \\part,st,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 ;
|
mkExistV.te ! SomeoneElse ! np.anim ! st ! p ;
|
||||||
Ga => \\st,p => np.prepositive ! st ++ np.s ! st ++ "が" ++
|
ba = \\part,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 ;
|
mkExistV.ba ! SomeoneElse ! np.anim ! st ! p ;
|
||||||
Ga => \\st,p => np.prepositive ! st ++ np.s ! st ++ "が" ++
|
subj = \\part,st => 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 ! SomeoneElse ! np.anim ! st ! t ! p ;
|
pred = \\st,t,p => mkExistV.verb ! SomeoneElse ! np.anim ! st ! t ! p ;
|
||||||
pred_te = \\st,p => mkExistV.te ! SomeoneElse ! np.anim ! st ! p ;
|
pred_te = \\st,p => mkExistV.te ! SomeoneElse ! np.anim ! st ! p ;
|
||||||
pred_ba = \\st,p => mkExistV.ba ! 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 ;
|
ba = \\sp,a,st,p => vp.te ! sp ! a ! st ! Pos ++ mkExistV.ba ! SomeoneElse ! Anim ! st ! p ;
|
||||||
prep = vp.prep ;
|
prep = vp.prep ;
|
||||||
obj = vp.obj ;
|
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 ++
|
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 => case cn.counterReplace of {
|
||||||
True => cn.object ! st ++ det.quant ! 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 {
|
False => case <det.tenPlus, cn.counterTsu> of {
|
||||||
<True, True> => cn.object ! st ++ det.quant ! st ++ cn.s ! det.n ! st ++
|
<True, True> => cn.object ! st ++ det.quant ! st ++ det.num ++ det.postpositive ++
|
||||||
"の" ++ det.num ++ det.postpositive ;
|
"の" ++ cn.s ! det.n ! st ;
|
||||||
_ => cn.object ! st ++ det.quant ! st ++ cn.s ! det.n ! st ++ "の" ++
|
_ => cn.object ! st ++ det.quant ! st ++ det.num ++ cn.counter ++ det.postpositive
|
||||||
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
|
False => cn.object ! st ++ det.quant ! st ++ det.num ++ cn.s ! det.n ! st
|
||||||
@@ -327,7 +327,7 @@ flags coding = utf8 ;
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
ApposCN cn np = {
|
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 ;
|
object = cn.object ;
|
||||||
prepositive = cn.prepositive ;
|
prepositive = cn.prepositive ;
|
||||||
hasAttr = cn.hasAttr ;
|
hasAttr = cn.hasAttr ;
|
||||||
|
|||||||
@@ -28,7 +28,8 @@ oper
|
|||||||
VP : Type = {verb : Speaker => Animateness => Style => TTense => Polarity => Str ;
|
VP : Type = {verb : Speaker => Animateness => Style => TTense => Polarity => Str ;
|
||||||
a_stem, i_stem : Speaker => Animateness => Style => Str ;
|
a_stem, i_stem : Speaker => Animateness => Style => Str ;
|
||||||
te, ba : Speaker => Animateness => Style => Polarity => 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 ;
|
Noun : Type = {s : Number => Style => Str ; anim : Animateness ;
|
||||||
counter : Str ; counterReplace : Bool ; counterTsu : Bool} ;
|
counter : Str ; counterReplace : Bool ; counterTsu : Bool} ;
|
||||||
@@ -45,7 +46,7 @@ oper
|
|||||||
tenPlus : Bool} ;
|
tenPlus : Bool} ;
|
||||||
Preposition : Type = {s : Str ; null : Str} ;
|
Preposition : Type = {s : Str ; null : Str} ;
|
||||||
Verb : Type = {s : Style => TTense => Polarity => Str ; a_stem, i_stem : 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,
|
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} ;
|
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 :
|
Verb3 : Type = {s : Speaker => Style => TTense => Polarity => Str ; a_stem, i_stem :
|
||||||
@@ -203,7 +204,8 @@ oper
|
|||||||
ba = table {
|
ba = table {
|
||||||
Pos => mkBaForm yomu gr ;
|
Pos => mkBaForm yomu gr ;
|
||||||
Neg => yoma + "なければ"
|
Neg => yoma + "なければ"
|
||||||
}
|
} ;
|
||||||
|
needSubject = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkVerb2 : Str -> Str -> VerbGroup -> Verb2 =
|
mkVerb2 : Str -> Str -> VerbGroup -> Verb2 =
|
||||||
@@ -318,7 +320,8 @@ oper
|
|||||||
Suru => Predef.tk 2 yomu + "されなければ" ;
|
Suru => Predef.tk 2 yomu + "されなければ" ;
|
||||||
Kuru => "来られなければ"
|
Kuru => "来られなければ"
|
||||||
}
|
}
|
||||||
}
|
} ;
|
||||||
|
needSubject = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkVerb3 : Str -> Str -> Str -> VerbGroup -> Verb3 =
|
mkVerb3 : Str -> Str -> Str -> VerbGroup -> Verb3 =
|
||||||
@@ -420,7 +423,8 @@ oper
|
|||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
prep = [] ;
|
prep = [] ;
|
||||||
prepositive, obj = \\st => []
|
prepositive, obj = \\st => [] ;
|
||||||
|
needSubject = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkWant : VV = {
|
mkWant : VV = {
|
||||||
@@ -670,7 +674,8 @@ oper
|
|||||||
ba = table {
|
ba = table {
|
||||||
Pos => "雨が降れば" ;
|
Pos => "雨が降れば" ;
|
||||||
Neg => "雨が降らなければ"
|
Neg => "雨が降らなければ"
|
||||||
}
|
} ;
|
||||||
|
needSubject = False
|
||||||
} ;
|
} ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -171,7 +171,7 @@ flags coding = utf8 ;
|
|||||||
} ;
|
} ;
|
||||||
Plain => table {
|
Plain => table {
|
||||||
Pos => vp.prepositive ! Plain ++ vp.obj ! Plain ++ vp.prep ++
|
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 ++
|
Neg => vp.prepositive ! Plain ++ vp.obj ! Plain ++ vp.prep ++
|
||||||
vp.verb ! SomeoneElse ! Anim ! Plain ! TPres ! Pos ++ "な"
|
vp.verb ! SomeoneElse ! Anim ! Plain ! TPres ! Pos ++ "な"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,9 +6,9 @@ lin
|
|||||||
|
|
||||||
TEmpty = {s = ""} ;
|
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 ;
|
ba = \\sp,a,st => v.ba ;
|
||||||
prep = [] ;
|
prep = [] ;
|
||||||
obj = \\st => [] ;
|
obj = \\st => [] ;
|
||||||
prepositive = \\st => []
|
prepositive = \\st => [] ;
|
||||||
|
needSubject = v.needSubject
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
ComplVV v vp = case v.sense of {
|
ComplVV v vp = case v.sense of {
|
||||||
@@ -29,7 +30,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
|||||||
v.ba ! sp ! p ;
|
v.ba ! sp ! p ;
|
||||||
prep = vp.prep ;
|
prep = vp.prep ;
|
||||||
obj = \\st => vp.obj ! st ;
|
obj = \\st => vp.obj ! st ;
|
||||||
prepositive = vp.prepositive
|
prepositive = vp.prepositive ;
|
||||||
|
needSubject = True
|
||||||
} ;
|
} ;
|
||||||
Oblig => {
|
Oblig => {
|
||||||
verb = \\sp,a,st,t => table {
|
verb = \\sp,a,st,t => table {
|
||||||
@@ -48,7 +50,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
|||||||
} ;
|
} ;
|
||||||
prep = vp.prep ;
|
prep = vp.prep ;
|
||||||
obj = \\st => vp.obj ! st ;
|
obj = \\st => vp.obj ! st ;
|
||||||
prepositive = vp.prepositive
|
prepositive = vp.prepositive ;
|
||||||
|
needSubject = True
|
||||||
} ;
|
} ;
|
||||||
Wish => {
|
Wish => {
|
||||||
verb = \\sp,a,st,t,p => vp.i_stem ! sp ! a ! st ++ v.s ! sp ! st ! t ! p ;
|
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 ;
|
ba = \\sp,a,st,p => vp.i_stem ! sp ! a ! st ++ v.ba ! sp ! p ;
|
||||||
prep = vp.prep ;
|
prep = vp.prep ;
|
||||||
obj = \\st => vp.obj ! st ;
|
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 ;
|
ba = \\sp,a,st => vs.ba ;
|
||||||
prep = vs.prep ;
|
prep = vs.prep ;
|
||||||
obj = \\st => sent.subj ! Ga ! st ++ sent.pred ! Plain ;
|
obj = \\st => sent.subj ! Ga ! st ++ sent.pred ! Plain ;
|
||||||
prepositive = \\st => []
|
prepositive = \\st => [] ;
|
||||||
|
needSubject = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
ComplVQ vq qs = {
|
ComplVQ vq qs = {
|
||||||
@@ -81,7 +86,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
|||||||
ba = \\sp,a,st => vq.ba ;
|
ba = \\sp,a,st => vq.ba ;
|
||||||
prep = "" ;
|
prep = "" ;
|
||||||
obj = \\st => qs.s_plain_pred ! Ga ! st ;
|
obj = \\st => qs.s_plain_pred ! Ga ! st ;
|
||||||
prepositive = \\st => []
|
prepositive = \\st => [] ;
|
||||||
|
needSubject = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
ComplVA va ap = {
|
ComplVA va ap = {
|
||||||
@@ -92,7 +98,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
|||||||
ba = \\sp,a,st => va.ba ;
|
ba = \\sp,a,st => va.ba ;
|
||||||
prep = [] ;
|
prep = [] ;
|
||||||
obj = \\st => ap.adv ! st ;
|
obj = \\st => ap.adv ! st ;
|
||||||
prepositive = ap.prepositive
|
prepositive = ap.prepositive ;
|
||||||
|
needSubject = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
SlashV2a v2 = {
|
SlashV2a v2 = {
|
||||||
@@ -194,7 +201,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
|||||||
False => vpslash.obj ! st ++ np.s ! st
|
False => vpslash.obj ! st ++ np.s ! st
|
||||||
} ;
|
} ;
|
||||||
te = \\sp,a,st,p => vpslash.te ! sp ! p ;
|
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 {
|
SlashVV v vpslash = case v.sense of {
|
||||||
@@ -268,7 +276,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
|||||||
prep = vpslash.prep ;
|
prep = vpslash.prep ;
|
||||||
obj = \\st => vpslash.obj ! st ++ "自分" ; -- "jibun"
|
obj = \\st => vpslash.obj ! st ++ "自分" ; -- "jibun"
|
||||||
te = \\sp,a,st,p => vpslash.te ! sp ! p ;
|
te = \\sp,a,st,p => vpslash.te ! sp ! p ;
|
||||||
prepositive = vpslash.prepositive
|
prepositive = vpslash.prepositive ;
|
||||||
|
needSubject = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
UseComp comp = {
|
UseComp comp = {
|
||||||
@@ -279,7 +288,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
|||||||
ba = \\sp => comp.ba ;
|
ba = \\sp => comp.ba ;
|
||||||
prep = [] ;
|
prep = [] ;
|
||||||
obj = comp.obj ;
|
obj = comp.obj ;
|
||||||
prepositive = comp.prepositive
|
prepositive = comp.prepositive ;
|
||||||
|
needSubject = comp.needSubject
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
PassV2 v2 = {
|
PassV2 v2 = {
|
||||||
@@ -290,7 +300,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
|||||||
ba = \\sp,a,st => v2.pass_ba ;
|
ba = \\sp,a,st => v2.pass_ba ;
|
||||||
prep = [] ;
|
prep = [] ;
|
||||||
obj = \\st => [] ;
|
obj = \\st => [] ;
|
||||||
prepositive = \\st => []
|
prepositive = \\st => [] ;
|
||||||
|
needSubject = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
AdvVP vp adv = {
|
AdvVP vp adv = {
|
||||||
@@ -307,7 +318,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
|||||||
prepositive = \\st => case adv.prepositive of {
|
prepositive = \\st => case adv.prepositive of {
|
||||||
True => vp.prepositive ! st ++ adv.s ! st ;
|
True => vp.prepositive ! st ++ adv.s ! st ;
|
||||||
False => vp.prepositive ! st
|
False => vp.prepositive ! st
|
||||||
}
|
} ;
|
||||||
|
needSubject = vp.needSubject
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
AdVVP adv vp = {
|
AdVVP adv vp = {
|
||||||
@@ -318,7 +330,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
|||||||
ba = vp.ba ;
|
ba = vp.ba ;
|
||||||
prep = vp.prep ;
|
prep = vp.prep ;
|
||||||
obj = \\st => adv.s ++ vp.obj ! st ;
|
obj = \\st => adv.s ++ vp.obj ! st ;
|
||||||
prepositive = vp.prepositive
|
prepositive = vp.prepositive ;
|
||||||
|
needSubject = vp.needSubject
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
AdvVPSlash vpslash adv = {
|
AdvVPSlash vpslash adv = {
|
||||||
@@ -358,7 +371,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
|||||||
i_stem = \\a,st => ap.adv ! st ++ "なり" ;
|
i_stem = \\a,st => ap.adv ! st ++ "なり" ;
|
||||||
ba = \\a => ap.ba ;
|
ba = \\a => ap.ba ;
|
||||||
obj = \\st => [] ;
|
obj = \\st => [] ;
|
||||||
prepositive = ap.prepositive
|
prepositive = ap.prepositive ;
|
||||||
|
needSubject = ap.needSubject
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
CompNP np = {
|
CompNP np = {
|
||||||
@@ -368,7 +382,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
|||||||
a_stem = \\a,st => "では" ;
|
a_stem = \\a,st => "では" ;
|
||||||
i_stem = \\a,st => "になり" ; -- "become" - for wishes
|
i_stem = \\a,st => "になり" ; -- "become" - for wishes
|
||||||
obj = \\st => np.s ! st ;
|
obj = \\st => np.s ! st ;
|
||||||
prepositive = np.prepositive
|
prepositive = np.prepositive ;
|
||||||
|
needSubject = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
CompAdv adv = {
|
CompAdv adv = {
|
||||||
@@ -384,7 +399,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
|||||||
prepositive = \\st => case adv.prepositive of {
|
prepositive = \\st => case adv.prepositive of {
|
||||||
True => adv.s ! st ;
|
True => adv.s ! st ;
|
||||||
False => []
|
False => []
|
||||||
}
|
} ;
|
||||||
|
needSubject = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
CompCN cn = {
|
CompCN cn = {
|
||||||
@@ -394,7 +410,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
|||||||
a_stem = \\a,st => "では" ;
|
a_stem = \\a,st => "では" ;
|
||||||
i_stem = \\a,st => "になり" ; -- "become" - for wishes
|
i_stem = \\a,st => "になり" ; -- "become" - for wishes
|
||||||
obj = \\st => cn.s ! Sg ! st ;
|
obj = \\st => cn.s ! Sg ! st ;
|
||||||
prepositive = cn.prepositive
|
prepositive = cn.prepositive ;
|
||||||
|
needSubject = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
UseCopula = {
|
UseCopula = {
|
||||||
@@ -405,7 +422,8 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
|||||||
i_stem = \\sp,a,st => "なり" ; -- "become" - for wishes
|
i_stem = \\sp,a,st => "なり" ; -- "become" - for wishes
|
||||||
obj = \\st => [] ;
|
obj = \\st => [] ;
|
||||||
prepositive = \\st => [] ;
|
prepositive = \\st => [] ;
|
||||||
prep = []
|
prep = [] ;
|
||||||
|
needSubject = True
|
||||||
} ;
|
} ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user