Files
gf-core/lib/src/japanese/SentenceJpn.gf
lizazim 2c371f5f33 JPN
2012-06-10 21:38:10 +00:00

435 lines
21 KiB
Plaintext

concrete SentenceJpn of Sentence = CatJpn
** open ResJpn, ParadigmsJpn, Prelude in {
flags coding = utf8 ;
lin
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.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
} ;
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 = 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.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
} ;
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
} ;
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
}
} ;
PredSCVP sc vp = case sc.isVP of {
True => {
s = table {
Wa => \\st,t,p => sc.s ! Wa ! st ++ "ことは" ++ vp.obj ! st ++ vp.prep ++
vp.verb ! SomeoneElse ! Inanim ! st ! t ! p ;
Ga => \\st,t,p => sc.s ! Ga ! st ++ "ことが" ++ vp.obj ! st ++ vp.prep ++
vp.verb ! SomeoneElse ! Inanim ! st ! t ! p
} ;
te = table {
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,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 ! 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 => 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.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 ! 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,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 ;
pred_ba = clslash.pred_ba ;
changePolar = clslash.changePolar
} ;
SlashPrep cl prep = {
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.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,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,p => sslash.s ! st ++ vs.prep ++ vs.te ! p ;
pred_ba = \\st,p => sslash.s ! st ++ vs.prep ++ vs.ba ! p ;
changePolar = np.changePolar
} ;
ImpVP vp = {
s = table {
Resp => table {
Pos => vp.prepositive ! Resp ++ vp.obj ! Resp ++ vp.prep ++
vp.te ! SomeoneElse ! Anim ! Resp ! Pos ;
Neg => vp.prepositive ! Resp ++ vp.obj ! Resp ++ vp.prep ++
vp.verb ! SomeoneElse ! Anim ! Plain ! TPres ! Neg ++ "で"
} ;
Plain => table {
Pos => vp.prepositive ! Plain ++ vp.obj ! Plain ++ vp.prep ++
vp.i_stem ! SomeoneElse ! Anim ! Plain ++ "なさい" ;
Neg => vp.prepositive ! Plain ++ vp.obj ! Plain ++ vp.prep ++
vp.verb ! SomeoneElse ! Anim ! Plain ! TPres ! Pos ++ "な"
}
}
} ;
EmbedS sent = {s = \\part,st => sent.subj ! part ! st ++ sent.pred ! Plain ; isVP = False} ;
EmbedQS qs = {s = \\part,st => qs.s ! part ! Plain ; isVP = False} ;
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 {
Simul => case cl.changePolar of {
False => t.s ++ p.s ++ cl.s ! part ! st ! t.t ! p.b ;
True => t.s ++ p.s ++ cl.s ! part ! st ! t.t ! Neg
} ;
Anter => case t.t of {
TPres => case cl.changePolar of {
False => t.s ++ p.s ++ cl.s ! part ! st ! TPast ! p.b ;
True => t.s ++ p.s ++ cl.s ! part ! st ! TPast ! Neg
} ;
TPast => case cl.changePolar of {
False => t.s ++ p.s ++ cl.s ! part ! st ! TPast ! p.b ;
True => t.s ++ p.s ++ cl.s ! part ! st ! TPast ! Neg
} ;
TFut => case cl.changePolar of {
False => t.s ++ p.s ++ cl.s ! part ! st ! TPres ! p.b ;
True => t.s ++ p.s ++ cl.s ! part ! st ! TPres ! Neg
}
}
} ;
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 {
False => t.s ++ p.s ++ cl.pred ! st ! t.t ! p.b ;
True => t.s ++ p.s ++ cl.pred ! st ! t.t ! Neg
} ;
Anter => case t.t of {
TPres => case cl.changePolar of {
False => t.s ++ p.s ++ cl.pred ! st ! TPast ! p.b ;
True => t.s ++ p.s ++ cl.pred ! st ! TPast ! Neg
} ;
TPast => case cl.changePolar of {
False => t.s ++ p.s ++ cl.pred ! st ! TPast ! p.b ;
True => t.s ++ p.s ++ cl.pred ! st ! TPast ! Neg
} ;
TFut => case cl.changePolar of {
False => t.s ++ p.s ++ cl.pred ! st ! TPres ! p.b ;
True => t.s ++ p.s ++ cl.pred ! st ! TPres ! Neg
}
}
} ;
pred_te = \\st => cl.pred_te ! st ! p.b ;
pred_ba = \\st => cl.pred_ba ! st ! p.b
} ;
UseQCl t p cl = {
s = \\part,st => case t.a of {
Simul => case cl.changePolar of {
False => t.s ++ p.s ++ cl.s ! part ! st ! t.t ! p.b ;
True => t.s ++ p.s ++ cl.s ! part ! st ! t.t ! Neg
} ;
Anter => case t.t of {
TPres => case cl.changePolar of {
False => t.s ++ p.s ++ cl.s ! part ! st ! TPast ! p.b ;
True => t.s ++ p.s ++ cl.s ! part ! st ! TPast ! Neg
} ;
TPast => case cl.changePolar of {
False => t.s ++ p.s ++ cl.s ! part ! st ! TPast ! p.b ;
True => t.s ++ p.s ++ cl.s ! part ! st ! TPast ! Neg
} ;
TFut => case cl.changePolar of {
False => t.s ++ p.s ++ cl.s ! part ! st ! TPres ! p.b ;
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 = {
s = \\a,st => case t.a of {
Simul => case rcl.changePolar of {
False => t.s ++ p.s ++ rcl.s ! a ! st ! t.t ! p.b ;
True => t.s ++ p.s ++ rcl.s ! a ! st ! t.t ! Neg
} ;
Anter => case t.t of {
TPres => case rcl.changePolar of {
False => t.s ++ p.s ++ rcl.s ! a ! st ! TPast ! p.b ;
True => t.s ++ p.s ++ rcl.s ! a ! st ! TPast ! Neg
} ;
TPast => case rcl.changePolar of {
False => t.s ++ p.s ++ rcl.s ! a ! st ! TPast ! p.b ;
True => t.s ++ p.s ++ rcl.s ! a ! st ! TPast ! Neg
} ;
TFut => case rcl.changePolar of {
False => t.s ++ p.s ++ rcl.s ! a ! st ! TPres ! p.b ;
True => t.s ++ p.s ++ rcl.s ! a ! st ! TPres ! Neg
}
}
} ;
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 {
False => t.s ++ p.s ++ rcl.pred ! a ! st ! t.t ! p.b ;
True => t.s ++ p.s ++ rcl.pred ! a ! st ! t.t ! Neg
} ;
Anter => case t.t of {
TPres => case rcl.changePolar of {
False => t.s ++ p.s ++ rcl.pred ! a ! st ! TPast ! p.b ;
True => t.s ++ p.s ++ rcl.pred ! a ! st ! TPast ! Neg
} ;
TPast => case rcl.changePolar of {
False => t.s ++ p.s ++ rcl.pred ! a ! st ! TPast ! p.b ;
True => t.s ++ p.s ++ rcl.pred ! a ! st ! TPast ! Neg
} ;
TFut => case rcl.changePolar of {
False => t.s ++ p.s ++ rcl.pred ! a ! st ! TPres ! p.b ;
True => t.s ++ p.s ++ rcl.pred ! a ! st ! TPres ! Neg
}
}
} ;
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
} ;
UseSlash t p clslash = {
s = \\st => case t.a of {
Simul => case clslash.changePolar of {
False => t.s ++ p.s ++ clslash.s ! st ! t.t ! p.b ;
True => t.s ++ p.s ++ clslash.s ! st ! t.t ! Neg
} ;
Anter => case t.t of {
TPres => case clslash.changePolar of {
False => t.s ++ p.s ++ clslash.s ! st ! TPast ! p.b ;
True => t.s ++ p.s ++ clslash.s ! st ! TPast ! Neg
} ;
TPast => case clslash.changePolar of {
False => t.s ++ p.s ++ clslash.s ! st ! TPast ! p.b ;
True => t.s ++ p.s ++ clslash.s ! st ! TPast ! Neg
} ;
TFut => case clslash.changePolar of {
False => t.s ++ p.s ++ clslash.s ! st ! TPres ! p.b ;
True => t.s ++ p.s ++ clslash.s ! st ! TPres ! Neg
}
}
} ;
te = \\st => clslash.te ! st ! p.b
} ;
AdvS adv s = {
s = \\part,st => adv.s ! st ++ s.s ! part ! st ;
te = \\part,st => adv.s ! st ++ s.te ! part ! st ;
ba = \\part,st => adv.s ! st ++ s.ba ! part ! st ;
subj = \\part,st => adv.s ! st ++ s.subj ! part ! st ;
pred = s.pred ;
pred_te = s.pred_te ;
pred_ba = s.pred_ba
} ;
ExtAdvS adv s = {
s = \\part,st => adv.s ! st ++ "、" ++ s.s ! part ! st ;
te = \\part,st => adv.s ! st ++ "、" ++ s.te ! part ! st ;
ba = \\part,st => adv.s ! st ++ "、" ++ s.ba ! part ! st ;
subj = \\part,st => adv.s ! st ++ "、" ++ s.subj ! part ! st ;
pred = s.pred ;
pred_te = s.pred_te ;
pred_ba = s.pred_ba
} ;
SSubjS s1 subj s2 = case subj.type of {
If => {
s = \\part,st => s1.ba ! part ! st ++ subj.s ++ s2.s ! Ga ! st ;
te = \\part,st => s1.ba ! part ! st ++ subj.s ++ s2.te ! Ga ! st ;
ba = \\part,st => s1.ba ! part ! st ++ subj.s ++ s2.ba ! Ga ! st ;
subj = \\part,st => s1.ba ! part ! st ++ subj.s ++ s2.subj ! Ga ! st ;
pred = s2.pred ;
pred_te = s2.pred_te ;
pred_ba = s2.pred_ba
} ;
That => {
s = \\part,st => s1.subj ! part ! st ++ s2.subj ! Ga ! st ++ s2.pred ! Plain ++
subj.s ++ s1.pred ! st ;
te = \\part,st => s1.subj ! part ! st ++ s2.subj ! Ga ! st ++ s2.pred ! Plain ++
subj.s ++ s1.pred_te ! st ;
ba = \\part,st => s1.subj ! part ! st ++ s2.subj ! Ga ! st ++ s2.pred ! Plain ++
subj.s ++ s1.pred_ba ! st ;
subj = \\part,st => s1.subj ! part ! st ;
pred = \\st => s2.subj ! Ga ! st ++ s2.pred ! Plain ++ subj.s ++ s1.pred ! st ;
pred_te = \\st => s2.subj ! Ga ! st ++ s2.pred ! Plain ++ subj.s ++ s1.pred_te ! st ;
pred_ba = \\st => s2.subj ! Ga ! st ++ s2.pred ! Plain ++ subj.s ++ s1.pred_ba ! st
} ;
OtherSubj => {
s = \\part,st => s1.s ! part ! Plain ++ subj.s ++ s2.s ! Ga ! st ;
te = \\part,st => s1.s ! part ! Plain ++ subj.s ++ s2.te ! Ga ! st ;
ba = \\part,st => s1.s ! part ! Plain ++ subj.s ++ s2.ba ! Ga ! st ;
subj = \\part,st => s1.s ! part ! Plain ++ subj.s ++ s2.subj ! Ga ! st ;
pred = s2.pred ;
pred_te = s2.pred_te ;
pred_ba = s2.pred_ba
}
} ;
RelS sent rs = case rs.missingSubj of {
True => {
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 ! part ! st ++ sent.subj ! Ga ! st ++ sent.pred ! Plain ++
"ことが" ++ 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 ;
pred_te = \\st => rs.pred_te ! Inanim ! st ;
pred_ba = \\st => rs.pred_ba ! Inanim ! st
} ;
False => {
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 ;
pred_te = \\st => sent.subj ! Ga ! st ++ sent.pred ! Plain ++ "ことを" ++
rs.pred_te ! Inanim ! st ;
pred_ba = \\st => sent.subj ! Ga ! st ++ sent.pred ! Plain ++ "ことを" ++
rs.pred_ba ! Inanim ! st
}
} ;
}