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

View File

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