1
0
forked from GitHub/gf-core
Files
gf-core/lib/src/japanese/IdiomJpn.gf
lizazim 2c371f5f33 JPN
2012-06-10 21:38:10 +00:00

163 lines
8.6 KiB
Plaintext

concrete IdiomJpn of Idiom = CatJpn ** open ResJpn, ParadigmsJpn, Prelude in {
flags coding = utf8 ;
lin
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
} ;
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 = {
s = \\part,st,t,p => vp.prepositive ! st ++ "誰か" ++ vp.obj ! st ++ -- "dareka"
vp.prep ++ vp.verb ! SomeoneElse ! Anim ! st ! t ! p ;
te = \\part,st,p => vp.prepositive ! st ++ "誰か" ++ vp.obj ! st ++
vp.prep ++ vp.te ! SomeoneElse ! Anim ! st ! p ;
ba = \\part,st,p => vp.prepositive ! st ++ "誰か" ++ vp.obj ! st ++
vp.prep ++ vp.ba ! SomeoneElse ! Anim ! st ! p ;
subj = \\part,st => vp.prepositive ! st ++ "誰か" ;
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! SomeoneElse ! Anim ! st ! t ! p ;
pred_te = \\st,p => vp.obj ! st ++ vp.prep ++ vp.te ! SomeoneElse ! Anim ! st ! p ;
pred_ba = \\st,p => vp.obj ! st ++ vp.prep ++ vp.ba ! SomeoneElse ! Anim ! st ! p ;
changePolar = False
} ;
CleftNP np rs = {
s = \\part,st,t,p => np.prepositive ! st ++ rs.subj ! Ga ! st ++
rs.pred ! np.anim ! Plain ++ "のは" ++ np.s ! st ++
mkCopula.s ! st ! t ! p ;
te = \\part,st,p => np.prepositive ! st ++ rs.subj ! Ga ! st ++ rs.pred ! np.anim ! Plain ++
"のは" ++ np.s ! st ++ mkCopula.te ! p ;
ba = \\part,st,p => np.prepositive ! st ++ rs.subj ! Ga ! st ++ rs.pred ! np.anim ! Plain ++
"のは" ++ np.s ! st ++ mkCopula.ba ! p ;
subj = \\part,st => np.prepositive ! st ++ rs.subj ! Ga ! st ++
rs.pred ! np.anim ! Plain ++ "のは" ;
pred = \\st,t,p => np.s ! st ++ mkCopula.s ! st ! t ! p ;
pred_te = \\st,p => np.s ! st ++ mkCopula.te ! p ;
pred_ba = \\st,p => np.s ! st ++ mkCopula.ba ! p ;
changePolar = np.changePolar
} ;
CleftAdv adv s = {
s = \\part,st,t,p => s.subj ! Ga ! st ++ s.pred ! Plain ++ "のは" ++ adv.s ! st ++
mkCopula.s ! st ! t ! p ;
te = \\part,st,p => s.subj ! Ga ! st ++ s.pred ! Plain ++ "のは" ++ adv.s ! st ++
mkCopula.te ! p ;
ba = \\part,st,p => s.subj ! Ga ! st ++ s.pred ! Plain ++ "のは" ++ adv.s ! st ++
mkCopula.ba ! p ;
subj = \\part,st => s.subj ! Ga ! st ++ s.pred ! Plain ++ "のは" ;
pred = \\st,t,p => adv.s ! st ++ mkCopula.s ! st ! t ! p ;
pred_te = \\st,p => adv.s ! st ++ mkCopula.te ! p ;
pred_ba = \\st,p => adv.s ! st ++ mkCopula.ba ! p ;
changePolar = False
} ;
ExistNP np = case np.needPart of {
True => {
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 ;
changePolar = np.changePolar
} ;
False => {
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 ;
changePolar = np.changePolar
}
} ;
ExistIP ip = {
s = \\part,st,t,p => case ip.how8many of {
True => ip.s_subj ! st ++ mkExistV.verb ! SomeoneElse ! ip.anim ! st ! t ! p ++ "か" ;
False => ip.s_subj ! st ++ "が" ++ mkExistV.verb ! SomeoneElse ! ip.anim ! st ! t ! p
++ "か"
} ;
s_plain_pred = \\part,st,t,p => case ip.how8many of {
True => ip.s_subj ! st ++ mkExistV.verb ! SomeoneElse ! ip.anim ! Plain ! t ! p ++ "か" ;
False => 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 ;
te = \\sp,a,st,p => vp.te ! sp ! a ! st ! Pos ++ mkExistV.te ! SomeoneElse ! Anim ! st ! p ;
a_stem = \\sp,a,st => vp.te ! sp ! a ! st ! Pos ++ "い" ;
i_stem = \\sp,a,st => vp.te ! sp ! a ! st ! Pos ++ "い" ;
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 ;
needSubject = vp.needSubject
} ;
ImpPl1 vp = {s = \\part,st => vp.prepositive ! st ++ vp.obj ! st ++ vp.prep ++
vp.i_stem ! SomeoneElse ! Anim ! st ++ "ましょう" ; type = NoImp} ;
ImpP3 np vp = {
s = \\part => table {
Resp => np.prepositive ! Resp ++ vp.prepositive ! Resp ++ np.s ! Resp ++ "を" ++
vp.obj ! Resp ++ vp.prep ++ vp.a_stem ! SomeoneElse ! Anim ! Resp ++ "せて" ;
Plain => np.prepositive ! Plain ++ vp.prepositive ! Plain ++ np.s ! Plain ++ "を" ++
vp.obj ! Plain ++ vp.prep ++ vp.a_stem ! SomeoneElse ! Anim ! Plain ++ "せなさい"
} ;
type = Imper
} ;
}