mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-21 02:39:31 -06:00
new japanese from Liza 30 April
This commit is contained in:
@@ -8,100 +8,110 @@ flags coding = utf8 ;
|
||||
pred = adj.pred ;
|
||||
attr = \\st => adj.attr ;
|
||||
te = \\st => adj.te ;
|
||||
tara = \\st => adj.tara ;
|
||||
ba = \\st => adj.ba ;
|
||||
adv = \\st => adj.adv ;
|
||||
prepositive = \\st => [] ;
|
||||
compar = NoCompar
|
||||
compar = NoCompar ;
|
||||
dropNaEnging = \\st => adj.dropNaEnging
|
||||
} ;
|
||||
|
||||
ComparA adj np = {
|
||||
pred = \\st,t,p => np.s ! st ++ "より" ++ adj.pred ! st ! t ! p ;
|
||||
attr = \\st => np.s ! st ++ "より" ++ adj.attr ;
|
||||
te = \\st => np.s ! st ++ "より" ++ adj.te ;
|
||||
tara = \\st => np.s ! st ++ "より" ++ adj.tara ;
|
||||
ba = \\st => np.s ! st ++ "より" ++ adj.ba ;
|
||||
adv = \\st => np.s ! st ++ "より" ++ adj.adv ;
|
||||
prepositive = np.prepositive ;
|
||||
compar = More
|
||||
compar = More ;
|
||||
dropNaEnging = \\st => np.s ! st ++ "より" ++ adj.dropNaEnging ;
|
||||
} ;
|
||||
|
||||
ComplA2 a2 np = {
|
||||
pred = \\st,t,p => np.s ! st ++ a2.prep ++ a2.pred ! st ! t ! p ;
|
||||
attr = \\st => np.s ! st ++ a2.prep ++ a2.attr ;
|
||||
te = \\st => np.s ! st ++ a2.prep ++ a2.te ;
|
||||
tara = \\st => np.s ! st ++ a2.prep ++ a2.tara ;
|
||||
ba = \\st => np.s ! st ++ a2.prep ++ a2.ba ;
|
||||
prepositive = np.prepositive ;
|
||||
adv = \\st => [] ;
|
||||
compar = NoCompar
|
||||
compar = NoCompar ;
|
||||
dropNaEnging = \\st => np.s ! st ++ a2.prep ++ a2.dropNaEnging
|
||||
} ;
|
||||
|
||||
ReflA2 a2 = {
|
||||
pred = \\st,t,p => "自分" ++ a2.prep ++ a2.pred ! st ! t ! p ; -- "jibun"
|
||||
attr = \\st => "自分" ++ a2.prep ++ a2.attr ;
|
||||
te = \\st => "自分" ++ a2.prep ++ a2.te ;
|
||||
tara = \\st => "自分" ++ a2.prep ++ a2.tara ;
|
||||
ba = \\st => "自分" ++ a2.prep ++ a2.ba ;
|
||||
adv = \\st => [] ;
|
||||
prepositive = \\st => [] ;
|
||||
compar = NoCompar
|
||||
compar = NoCompar ;
|
||||
dropNaEnging = \\st => "自分" ++ a2.prep ++ a2.dropNaEnging
|
||||
} ;
|
||||
|
||||
UseA2 a2 = {
|
||||
pred = a2.pred ;
|
||||
attr = \\st => a2.attr ;
|
||||
te = \\st => a2.te ;
|
||||
tara = \\st => a2.tara ;
|
||||
ba = \\st => a2.ba ;
|
||||
adv = \\st => [] ;
|
||||
prepositive = \\st => [] ;
|
||||
compar = NoCompar
|
||||
compar = NoCompar ;
|
||||
dropNaEnging = \\st => a2.dropNaEnging
|
||||
} ;
|
||||
|
||||
UseComparA adj = {
|
||||
pred = \\st,t,p => "もっと" ++ adj.pred ! st ! t ! p ;
|
||||
attr = \\st => "もっと" ++ adj.attr ;
|
||||
te = \\st => "もっと" ++ adj.te ;
|
||||
tara = \\st => "もっと" ++ adj.tara ;
|
||||
ba = \\st => "もっと" ++ adj.ba ;
|
||||
adv = \\st => "もっと" ++ adj.adv ;
|
||||
prepositive = \\st => [] ;
|
||||
compar = NoCompar -- "motto" does not change the main NP's particle
|
||||
compar = NoCompar ; -- "motto" does not change the main NP's particle
|
||||
dropNaEnging = \\st => "もっと" ++ adj.dropNaEnging
|
||||
} ;
|
||||
|
||||
CAdvAP cadv ap np = {
|
||||
pred = \\st,t,p => np.s ! st ++ cadv.s ++ ap.pred ! st ! t ! p ;
|
||||
attr = \\st => np.s ! st ++ cadv.s ++ ap.attr ! st ;
|
||||
te = \\st => np.s ! st ++ cadv.s ++ ap.te ! st ;
|
||||
tara = \\st => np.s ! st ++ cadv.s ++ ap.tara ! st ;
|
||||
ba = \\st => np.s ! st ++ cadv.s ++ ap.ba ! st ;
|
||||
adv = \\st => np.s ! st ++ cadv.s ++ ap.adv ! st ;
|
||||
prepositive = np.prepositive ;
|
||||
compar = cadv.compar
|
||||
compar = cadv.compar ;
|
||||
dropNaEnging = \\st => np.s ! st ++ cadv.s ++ ap.dropNaEnging ! st
|
||||
} ;
|
||||
|
||||
AdjOrd ord = {
|
||||
pred = ord.pred ;
|
||||
attr = \\st => ord.attr ;
|
||||
te = \\st => ord.te ;
|
||||
tara = \\st => ord.tara ;
|
||||
ba = \\st => ord.ba ;
|
||||
adv = \\st => ord.adv ;
|
||||
prepositive = \\st => [] ;
|
||||
compar = NoCompar
|
||||
compar = NoCompar ;
|
||||
dropNaEnging = \\st => ord.dropNaEnging
|
||||
} ;
|
||||
|
||||
SentAP ap sc = {
|
||||
pred = \\st,t,p => sc.s ! Ga ! st ++ "ことを" ++ ap.pred ! st ! t ! p ;
|
||||
attr = \\st => sc.s ! Ga ! st ++ "ことを" ++ ap.attr ! st ;
|
||||
te = \\st => sc.s ! Ga ! st ++ "ことを" ++ ap.te ! st ;
|
||||
tara = \\st => sc.s ! Ga ! st ++ "ことを" ++ ap.tara ! st ;
|
||||
ba = \\st => sc.s ! Ga ! st ++ "ことを" ++ ap.ba ! st ;
|
||||
adv = \\st => sc.s ! Ga ! st ++ "ことを" ++ ap.adv ! st ;
|
||||
prepositive = ap.prepositive ;
|
||||
compar = ap.compar
|
||||
compar = ap.compar ;
|
||||
dropNaEnging = \\st => sc.s ! Ga ! st ++ "ことを" ++ ap.dropNaEnging ! st
|
||||
} ;
|
||||
|
||||
AdAP ada ap = {
|
||||
pred = \\st,t,p => ada.s ++ ap.pred ! st ! t ! p ;
|
||||
attr = \\st => ada.s ++ ap.attr ! st ;
|
||||
te = \\st => ada.s ++ ap.te ! st ;
|
||||
tara = \\st => ada.s ++ ap.tara ! st ;
|
||||
ba = \\st => ada.s ++ ap.ba ! st ;
|
||||
adv = \\st => ada.s ++ ap.adv ! st ;
|
||||
prepositive = ap.prepositive ;
|
||||
compar = ap.compar
|
||||
compar = ap.compar ;
|
||||
dropNaEnging = \\st => ada.s ++ ap.dropNaEnging ! st
|
||||
} ;
|
||||
|
||||
AdvAP ap adv = {
|
||||
@@ -117,9 +127,9 @@ flags coding = utf8 ;
|
||||
True => ap.te ! st ;
|
||||
False => adv.s ! st ++ ap.te ! st
|
||||
} ;
|
||||
tara = \\st => case adv.prepositive of {
|
||||
True => ap.tara ! st ;
|
||||
False => adv.s ! st ++ ap.tara ! st
|
||||
ba = \\st => case adv.prepositive of {
|
||||
True => ap.ba ! st ;
|
||||
False => adv.s ! st ++ ap.ba ! st
|
||||
} ;
|
||||
adv = \\st => case adv.prepositive of {
|
||||
True => ap.adv ! st ;
|
||||
@@ -129,6 +139,10 @@ flags coding = utf8 ;
|
||||
True => adv.s ! st ;
|
||||
False => []
|
||||
} ;
|
||||
compar = ap.compar
|
||||
compar = ap.compar ;
|
||||
dropNaEnging = \\st => case adv.prepositive of {
|
||||
True => ap.dropNaEnging ! st ;
|
||||
False => adv.s ! st ++ ap.dropNaEnging ! st
|
||||
}
|
||||
} ;
|
||||
}
|
||||
|
||||
@@ -21,9 +21,9 @@ flags coding = utf8 ;
|
||||
PositAdAAdj a = {s = a.adv} ;
|
||||
|
||||
SubjS subj s = {
|
||||
s = \\st => case subj.when of {
|
||||
True => s.tara ! (Wa | Ga) ! st ;
|
||||
False => s.s ! (Wa | Ga) ! st ++ subj.s
|
||||
s = \\st => case subj.type of {
|
||||
If => s.ba ! (Wa | Ga) ! st ++ subj.s ;
|
||||
_ => s.s ! (Wa | Ga) ! st ++ subj.s
|
||||
} ;
|
||||
prepositive = True ;
|
||||
compar = NoCompar
|
||||
|
||||
@@ -8,34 +8,21 @@ flags coding = utf8 ;
|
||||
|
||||
lincat
|
||||
|
||||
S = {s : Particle => Style => Str ;
|
||||
te : Particle => Style => Str ;
|
||||
tara : Particle => Style => Str ;
|
||||
subj : Particle => Style => Str ;
|
||||
pred : Style => Str ;
|
||||
} ;
|
||||
S = {s, te, ba, subj : Particle => Style => Str ; pred, pred_te, pred_ba : Style => Str} ;
|
||||
QS = {s : Particle => Style => Str} ;
|
||||
RS = {s : Animateness => Style => Str ;
|
||||
te : Animateness => Style => Str ;
|
||||
subj : Particle => Style => Str ;
|
||||
pred : Animateness => Style => Str ;
|
||||
pred_te : Animateness => Style => Str ;
|
||||
pred_tara : Animateness => Style => Str ;
|
||||
missingSubj : Bool} ;
|
||||
RS = {s, te, pred, pred_te, pred_ba : Animateness => Style => Str ;
|
||||
subj : Particle => Style => Str ; missingSubj : Bool} ;
|
||||
Cl = {s : Particle => Style => TTense => Polarity => Str ;
|
||||
te : Particle => Style => Str ;
|
||||
tara : Particle => Style => Str ;
|
||||
subj : Particle => Style => Str ;
|
||||
te, ba, subj : Particle => Style => Str ;
|
||||
pred : Style => TTense => Polarity => Str ;
|
||||
pred_te : Style => Str ;
|
||||
pred_tara : Style => Str ;
|
||||
pred_te, pred_ba : Style => Str ;
|
||||
changePolar : Bool} ;
|
||||
ClSlash = {s : Style => TTense => Polarity => Str ;
|
||||
te : Style => Str ;
|
||||
subj : Particle => Style => Str ;
|
||||
pred : Style => TTense => Polarity => Str ;
|
||||
pred_te : Style => Str ;
|
||||
pred_tara : Style => Str ;
|
||||
pred_ba : Style => Str ;
|
||||
changePolar : Bool} ;
|
||||
SSlash = {s : Style => Str ; te : Style => Str} ;
|
||||
Imp = {s : Style => Polarity => Str} ;
|
||||
@@ -48,45 +35,44 @@ flags coding = utf8 ;
|
||||
te : Animateness => Style => Str ;
|
||||
subj : Particle => Style => Str ;
|
||||
pred : Animateness => Style => TTense => Polarity => Str ;
|
||||
pred_te : Animateness => Style => Str ;
|
||||
pred_tara : Animateness => Style => Str ;
|
||||
pred_te, pred_ba : Animateness => Style => Str ;
|
||||
changePolar : Bool ;
|
||||
missingSubj : Bool} ;
|
||||
RP = {s : Style => Str ; prep : Str} ;
|
||||
VP = ResJap.VP ; -- {verb : Animateness => Style => TTense => Polarity => Str ;
|
||||
-- te : Animateness => Style => Str; a_stem : Animateness => Style => Str ;
|
||||
-- i_stem : Animateness => Style => Str ; tara : Animateness => Style => Str ;
|
||||
-- i_stem : Animateness => Style => Str ; ba : Animateness => Style => Str ;
|
||||
-- prep : Str ; obj : Style => Str ; prepositive : Style => Str ; compar : ComparSense} ;
|
||||
Comp = {verb : Animateness => Style => TTense => Polarity => Str ;
|
||||
te : Animateness => Style => Str ; a_stem : Animateness => Style => Str ;
|
||||
i_stem : Animateness => Style => Str ; tara : Animateness => Style => Str ;
|
||||
i_stem : Animateness => Style => Str ; ba : Animateness => Style => Str ;
|
||||
obj : Style => Str ; prepositive : Style => Str ; compar : ComparSense} ;
|
||||
VPSlash = Verb ** {prep : Str ; obj : Style => Str ; prepositive : Style => Str ;
|
||||
v2vType : Bool ; compar : ComparSense} ;
|
||||
AP = {pred : Style => TTense => Polarity => Str ; attr : Style => Str ; te : Style => Str ;
|
||||
tara : Style => Str ; adv : Style => Str ; prepositive : Style => Str ;
|
||||
compar : ComparSense} ;
|
||||
ba : Style => Str ; adv : Style => Str ; dropNaEnging : Style => Str ;
|
||||
prepositive : Style => Str ; compar : ComparSense} ;
|
||||
NP = ResJap.NP ; -- {s : Style => Str ; prepositive : Style => Str ; needPart : Bool ;
|
||||
-- changePolar : Bool ; Pron1Sg : Bool ; anim : Animateness} ;
|
||||
CN = Noun ** {object : Style => Str ; prepositive : Style => Str ; hasAttr : Bool} ;
|
||||
Pron = Pronoun ; -- {s : Style => Str ; Pron1Sg : Bool ; anim : Animateness} ;
|
||||
Det = Determiner ; -- {quant : Style => Str ; num : Str ; postpositive : Str ;
|
||||
-- n : Number ; inclCard : Bool} ;
|
||||
Predet = {s : Str} ;
|
||||
Quant = {s : Style => Str} ;
|
||||
Pron = Pronoun ; -- {s : Style => Str ; Pron1Sg : Bool ; anim : Animateness} ;
|
||||
Det = Determiner ; -- {quant : Style => Str ; num : Str ; postpositive : Str ;
|
||||
-- n : Number ; inclCard : Bool ; sp : Style => Str ; no : Bool} ;
|
||||
Predet = {s : Str ; not : Bool} ;
|
||||
Quant = {s : Style => Str ; sp : Style => Str ; no : Bool} ;
|
||||
Num = ResJap.Num ; -- {s : Str ; postpositive : Str ; n : Number ; inclCard : Bool} ;
|
||||
Card = {s : Str ; postpositive : Str ; n : Number} ;
|
||||
Ord = Adj ; -- {pred : Style => TTense => Polarity => Str ;
|
||||
-- attr : Str; te : Str ; tara : Str ; adv : Str} ;
|
||||
Ord = Adj ; -- {pred : Style => TTense => Polarity => Str ; attr : Str ;
|
||||
-- te : Str ; ba : Str ; adv : Str ; dropNaEnging : Str} ;
|
||||
Numeral = {s : Str ; n : Number} ;
|
||||
Digits = {s : Str ; n : Number} ;
|
||||
Conj = Conjunction ;
|
||||
Subj = {s : Str ; when : Bool} ;
|
||||
Conj = Conjunction ; -- {s : Str ; null : Str ; type : ConjType} ;
|
||||
Subj = Subjunction ; -- {s : Str ; type : SubjType} ;
|
||||
Prep = Preposition ; -- {s : Str ; relPrep : Str} ;
|
||||
V = Verb ; -- {s : Style => TTense => Polarity => Str ; te : Str ;
|
||||
-- a_stem : Str ; i_stem : Str ; tara : Str}
|
||||
-- a_stem : Str ; i_stem : Str ; ba : Str}
|
||||
V2 = Verb ** {pass: Style => TTense => Polarity => Str ; pass_te : Str ; pass_a_stem : Str ;
|
||||
pass_i_stem : Str ; pass_tara : Str ; prep : Str} ;
|
||||
pass_i_stem : Str ; pass_ba : Str ; prep : Str} ;
|
||||
V3 = Verb ** {prep1 : Str ; prep2 : Str ; give : Bool} ; -- "give" is a special case
|
||||
VV = Verb ** {sense : ModSense} ;
|
||||
VS = Verb ** {prep : Str} ;
|
||||
@@ -96,8 +82,8 @@ flags coding = utf8 ;
|
||||
V2S = Verb ;
|
||||
V2Q = Verb ;
|
||||
V2A = Verb ;
|
||||
A = Adj ; -- {pred : Style => TTense => Polarity => Str ;
|
||||
-- attr : Str; te : Str ; tara : Str ; adv : Str} ;
|
||||
A = Adj ; -- {pred : Style => TTense => Polarity => Str ; attr : Str;
|
||||
-- te : Str ; ba : Str ; adv : Str ; dropNaEnging : Str} ;
|
||||
A2 = Adj2 ; -- Adj ** {prep : Str} ;
|
||||
N = Noun ; -- {s : Number => Style => Str ; anim : Animateness ;
|
||||
-- counter : Str ; counterReplace : Bool} ;
|
||||
|
||||
354
lib/src/japanese/ConjunctionJap.gf
Normal file
354
lib/src/japanese/ConjunctionJap.gf
Normal file
@@ -0,0 +1,354 @@
|
||||
concrete ConjunctionJap of Conjunction = CatJap ** open ResJap, Prelude in {
|
||||
|
||||
flags coding = utf8 ;
|
||||
|
||||
lin
|
||||
|
||||
ConjS conj s = case conj.type of {
|
||||
(And | Both) => {
|
||||
s = \\part,st => conj.null ++ s.and ! part ! st ;
|
||||
te = \\part,st => conj.null ++ s.teAnd ! part ! st ;
|
||||
ba = \\part,st => conj.null ++ s.baAnd ! part ! st ;
|
||||
subj = \\part,st => conj.null ++ s.subj ! part ! st ;
|
||||
pred = s.predAnd ;
|
||||
pred_te = s.pred_teAnd ;
|
||||
pred_ba = s.pred_baAnd
|
||||
} ;
|
||||
Or => {
|
||||
s = \\part,st => conj.null ++ s.or ! part ! st ;
|
||||
te = \\part,st => conj.null ++ s.teOr ! part ! st ;
|
||||
ba = \\part,st => conj.null ++ s.baOr ! part ! st ;
|
||||
subj = \\part,st => conj.null ++ s.subj ! part ! st ;
|
||||
pred = s.predOr ;
|
||||
pred_te = s.pred_teOr ;
|
||||
pred_ba = s.pred_baOr
|
||||
}
|
||||
} ;
|
||||
|
||||
ConjRS conj rs = case conj.type of {
|
||||
(And | Both) => {
|
||||
s = \\a,st => conj.null ++ rs.and ! a ! st ;
|
||||
te = \\a,st => conj.null ++ rs.teAnd ! a ! st ;
|
||||
pred = \\a,st => conj.null ++ rs.predAnd ! a ! st ;
|
||||
pred_te = \\a,st => conj.null ++ rs.pred_teAnd ! a ! st ;
|
||||
pred_ba = \\a,st => conj.null ++ rs.pred_baAnd ! a ! st ;
|
||||
subj = rs.subj ;
|
||||
missingSubj = rs.missingSubj
|
||||
} ;
|
||||
Or => {
|
||||
s = \\a,st => conj.null ++ rs.or ! a ! st ;
|
||||
te = \\a,st => conj.null ++ rs.teOr ! a ! st ;
|
||||
pred = \\a,st => conj.null ++ rs.predOr ! a ! st ;
|
||||
pred_te = \\a,st => conj.null ++ rs.pred_teOr ! a ! st ;
|
||||
pred_ba = \\a,st => conj.null ++ rs.pred_baOr ! a ! st ;
|
||||
subj = rs.subj ;
|
||||
missingSubj = rs.missingSubj
|
||||
}
|
||||
} ;
|
||||
|
||||
ConjAP conj ap = case conj.type of {
|
||||
(And | Both) => {
|
||||
pred = \\st,t,p => conj.null ++ ap.s1and ! st ++ ap.s2pred ! st ! t ! p ;
|
||||
attr = \\st => conj.null ++ ap.s1and ! st ++ ap.s2attr ! st ;
|
||||
te = \\st => conj.null ++ ap.s1and ! st ++ ap.s2te ! st ;
|
||||
ba = \\st => conj.null ++ ap.s1and ! st ++ ap.s2ba ! st ;
|
||||
adv = \\st => conj.null ++ ap.s1and ! st ++ ap.s2adv ! st ;
|
||||
dropNaEnging = \\st => conj.null ++ ap.s1and ! st ++ ap.s2dropNaEnging ! st ;
|
||||
prepositive = ap.prepositive ;
|
||||
compar = ap.compar
|
||||
} ;
|
||||
Or => {
|
||||
pred = \\st,t,p => conj.null ++ ap.s1or ! st ++ ap.s2pred ! st ! t ! p ;
|
||||
attr = \\st => conj.null ++ ap.s1or ! st ++ ap.s2attr ! st ;
|
||||
te = \\st => conj.null ++ ap.s1or ! st ++ ap.s2te ! st ;
|
||||
ba = \\st => conj.null ++ ap.s1or ! st ++ ap.s2ba ! st ;
|
||||
adv = \\st => conj.null ++ ap.s1or ! st ++ ap.s2adv ! st ;
|
||||
dropNaEnging = \\st => conj.null ++ ap.s1or ! st ++ ap.s2dropNaEnging ! st ;
|
||||
prepositive = ap.prepositive ;
|
||||
compar = ap.compar
|
||||
}
|
||||
} ;
|
||||
|
||||
ConjAdv conj adv = {
|
||||
s = \\st => case conj.type of {
|
||||
(And | Both) => conj.null ++ adv.and ! st ;
|
||||
Or => conj.null ++ adv.or ! st
|
||||
} ;
|
||||
prepositive = adv.prepositive ;
|
||||
compar = adv.compar
|
||||
} ;
|
||||
|
||||
ConjNP conj np = {
|
||||
s = \\st => case conj.type of {
|
||||
And => conj.null ++ np.and ! st ;
|
||||
Or => conj.null ++ np.or ! st ;
|
||||
Both => conj.null ++ np.both ! st
|
||||
} ;
|
||||
prepositive = np.prepositive ;
|
||||
needPart = case conj.type of {
|
||||
(And|Or) => np.needPart ;
|
||||
Both => False
|
||||
} ;
|
||||
changePolar = np.changePolar ;
|
||||
Pron1Sg = np.Pron1Sg ;
|
||||
anim = np.anim
|
||||
} ;
|
||||
|
||||
ConjIAdv conj iadv = {
|
||||
s = \\st => conj.null ++ iadv.s ! st ;
|
||||
particle = iadv.particle
|
||||
} ;
|
||||
|
||||
ConjCN conj cn = {
|
||||
s = \\n,st => case conj.type of {
|
||||
(And|Both) => conj.null ++ cn.and ! n ! st ;
|
||||
Or => conj.null ++ cn.or ! n ! st
|
||||
} ;
|
||||
anim = cn.anim ;
|
||||
counter = cn.counter ;
|
||||
counterReplace = cn.counterReplace ;
|
||||
object = cn.object ;
|
||||
prepositive = cn.prepositive ;
|
||||
hasAttr = cn.hasAttr
|
||||
} ;
|
||||
|
||||
BaseS x y = {
|
||||
and = \\part,st => x.s ! part ! st ++ "," ++ "そして" ++ y.s ! Ga ! st ;
|
||||
or = \\part,st => x.s ! part ! st ++ "," ++ "それとも" ++ y.s ! Ga ! st ;
|
||||
teAnd = \\part,st => x.te ! part ! st ++ "," ++ y.te ! Ga ! st ;
|
||||
teOr = \\part,st => x.s ! part ! st ++ "," ++ "それとも" ++ y.te ! Ga ! st ;
|
||||
baAnd = \\part,st => x.ba ! part ! st ++ "," ++ y.ba ! Ga ! st ;
|
||||
baOr = \\part,st => x.s ! part ! st ++ "," ++ "それとも" ++ y.ba ! Ga ! st ;
|
||||
subj = \\part,st => x.subj ! part ! st ;
|
||||
predAnd = \\st => x.pred ! st ++ "," ++ "そして" ++ y.s ! Ga ! st ;
|
||||
predOr = \\st => x.pred ! st ++ "," ++ "それとも" ++ y.s ! Ga ! st ;
|
||||
pred_teAnd = \\st => x.pred_te ! st ++ "," ++ y.te ! Ga ! st ;
|
||||
pred_teOr = \\st => x.pred ! st ++ "," ++ "それとも" ++ y.te ! Ga ! st ;
|
||||
pred_baAnd = \\st => x.pred_ba ! st ++ "," ++ y.ba ! Ga ! st ;
|
||||
pred_baOr = \\st => x.pred ! st ++ "," ++ "それとも" ++ y.ba ! Ga ! st ;
|
||||
} ;
|
||||
|
||||
ConsS x xs = {
|
||||
and = \\part,st => xs.and ! part ! st ++ "," ++ "そして" ++ x.s ! Ga ! st ;
|
||||
or = \\part,st => xs.or ! part ! st ++ "," ++ "それとも" ++ x.s ! Ga ! st ;
|
||||
teAnd = \\part,st => xs.teAnd ! part ! st ++ "," ++ x.te ! Ga ! st ;
|
||||
teOr = \\part,st => xs.or ! part ! st ++ "," ++ "それとも" ++ x.te ! Ga ! st ;
|
||||
baAnd = \\part,st => xs.baAnd ! part ! st ++ "," ++ x.ba ! Ga ! st ;
|
||||
baOr = \\part,st => xs.or ! part ! st ++ "," ++ "それとも" ++ x.ba ! Ga ! st ;
|
||||
subj = xs.subj ;
|
||||
predAnd = \\st => xs.predAnd ! st ++ "," ++ "そして" ++ x.s ! Ga ! st ;
|
||||
predOr = \\st => xs.predOr ! st ++ "," ++ "それとも" ++ x.s ! Ga ! st ;
|
||||
pred_teAnd = \\st => xs.pred_teAnd ! st ++ "," ++ x.te ! Ga ! st ;
|
||||
pred_teOr = \\st => xs.predOr ! st ++ "," ++ "それとも" ++ x.te ! Ga ! st ;
|
||||
pred_baAnd = \\st => xs.pred_baAnd ! st ++ "," ++ x.ba ! Ga ! st ;
|
||||
pred_baOr = \\st => xs.predOr ! st ++ "," ++ "それとも" ++ x.ba ! Ga ! st ;
|
||||
} ;
|
||||
|
||||
BaseRS x y = {
|
||||
and = \\a,st => x.te ! a ! st ++ "," ++ y.s ! a ! st ;
|
||||
or = \\a,st => case <x.missingSubj, y.missingSubj> of {
|
||||
<True, True> => x.s ! a ! st ++ "か" ++ "," ++ y.s ! a ! st ;
|
||||
_ => x.te ! a ! st ++ "," ++ "あるいは" ++ y.s ! a ! st
|
||||
} ;
|
||||
teAnd = \\a,st => x.te ! a ! st ++ "," ++ y.te ! a ! st ;
|
||||
teOr = \\a,st => x.te ! a ! st ++ "," ++ "あるいは" ++ y.te ! a ! st ;
|
||||
predAnd = \\a,st => x.pred_te ! a ! st ++ "," ++ y.s ! a ! st ;
|
||||
predOr = \\a,st => x.pred_te ! a ! st ++ "," ++ "あるいは" ++ y.s ! a ! st ;
|
||||
pred_teAnd = \\a,st => x.pred_te ! a ! st ++ "," ++ y.te ! a ! st ;
|
||||
pred_teOr = \\a,st => x.pred_te ! a ! st ++ "," ++ "あるいは" ++ y.te ! a ! st ;
|
||||
pred_baAnd = \\a,st => x.pred_te ! a ! st ++ "," ++ y.subj ! Ga ! st ++
|
||||
y.pred_ba ! a ! st ;
|
||||
pred_baOr = \\a,st => x.pred_te ! a ! st ++ "," ++ "あるいは" ++ y.subj ! Ga ! st ++
|
||||
y.pred_ba ! a ! st ;
|
||||
subj = x.subj ;
|
||||
missingSubj = x.missingSubj
|
||||
} ;
|
||||
|
||||
ConsRS x xs = {
|
||||
and = \\a,st => xs.teAnd ! a ! st ++ "," ++ x.s ! a ! st ;
|
||||
or = \\a,st => case <xs.missingSubj, x.missingSubj> of {
|
||||
<True, True> => xs.teOr ! a ! st ++ "か" ++ "," ++ x.s ! a ! st ;
|
||||
_ => xs.teOr ! a ! st ++ "," ++ "あるいは" ++ x.s ! a ! st
|
||||
} ;
|
||||
teAnd = \\a,st => xs.teAnd ! a ! st ++ "," ++ x.te ! a ! st ;
|
||||
teOr = \\a,st => xs.teOr ! a ! st ++ "," ++ "あるいは" ++ x.te ! a ! st ;
|
||||
predAnd = \\a,st => xs.pred_teAnd ! a ! st ++ "," ++ x.s ! a ! st ;
|
||||
predOr = \\a,st => xs.pred_teOr ! a ! st ++ "," ++ "あるいは" ++ x.s ! a ! st ;
|
||||
pred_teAnd = \\a,st => xs.pred_teAnd ! a ! st ++ "," ++ x.te ! a ! st ;
|
||||
pred_teOr = \\a,st => xs.pred_teOr ! a ! st ++ "," ++ "あるいは" ++ x.te ! a ! st ;
|
||||
pred_baAnd = \\a,st => xs.pred_teAnd ! a ! st ++ "," ++ x.subj ! Ga ! st ++
|
||||
x.pred_ba ! a ! st ;
|
||||
pred_baOr = \\a,st => xs.pred_teOr ! a ! st ++ "," ++ "あるいは" ++ x.subj ! Ga ! st ++
|
||||
x.pred_ba ! a ! st ;
|
||||
subj = xs.subj ;
|
||||
missingSubj = xs.missingSubj
|
||||
} ;
|
||||
|
||||
BaseAdv x y = {
|
||||
and = \\st => case <x.prepositive, y.prepositive> of {
|
||||
<False, False> => x.s ! st ++ y.s ! st ;
|
||||
_ => x.s ! st ++ "," ++ y.s ! st
|
||||
} ;
|
||||
or = \\st => case <x.prepositive, y.prepositive> of {
|
||||
<False, False> => x.s ! st ++ "か" ++ y.s ! st ;
|
||||
_ => x.s ! st ++ "," ++ "あるいは" ++ y.s ! st
|
||||
} ;
|
||||
prepositive = case <x.prepositive, y.prepositive> of {
|
||||
<False, False> => False ;
|
||||
_ => True
|
||||
} ;
|
||||
compar = case <x.compar, y.compar> of {
|
||||
<NoCompar, NoCompar> => NoCompar ;
|
||||
(<More, _> | <_, More>) => More ;
|
||||
_ => Less
|
||||
}
|
||||
} ;
|
||||
|
||||
ConsAdv x xs = {
|
||||
and = \\st => case <x.prepositive, xs.prepositive> of {
|
||||
<False, False> => xs.and ! st ++ x.s ! st ;
|
||||
_ => xs.and ! st ++ "," ++ x.s ! st
|
||||
} ;
|
||||
or = \\st => case <x.prepositive, xs.prepositive> of {
|
||||
<False, False> => xs.or ! st ++ "か" ++ x.s ! st ;
|
||||
_ => xs.or ! st ++ "," ++ "あるいは" ++ x.s ! st
|
||||
} ;
|
||||
prepositive = case <x.prepositive, xs.prepositive> of {
|
||||
<False, False> => False ;
|
||||
_ => True
|
||||
} ;
|
||||
compar = case <x.compar, xs.compar> of {
|
||||
<NoCompar, NoCompar> => NoCompar ;
|
||||
(<More, _> | <_, More>) => More ;
|
||||
_ => Less
|
||||
}
|
||||
} ;
|
||||
|
||||
BaseNP x y = {
|
||||
and = \\st => x.s ! st ++ "と" ++ y.s ! st ;
|
||||
or = \\st => x.s ! st ++ "か" ++ y.s ! st ;
|
||||
both = \\st => x.s ! st ++ "も" ++ y.s ! st ++ "も" ;
|
||||
prepositive = \\st => x.prepositive ! st ++ y.prepositive ! st ;
|
||||
needPart = case <x.needPart, y.needPart> of {
|
||||
<True, True> => True ;
|
||||
_ => False
|
||||
} ;
|
||||
changePolar = case <x.changePolar, y.changePolar> of {
|
||||
<False, False> => False ;
|
||||
_ => True
|
||||
} ;
|
||||
Pron1Sg = False ;
|
||||
anim = case <x.anim, y.anim> of {
|
||||
<Inanim, Inanim> => Inanim ;
|
||||
_ => Anim
|
||||
}
|
||||
} ;
|
||||
|
||||
ConsNP x xs = {
|
||||
and = \\st => x.s ! st ++ "と" ++ xs.and ! st ;
|
||||
or = \\st => x.s ! st ++ "か" ++ xs.or ! st ;
|
||||
both = \\st => x.s ! st ++ "も" ++ xs.both ! st ;
|
||||
prepositive = \\st => x.prepositive ! st ++ xs.prepositive ! st ;
|
||||
needPart = case <xs.needPart, x.needPart> of {
|
||||
<True, True> => True ;
|
||||
_ => False
|
||||
} ;
|
||||
changePolar = case <xs.changePolar, x.changePolar> of {
|
||||
<False, False> => False ;
|
||||
_ => True
|
||||
} ;
|
||||
Pron1Sg = False ;
|
||||
anim = case <xs.anim, x.anim> of {
|
||||
<Inanim, Inanim> => Inanim ;
|
||||
_ => Anim
|
||||
}
|
||||
} ;
|
||||
|
||||
BaseAP x y = {
|
||||
s1and = x.te ;
|
||||
s1or = \\st => x.dropNaEnging ! st ++ "か" ;
|
||||
s2pred = y.pred ;
|
||||
s2attr = y.attr ;
|
||||
s2te = y.te ;
|
||||
s2ba = y.ba ;
|
||||
s2adv = y.adv ;
|
||||
s2dropNaEnging = y.dropNaEnging ;
|
||||
prepositive = \\st => x.prepositive ! st ++ y.prepositive ! st ;
|
||||
compar = y.compar
|
||||
} ;
|
||||
|
||||
ConsAP x xs = {
|
||||
s1and = \\st => xs.s1and ! st ++ xs.s2te ! st ;
|
||||
s1or = \\st => xs.s1or ! st ++ xs.s2dropNaEnging ! st ++ "か" ;
|
||||
s2pred = x.pred ;
|
||||
s2attr = x.attr ;
|
||||
s2te = x.te ;
|
||||
s2ba = x.ba ;
|
||||
s2adv = x.adv ;
|
||||
s2dropNaEnging = x.dropNaEnging ;
|
||||
prepositive = \\st => x.prepositive ! st ++ xs.prepositive ! st ;
|
||||
compar = x.compar
|
||||
} ;
|
||||
|
||||
BaseIAdv x y = {
|
||||
s = \\st => x.s ! st ++ x.particle ++ y.s ! st ;
|
||||
particle = y.particle
|
||||
} ;
|
||||
|
||||
ConsIAdv x xs = {
|
||||
s = \\st => x.s ! st ++ x.particle ++ xs.s ! st ;
|
||||
particle = xs.particle
|
||||
} ;
|
||||
|
||||
BaseCN x y = {
|
||||
and = \\n,st => x.s ! n ! st ++ "と" ++ y.object ! st ++ y.s ! n ! st ;
|
||||
or = \\n,st => x.s ! n ! st ++ "か" ++ y.object ! st ++ y.s ! n ! st ;
|
||||
anim = case <x.anim, y.anim> of {
|
||||
<Inanim, Inanim> => Inanim ;
|
||||
_ => Anim
|
||||
} ;
|
||||
counter = y.counter ;
|
||||
counterReplace = y.counterReplace ;
|
||||
object = x.object ;
|
||||
prepositive = \\st => x.prepositive ! st ++ y.prepositive ! st ;
|
||||
hasAttr = x.hasAttr
|
||||
} ;
|
||||
|
||||
ConsCN x xs = {
|
||||
and = \\n,st => x.s ! n ! st ++ "と" ++ xs.object ! st ++ xs.and ! n ! st ;
|
||||
or = \\n,st => x.s ! n ! st ++ "か" ++ xs.object ! st ++ xs.or ! n ! st ;
|
||||
anim = case <x.anim, xs.anim> of {
|
||||
<Inanim, Inanim> => Inanim ;
|
||||
_ => Anim
|
||||
} ;
|
||||
counter = xs.counter ;
|
||||
counterReplace = xs.counterReplace ;
|
||||
object = x.object ;
|
||||
prepositive = \\st => x.prepositive ! st ++ xs.prepositive ! st ;
|
||||
hasAttr = x.hasAttr
|
||||
} ;
|
||||
|
||||
lincat
|
||||
|
||||
[S] = {and, or, teAnd, teOr, baAnd, baOr, subj : Particle => Style => Str ;
|
||||
predAnd, predOr, pred_teAnd, pred_teOr, pred_baAnd, pred_baOr : Style => Str} ;
|
||||
|
||||
[RS] = {and, or, teAnd, teOr, predAnd, predOr, pred_teAnd, pred_teOr, pred_baAnd,
|
||||
pred_baOr : Animateness => Style => Str ; subj : Particle => Style => Str ;
|
||||
missingSubj : Bool} ;
|
||||
|
||||
[Adv] = {and, or : Style => Str ; prepositive : Bool ; compar : ComparSense} ;
|
||||
|
||||
[NP] = {and, or, both : Style => Str ; prepositive : Style => Str ;
|
||||
needPart : Bool ; changePolar : Bool ; Pron1Sg : Bool ; anim : Animateness} ;
|
||||
|
||||
[AP] = {s1and, s1or : Style => Str ; s2pred : Style => TTense => Polarity => Str ;
|
||||
s2attr, s2te, s2ba, s2adv, s2dropNaEnging, prepositive : Style => Str ;
|
||||
compar : ComparSense} ;
|
||||
|
||||
[IAdv] = {s : Style => Str ; particle : Str} ;
|
||||
|
||||
[CN] = {and, or : Number => Style => Str ; anim : Animateness ; counter : Str ;
|
||||
counterReplace : Bool ; object : Style => Str ; prepositive : Style => Str ;
|
||||
hasAttr : Bool} ;
|
||||
}
|
||||
@@ -7,7 +7,7 @@ concrete GrammarJap of Grammar =
|
||||
SentenceJap,
|
||||
QuestionJap,
|
||||
RelativeJap,
|
||||
-- ConjunctionJap,
|
||||
ConjunctionJap,
|
||||
PhraseJap,
|
||||
TextJap,
|
||||
StructuralJap,
|
||||
|
||||
@@ -18,11 +18,11 @@ flags coding = utf8 ;
|
||||
Ga => \\st => vp.prepositive ! st ++ "これのほうが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! Inanim ! st
|
||||
} ;
|
||||
tara = table {
|
||||
ba = table {
|
||||
Wa => \\st => vp.prepositive ! st ++ "これは" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.tara ! Inanim ! st ;
|
||||
vp.prep ++ vp.ba ! Inanim ! st ;
|
||||
Ga => \\st => vp.prepositive ! st ++ "これのほうが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.tara ! Inanim ! st
|
||||
vp.prep ++ vp.ba ! Inanim ! st
|
||||
} ;
|
||||
subj = table {
|
||||
Wa => \\st => vp.prepositive ! st ++ "これは" ;
|
||||
@@ -30,7 +30,7 @@ flags coding = utf8 ;
|
||||
} ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! Inanim ! st ! t ! p ;
|
||||
pred_te = \\st => vp.obj ! st ++ vp.prep ++ vp.te ! Inanim ! st ;
|
||||
pred_tara = \\st => vp.obj ! st ++ vp.prep ++ vp.tara ! Inanim ! st ;
|
||||
pred_ba = \\st => vp.obj ! st ++ vp.prep ++ vp.ba ! Inanim ! st ;
|
||||
changePolar = False
|
||||
} ;
|
||||
Less => {
|
||||
@@ -38,12 +38,12 @@ flags coding = utf8 ;
|
||||
vp.prep ++ vp.verb ! Inanim ! st ! t ! p ;
|
||||
te = \\part,st => vp.prepositive ! st ++ "これより" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! Inanim ! st ;
|
||||
tara = \\part,st => vp.prepositive ! st ++ "これより" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.tara ! Inanim ! st ;
|
||||
ba = \\part,st => vp.prepositive ! st ++ "これより" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.ba ! Inanim ! st ;
|
||||
subj = \\part,st => vp.prepositive ! st ++ "これより" ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! Inanim ! st ! t ! p ;
|
||||
pred_te = \\st => vp.obj ! st ++ vp.prep ++ vp.te ! Inanim ! st ;
|
||||
pred_tara = \\st => vp.obj ! st ++ vp.prep ++ vp.tara ! Inanim ! st ;
|
||||
pred_ba = \\st => vp.obj ! st ++ vp.prep ++ vp.ba ! Inanim ! st ;
|
||||
changePolar = False
|
||||
} ;
|
||||
NoCompar => {
|
||||
@@ -59,11 +59,11 @@ flags coding = utf8 ;
|
||||
Ga => \\st => vp.prepositive ! st ++ "これが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! Inanim ! st
|
||||
} ;
|
||||
tara = table {
|
||||
ba = table {
|
||||
Wa => \\st => vp.prepositive ! st ++ "これは" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.tara ! Inanim ! st ;
|
||||
vp.prep ++ vp.ba ! Inanim ! st ;
|
||||
Ga => \\st => vp.prepositive ! st ++ "これが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.tara ! Inanim ! st
|
||||
vp.prep ++ vp.ba ! Inanim ! st
|
||||
} ;
|
||||
subj = table {
|
||||
Wa => \\st => vp.prepositive ! st ++ "これは" ;
|
||||
@@ -71,7 +71,7 @@ flags coding = utf8 ;
|
||||
} ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! Inanim ! st ! t ! p ;
|
||||
pred_te = \\st => vp.obj ! st ++ vp.prep ++ vp.te ! Inanim ! st ;
|
||||
pred_tara = \\st => vp.obj ! st ++ vp.prep ++ vp.tara ! Inanim ! st ;
|
||||
pred_ba = \\st => vp.obj ! st ++ vp.prep ++ vp.ba ! Inanim ! st ;
|
||||
changePolar = False
|
||||
}
|
||||
} ;
|
||||
@@ -79,7 +79,7 @@ flags coding = utf8 ;
|
||||
GenericCl vp = case vp.compar of {
|
||||
More => {
|
||||
s = table {
|
||||
Wa => \\st,t,p => vp.prepositive ! st ++ "誰か" ++ vp.obj ! st ++ -- "dareka"
|
||||
Wa => \\st,t,p => vp.prepositive ! st ++ "誰か" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.verb ! Anim ! st ! t ! p ;
|
||||
Ga => \\st,t,p => vp.prepositive ! st ++ "誰かのほうが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.verb ! Anim ! st ! t ! p
|
||||
@@ -90,11 +90,11 @@ flags coding = utf8 ;
|
||||
Ga => \\st => vp.prepositive ! st ++ "誰かのほうが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! Anim ! st
|
||||
} ;
|
||||
tara = table {
|
||||
ba = table {
|
||||
Wa => \\st => vp.prepositive ! st ++ "誰か" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.tara ! Anim ! st ;
|
||||
vp.prep ++ vp.ba ! Anim ! st ;
|
||||
Ga => \\st => vp.prepositive ! st ++ "誰かのほうが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.tara ! Anim ! st
|
||||
vp.prep ++ vp.ba ! Anim ! st
|
||||
} ;
|
||||
subj = table {
|
||||
Wa => \\st => vp.prepositive ! st ++ "誰か" ;
|
||||
@@ -102,7 +102,7 @@ flags coding = utf8 ;
|
||||
} ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! Anim ! st ! t ! p ;
|
||||
pred_te = \\st => vp.obj ! st ++ vp.prep ++ vp.te ! Anim ! st ;
|
||||
pred_tara = \\st => vp.obj ! st ++ vp.prep ++ vp.tara ! Anim ! st ;
|
||||
pred_ba = \\st => vp.obj ! st ++ vp.prep ++ vp.ba ! Anim ! st ;
|
||||
changePolar = False
|
||||
} ;
|
||||
Less => {
|
||||
@@ -110,12 +110,12 @@ flags coding = utf8 ;
|
||||
vp.prep ++ vp.verb ! Anim ! st ! t ! p ;
|
||||
te = \\part,st => vp.prepositive ! st ++ "誰かより" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! Anim ! st ;
|
||||
tara = \\part,st => vp.prepositive ! st ++ "誰かより" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.tara ! Anim ! st ;
|
||||
ba = \\part,st => vp.prepositive ! st ++ "誰かより" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.ba ! Anim ! st ;
|
||||
subj = \\part,st => vp.prepositive ! st ++ "誰かより" ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! Anim ! st ! t ! p ;
|
||||
pred_te = \\st => vp.obj ! st ++ vp.prep ++ vp.te ! Anim ! st ;
|
||||
pred_tara = \\st => vp.obj ! st ++ vp.prep ++ vp.tara ! Anim ! st ;
|
||||
pred_ba = \\st => vp.obj ! st ++ vp.prep ++ vp.ba ! Anim ! st ;
|
||||
changePolar = False
|
||||
} ;
|
||||
NoCompar => {
|
||||
@@ -123,12 +123,12 @@ flags coding = utf8 ;
|
||||
vp.prep ++ vp.verb ! Anim ! st ! t ! p ;
|
||||
te = \\part,st => vp.prepositive ! st ++ "誰か" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! Anim ! st ;
|
||||
tara = \\part,st => vp.prepositive ! st ++ "誰か" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.tara ! Anim ! st ;
|
||||
ba = \\part,st => vp.prepositive ! st ++ "誰か" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.ba ! Anim ! st ;
|
||||
subj = \\part,st => vp.prepositive ! st ++ "誰か" ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! Anim ! st ! t ! p ;
|
||||
pred_te = \\st => vp.obj ! st ++ vp.prep ++ vp.te ! Anim ! st ;
|
||||
pred_tara = \\st => vp.obj ! st ++ vp.prep ++ vp.tara ! Anim ! st ;
|
||||
pred_ba = \\st => vp.obj ! st ++ vp.prep ++ vp.ba ! Anim ! st ;
|
||||
changePolar = False
|
||||
}
|
||||
} ;
|
||||
@@ -139,26 +139,27 @@ flags coding = utf8 ;
|
||||
mkCopula.s ! st ! t ! p ;
|
||||
te = \\part,st => np.prepositive ! st ++ rs.subj ! Ga ! st ++
|
||||
rs.pred ! np.anim ! Plain ++ "のは" ++ np.s ! st ++ "だって" ;
|
||||
tara = \\part,st => np.prepositive ! st ++ rs.subj ! Ga ! st ++
|
||||
rs.pred ! np.anim ! Plain ++ "のは" ++ np.s ! st ++ "だったら" ;
|
||||
ba = \\part,st => np.prepositive ! st ++ rs.subj ! Ga ! st ++
|
||||
rs.pred ! np.anim ! Plain ++ "のは" ++ np.s ! st ++ "であれば" ;
|
||||
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 => np.s ! st ++ "だって" ;
|
||||
pred_tara = \\st => np.s ! st ++ "だったら" ;
|
||||
pred_ba = \\st => np.s ! st ++ "であれば" ;
|
||||
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 => s.subj ! Ga ! st ++ s.pred ! Plain ++ "のは" ++ adv.s ! st ++ "だって" ;
|
||||
tara = \\part,st => s.subj ! Ga ! st ++ s.pred ! Plain ++ "のは" ++ adv.s ! st ++
|
||||
"だったら" ;
|
||||
te = \\part,st => s.subj ! Ga ! st ++ s.pred ! Plain ++ "のは" ++ adv.s ! st ++
|
||||
"だって" ;
|
||||
ba = \\part,st => s.subj ! Ga ! st ++ s.pred ! Plain ++ "のは" ++ adv.s ! st ++
|
||||
"であれば" ;
|
||||
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 => adv.s ! st ++ "だって" ;
|
||||
pred_tara = \\st => adv.s ! st ++ "だったら" ;
|
||||
pred_ba = \\st => adv.s ! st ++ "であれば" ;
|
||||
changePolar = False
|
||||
} ;
|
||||
|
||||
@@ -174,9 +175,9 @@ flags coding = utf8 ;
|
||||
Wa => \\st => np.prepositive ! st ++ np.s ! st ++ "は" ++ mkExistV.te ! np.anim ! st ;
|
||||
Ga => \\st => np.prepositive ! st ++ np.s ! st ++ "が" ++ mkExistV.te ! np.anim ! st
|
||||
} ;
|
||||
tara = table {
|
||||
Wa => \\st => np.prepositive ! st ++ np.s ! st ++ "は" ++ mkExistV.tara ! np.anim ! st ;
|
||||
Ga => \\st => np.prepositive ! st ++ np.s ! st ++ "が" ++ mkExistV.tara ! np.anim ! st
|
||||
ba = table {
|
||||
Wa => \\st => np.prepositive ! st ++ np.s ! st ++ "は" ++ mkExistV.ba ! np.anim ! st ;
|
||||
Ga => \\st => np.prepositive ! st ++ np.s ! st ++ "が" ++ mkExistV.ba ! np.anim ! st
|
||||
} ;
|
||||
subj = table {
|
||||
Wa => \\st => np.prepositive ! st ++ np.s ! st ++ "は" ;
|
||||
@@ -184,18 +185,18 @@ flags coding = utf8 ;
|
||||
} ;
|
||||
pred = \\st,t,p => mkExistV.verb ! np.anim ! st ! t ! p ;
|
||||
pred_te = \\st => mkExistV.te ! np.anim ! st ;
|
||||
pred_tara = \\st => mkExistV.tara ! np.anim ! st ;
|
||||
pred_ba = \\st => mkExistV.ba ! np.anim ! st ;
|
||||
changePolar = np.changePolar
|
||||
} ;
|
||||
False => {
|
||||
s = \\part,st,t,p => np.prepositive ! st ++ np.s ! st ++
|
||||
mkExistV.verb ! np.anim ! st ! t ! p ;
|
||||
te = \\part,st => np.prepositive ! st ++ np.s ! st ++ mkExistV.te ! np.anim ! st ;
|
||||
tara = \\part,st => np.prepositive ! st ++ np.s ! st ++ mkExistV.tara ! np.anim ! st ;
|
||||
ba = \\part,st => np.prepositive ! st ++ np.s ! st ++ mkExistV.ba ! np.anim ! st ;
|
||||
subj = \\part,st => np.prepositive ! st ++ np.s ! st ;
|
||||
pred = \\st,t,p => mkExistV.verb ! np.anim ! st ! t ! p ;
|
||||
pred_te = \\st => mkExistV.te ! np.anim ! st ;
|
||||
pred_tara = \\st => mkExistV.tara ! np.anim ! st ;
|
||||
pred_ba = \\st => mkExistV.ba ! np.anim ! st ;
|
||||
changePolar = np.changePolar
|
||||
}
|
||||
} ;
|
||||
@@ -210,7 +211,7 @@ flags coding = utf8 ;
|
||||
te = \\a,st => vp.te ! a ! st ++ "いて" ;
|
||||
a_stem = \\a,st => vp.te ! a ! st ++ "い" ;
|
||||
i_stem = \\a,st => vp.te ! a ! st ++ "い" ;
|
||||
tara = \\a,st => vp.te ! a ! st ++ "いたら" ;
|
||||
ba = \\a,st => vp.te ! a ! st ++ "いれば" ;
|
||||
prep = vp.prep ;
|
||||
obj = vp.obj ;
|
||||
prepositive = vp.prepositive ;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
--# -path=.:../common:../abstract
|
||||
--# -path=.:../abstract:../common:../prelude
|
||||
|
||||
concrete LangJap of Lang =
|
||||
GrammarJap,
|
||||
|
||||
@@ -15,7 +15,10 @@ flags coding = utf8 ;
|
||||
} ;
|
||||
prepositive = cn.prepositive ;
|
||||
needPart = True ;
|
||||
changePolar = False ;
|
||||
changePolar = case det.no of {
|
||||
True => True ;
|
||||
False => False
|
||||
} ;
|
||||
Pron1Sg = False ;
|
||||
anim = cn.anim
|
||||
} ;
|
||||
@@ -42,7 +45,10 @@ flags coding = utf8 ;
|
||||
s = \\st => p.s ++ np.s ! st ;
|
||||
prepositive = np.prepositive ;
|
||||
needPart = np.needPart ;
|
||||
changePolar = np.changePolar ;
|
||||
changePolar = case p.not of {
|
||||
True => True ;
|
||||
False => np.changePolar
|
||||
} ;
|
||||
Pron1Sg = np.Pron1Sg ;
|
||||
anim = np.anim
|
||||
} ;
|
||||
@@ -81,13 +87,13 @@ flags coding = utf8 ;
|
||||
} ;
|
||||
|
||||
DetNP det = {
|
||||
s = \\st => case det.inclCard of {
|
||||
True => det.quant ! st ++ det.num ++ "つ" ++ det.postpositive ;
|
||||
False => det.quant ! st ++ det.num
|
||||
} ;
|
||||
s = det.sp ;
|
||||
prepositive = \\st => [] ;
|
||||
needPart = True ;
|
||||
changePolar = False ;
|
||||
changePolar = case det.no of {
|
||||
True => True ;
|
||||
False => False
|
||||
} ;
|
||||
Pron1Sg = False ;
|
||||
anim = Inanim -- not always, depends on the context
|
||||
} ;
|
||||
@@ -97,7 +103,12 @@ flags coding = utf8 ;
|
||||
postpositive = num.postpositive ;
|
||||
num = num.s ;
|
||||
n = num.n ;
|
||||
inclCard = num.inclCard
|
||||
inclCard = num.inclCard ;
|
||||
sp = \\st => case num.inclCard of {
|
||||
True => quant.s ! st ++ num.s ++ "つ" ++ num.postpositive ;
|
||||
False => quant.sp ! st ++ num.s
|
||||
} ;
|
||||
no = quant.no
|
||||
} ;
|
||||
|
||||
DetQuantOrd quant num ord = {
|
||||
@@ -105,7 +116,12 @@ flags coding = utf8 ;
|
||||
postpositive = num.postpositive ;
|
||||
num = num.s ;
|
||||
n = num.n ;
|
||||
inclCard = num.inclCard
|
||||
inclCard = num.inclCard ;
|
||||
sp = \\st => case num.inclCard of {
|
||||
True => quant.s ! st ++ ord.attr ++ num.s ++ "つ" ++ num.postpositive ;
|
||||
False => quant.s ! st ++ ord.attr ++ num.s
|
||||
} ;
|
||||
no = quant.no
|
||||
} ;
|
||||
|
||||
NumSg = mkNum "" Sg False ;
|
||||
@@ -133,31 +149,34 @@ flags coding = utf8 ;
|
||||
|
||||
OrdDigits d = {
|
||||
pred = \\st,t,p => d.s ++ "番目" ++ mkCopula.s ! st ! t ! p ; -- "banme"
|
||||
attr = d.s ++ "番目の" ;
|
||||
attr = d.s ++ "番目の" ;
|
||||
te = d.s ++ "番目" ++ mkCopula.te ;
|
||||
tara = d.s ++ "番目" ++ mkCopula.tara ;
|
||||
adv = d.s ++ "番目"
|
||||
ba = d.s ++ "番目" ++ mkCopula.ba ;
|
||||
adv = d.s ++ "番目" ;
|
||||
dropNaEnging = d.s ++ "番目の"
|
||||
} ;
|
||||
|
||||
OrdNumeral num = {
|
||||
pred = \\st,t,p => num.s ++ "番目" ++ mkCopula.s ! st ! t ! p ;
|
||||
attr = num.s ++ "番目の" ;
|
||||
te = num.s ++ "番目" ++ mkCopula.te ;
|
||||
tara = num.s ++ "番目" ++ mkCopula.tara ;
|
||||
adv = num.s ++ "番目"
|
||||
ba = num.s ++ "番目" ++ mkCopula.ba ;
|
||||
adv = num.s ++ "番目" ;
|
||||
dropNaEnging = num.s ++ "番目の"
|
||||
} ;
|
||||
|
||||
OrdSuperl a = {
|
||||
pred = \\st,t,p => "一番" ++ a.pred ! st ! t ! p ; -- "ichiban"
|
||||
attr = "一番" ++ a.attr ;
|
||||
te = "一番" ++ a.te ;
|
||||
tara = "一番" ++ a.tara ;
|
||||
adv = "一番" ++ a.adv
|
||||
ba = "一番" ++ a.ba ;
|
||||
adv = "一番" ++ a.adv ;
|
||||
dropNaEnging = "一番" ++ a.dropNaEnging
|
||||
} ;
|
||||
|
||||
IndefArt = {s = \\st => ""} ;
|
||||
IndefArt = {s = \\st => "" ; sp = \\st => "何か" ; no = False} ;
|
||||
|
||||
DefArt = {s = \\st => ""} ;
|
||||
DefArt = {s = \\st => "" ; sp = \\st => "これ" ; no = False} ;
|
||||
|
||||
MassNP cn = {
|
||||
s = \\st => cn.object ! st ++ cn.s ! Pl ! st ;
|
||||
@@ -169,7 +188,8 @@ flags coding = utf8 ;
|
||||
} ;
|
||||
|
||||
PossPron pron = {
|
||||
s = \\st => pron.s ! st ++ "の" ;
|
||||
s, sp = \\st => pron.s ! st ++ "の" ;
|
||||
no = False
|
||||
} ;
|
||||
|
||||
UseN n = {
|
||||
|
||||
@@ -44,7 +44,7 @@ flags coding = utf8 ;
|
||||
|
||||
NoPConj = ss "" ;
|
||||
|
||||
PConjConj conj = {s = conj.pconj} ;
|
||||
PConjConj conj = {s = conj.s} ;
|
||||
|
||||
NoVoc = {s = \\st => [] ; please = False} ;
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ flags coding = utf8 ;
|
||||
QuestIComp icomp np = {
|
||||
s = table {
|
||||
Wa => \\st,t,p => case np.needPart of {
|
||||
True => np.prepositive ! st ++ np.s ! st ++ "わ" ++ icomp.s ! st ++
|
||||
True => np.prepositive ! st ++ np.s ! st ++ "は" ++ icomp.s ! st ++
|
||||
mkCopula.s ! st ! t ! p ;
|
||||
False => np.prepositive ! st ++ np.s ! st ++ icomp.s ! st ++ mkCopula.s ! st ! t ! p
|
||||
} ;
|
||||
|
||||
@@ -11,7 +11,7 @@ flags coding = utf8 ;
|
||||
subj = cl.subj ;
|
||||
pred = \\_,st,t,p => cl.pred ! st ! t ! p ;
|
||||
pred_te = \\a,st => cl.pred_te ! st ;
|
||||
pred_tara = \\a,st => cl.pred_tara ! st ;
|
||||
pred_ba = \\a,st => cl.pred_ba ! st ;
|
||||
missingSubj = False
|
||||
} ;
|
||||
|
||||
@@ -24,7 +24,7 @@ flags coding = utf8 ;
|
||||
subj = \\part,st => vp.prepositive ! st ++ rp.s ! st ;
|
||||
pred = \\a,st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! a ! st ! t ! p ++ rp.prep ;
|
||||
pred_te = \\a,st => vp.obj ! st ++ vp.prep ++ vp.te ! a ! st ++ rp.prep ;
|
||||
pred_tara = \\a,st => vp.obj ! st ++ vp.prep ++ vp.tara ! a ! st ++ rp.prep ;
|
||||
pred_ba = \\a,st => vp.obj ! st ++ vp.prep ++ vp.ba ! a ! st ++ rp.prep ;
|
||||
missingSubj = True
|
||||
} ;
|
||||
|
||||
@@ -35,7 +35,7 @@ flags coding = utf8 ;
|
||||
subj = \\part,st => rp.s ! st ++ clslash.subj ! part ! st ;
|
||||
pred = \\_,st,t,p => clslash.pred ! st ! t ! p ++ rp.prep ;
|
||||
pred_te = \\a,st => clslash.pred_te ! st ++ rp.prep ;
|
||||
pred_tara = \\a,st => clslash.pred_tara ! st ++ rp.prep ;
|
||||
pred_ba = \\a,st => clslash.pred_ba ! st ++ rp.prep ;
|
||||
missingSubj = False
|
||||
} ;
|
||||
|
||||
@@ -45,4 +45,4 @@ flags coding = utf8 ;
|
||||
s = \\st => np.prepositive ! st ++ np.s ! st ;
|
||||
prep = prep.relPrep
|
||||
} ;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,8 @@ param
|
||||
Anteriority = Simul | Anter ;
|
||||
NumeralType = Tens | TensPlus | Other ;
|
||||
ComparSense = Less | More | NoCompar ;
|
||||
ConjType = And | Or | Both ;
|
||||
SubjType = That | If | OtherSubj ;
|
||||
|
||||
oper
|
||||
|
||||
@@ -21,7 +23,7 @@ oper
|
||||
changePolar : Bool ; Pron1Sg : Bool ; anim : Animateness} ;
|
||||
VP : Type = {verb : Animateness => Style => TTense => Polarity => Str ;
|
||||
te : Animateness => Style => Str; a_stem : Animateness => Style => Str ;
|
||||
i_stem : Animateness => Style => Str ; tara : Animateness => Style => Str ;
|
||||
i_stem : Animateness => Style => Str ; ba : Animateness => Style => Str ;
|
||||
prep : Str ; obj : Style => Str ; prepositive : Style => Str ;
|
||||
compar : ComparSense} ;
|
||||
|
||||
@@ -29,23 +31,24 @@ oper
|
||||
counter : Str ; counterReplace : Bool} ;
|
||||
PropNoun : Type = {s : Style => Str ; anim : Animateness} ;
|
||||
Adj : Type = {pred : Style => TTense => Polarity => Str;
|
||||
attr : Str; te : Str ; tara : Str ; adv : Str} ;
|
||||
Adj2 : Type = {pred : Style => TTense => Polarity => Str;
|
||||
attr : Str; te : Str ; tara : Str ; adv : Str ; prep : Str} ;
|
||||
attr : Str; te : Str ; ba : Str ; adv : Str ; dropNaEnging : Str} ;
|
||||
Adj2 : Type = {pred : Style => TTense => Polarity => Str ; attr : Str;
|
||||
te : Str ; ba : Str ; adv : Str ; prep : Str ; dropNaEnging : Str} ;
|
||||
Adverb : Type = {s : Style => Str ; prepositive : Bool ; compar : ComparSense} ;
|
||||
Pronoun : Type = {s : Style => Str ; Pron1Sg : Bool ; anim : Animateness} ;
|
||||
Determiner : Type = {quant : Style => Str ; postpositive : Str ;
|
||||
num : Str ; n : Number ; inclCard : Bool} ;
|
||||
Determiner : Type = {quant : Style => Str ; postpositive : Str ; num : Str ;
|
||||
n : Number ; inclCard : Bool ; sp : Style => Str ; no : Bool} ;
|
||||
Num : Type = {s : Str ; postpositive : Str ; n : Number ; inclCard : Bool} ;
|
||||
Preposition : Type = {s : Str ; relPrep : Str} ;
|
||||
Verb : Type = {s : Style => TTense => Polarity => Str ; te : Str ;
|
||||
a_stem : Str ; i_stem : Str ; tara : Str} ;
|
||||
a_stem : Str ; i_stem : Str ; ba : Str} ;
|
||||
Verb2 : Type = {s : Style => TTense => Polarity => Str ; te : Str ;
|
||||
a_stem : Str ; i_stem : Str ; tara : Str ;
|
||||
a_stem : Str ; i_stem : Str ; ba : Str ;
|
||||
pass : Style => TTense => Polarity => Str ; pass_te : Str ;
|
||||
pass_a_stem : Str ; pass_i_stem : Str ; pass_tara : Str ;
|
||||
pass_a_stem : Str ; pass_i_stem : Str ; pass_ba : Str ;
|
||||
prep : Str} ;
|
||||
Conjunction : Type = {s : Str ; pconj : Str ; disj : Bool} ;
|
||||
Conjunction : Type = {s : Str ; null : Str ; type : ConjType} ;
|
||||
Subjunction : Type = {s : Str ; type : SubjType} ;
|
||||
|
||||
mkNoun : Str -> Str -> Str -> Str -> Animateness -> Str -> Bool -> Noun =
|
||||
\man1,man2,man3,man4,a,c,b -> {
|
||||
@@ -70,7 +73,7 @@ oper
|
||||
mkNoun kane okane kane okane a c b ;
|
||||
|
||||
regAdj : Str -> Adj = \a -> case a of {
|
||||
chiisa + "い" => i_mkAdj a ;
|
||||
chiisa + "い" => i_mkAdj a ;
|
||||
ooki + ("な"|"の") => na_mkAdj a
|
||||
} ;
|
||||
|
||||
@@ -113,8 +116,9 @@ oper
|
||||
} ;
|
||||
attr = chiisai ;
|
||||
te = chiisa + "くて" ;
|
||||
tara = chiisa + "かったら" ;
|
||||
adv = chiisa + "く"
|
||||
ba = chiisa + "ければ" ;
|
||||
adv = chiisa + "く" ;
|
||||
dropNaEnging = chiisai
|
||||
} ;
|
||||
|
||||
na_mkAdj : Str -> Adj = \ookina ->
|
||||
@@ -153,8 +157,9 @@ oper
|
||||
} ;
|
||||
attr = ookina ;
|
||||
te = ooki + "で" ;
|
||||
tara = ooki + "だったら" ;
|
||||
adv = ooki + "に"
|
||||
ba = ooki + "であれば" ;
|
||||
adv = ooki + "に" ;
|
||||
dropNaEnging = ooki
|
||||
} ;
|
||||
|
||||
VerbalA : Str -> Str -> Adj = \kekkonshiteiru,kikonno ->
|
||||
@@ -193,8 +198,9 @@ oper
|
||||
} ;
|
||||
attr = kikonno ;
|
||||
te = kekkonshite + "いて" ;
|
||||
tara = kekkonshite + "いたら" ;
|
||||
adv = kekkonshite + "に"
|
||||
ba = kekkonshite + "いれば" ;
|
||||
adv = init kikonno + "で" ;
|
||||
dropNaEnging = init kikonno
|
||||
} ;
|
||||
|
||||
mkVerb : Str -> Str -> Str -> Str -> Verb =
|
||||
@@ -237,55 +243,21 @@ oper
|
||||
} ;
|
||||
a_stem = yoma ;
|
||||
i_stem = yomi ;
|
||||
tara = yomi + "たら"
|
||||
ba = mkBaForm yomu
|
||||
} ;
|
||||
|
||||
mkVerb2 : Str -> Str -> Str -> Str -> Str -> Verb2 =
|
||||
\yoma,yomi,yomu,yonda,p ->
|
||||
let yon = init yonda ;
|
||||
in {
|
||||
s = table {
|
||||
Resp => table {
|
||||
TPres => table {
|
||||
Pos => yomi + "ます" ;
|
||||
Neg => yomi + "ません"
|
||||
} ;
|
||||
TPast => table {
|
||||
Pos => yomi + "ました" ;
|
||||
Neg => yomi + "ませんでした"
|
||||
} ;
|
||||
TFut => table {
|
||||
Pos => yomi + "ます" ;
|
||||
Neg => yomi + "ません"
|
||||
}
|
||||
} ;
|
||||
Plain => table {
|
||||
TPres => table {
|
||||
Pos => yomu ;
|
||||
Neg => yoma + "ない"
|
||||
} ;
|
||||
TPast => table {
|
||||
Pos => yonda ;
|
||||
Neg => yoma + "なかった"
|
||||
} ;
|
||||
TFut => table {
|
||||
Pos => yomu ;
|
||||
Neg => yoma + "ない"
|
||||
}
|
||||
}
|
||||
} ;
|
||||
te = case yonda of {
|
||||
yon + "だ" => yon + "で" ;
|
||||
yon + "た" => yon + "て"
|
||||
} ;
|
||||
a_stem = yoma ;
|
||||
i_stem = yomi ;
|
||||
tara = yomi + "たら" ;
|
||||
prep = p ;
|
||||
pass = table {
|
||||
Resp => table {
|
||||
TPres => table {
|
||||
Pos => case yomu of {
|
||||
\yoma,yomi,yomu,yonda,p -> {
|
||||
s = (mkVerb yoma yomi yomu yonda).s ;
|
||||
te = (mkVerb yoma yomi yomu yonda).te ;
|
||||
a_stem = yoma ;
|
||||
i_stem = yomi ;
|
||||
ba = mkBaForm yomu ;
|
||||
prep = p ;
|
||||
pass = table {
|
||||
Resp => table {
|
||||
TPres => table {
|
||||
Pos => case yomu of {
|
||||
x + "する" => x + "されます" ;
|
||||
_ => yoma + "れます"
|
||||
} ;
|
||||
@@ -360,9 +332,9 @@ oper
|
||||
x + "する" => x + "され" ;
|
||||
_ => yoma + "れ"
|
||||
} ;
|
||||
pass_tara = case yomu of {
|
||||
x + "する" => x + "されたら" ;
|
||||
_ => yoma + "れたら"
|
||||
pass_ba = case yomu of {
|
||||
x + "する" => x + "されれば" ;
|
||||
_ => yoma + "れれば"
|
||||
}
|
||||
} ;
|
||||
|
||||
@@ -400,7 +372,7 @@ oper
|
||||
te = "だって" ;
|
||||
a_stem = "で" ;
|
||||
i_stem = "で" ;
|
||||
tara = "だったら"
|
||||
ba = "であれば"
|
||||
} ;
|
||||
|
||||
mkExistV : VP = {
|
||||
@@ -420,9 +392,9 @@ oper
|
||||
Anim => \\st => "い" ;
|
||||
Inanim => \\st => "あり"
|
||||
} ;
|
||||
tara = table {
|
||||
Anim => \\st => "いたら" ;
|
||||
Inanim => \\st => "あったら"
|
||||
ba = table {
|
||||
Anim => \\st => "いれば" ;
|
||||
Inanim => \\st => "あれば"
|
||||
} ;
|
||||
prep = [] ;
|
||||
prepositive, obj = \\st => [] ;
|
||||
@@ -442,12 +414,14 @@ oper
|
||||
anim = a
|
||||
} ;
|
||||
|
||||
mkDet : Str -> Number -> Determiner = \q,n -> {
|
||||
mkDet : Str -> Str -> Number -> Determiner = \q,sp,n -> {
|
||||
quant = \\st => q ;
|
||||
postpositive = [] ;
|
||||
num = [] ;
|
||||
n = n ;
|
||||
inclCard = False
|
||||
inclCard = False ;
|
||||
sp = \\st => sp ;
|
||||
no = False
|
||||
} ;
|
||||
|
||||
stylePron : Str -> Str -> Bool -> Animateness -> Pronoun = \boku,watashi,b,a -> {
|
||||
@@ -490,10 +464,10 @@ oper
|
||||
anim = a
|
||||
} ;
|
||||
|
||||
mkConj : Str -> Str -> Bool -> Conjunction = \c,p,b -> {
|
||||
mkConj : Str -> ConjType -> Conjunction = \c,t -> {
|
||||
s = c ;
|
||||
pconj = p ;
|
||||
disj = b
|
||||
null = "" ;
|
||||
type = t
|
||||
} ;
|
||||
|
||||
mkPrep : Str -> Str -> Preposition = \p,r -> {
|
||||
@@ -501,5 +475,22 @@ oper
|
||||
relPrep = r ;
|
||||
} ;
|
||||
|
||||
mkSubj : Str -> SubjType -> Subjunction = \s,t -> {
|
||||
s = s ;
|
||||
type = t ;
|
||||
} ;
|
||||
|
||||
mkBaForm : Str -> Str = \neru ->
|
||||
case last neru of {
|
||||
"る" => init neru + "れば" ;
|
||||
"す" => init neru + "せば" ;
|
||||
"く" => init neru + "けば" ;
|
||||
"ぐ" => init neru + "げば" ;
|
||||
"む" => init neru + "めば" ;
|
||||
"ぬ" => init neru + "ねば" ;
|
||||
"ぶ" => init neru + "べば" ;
|
||||
"つ" => init neru + "てば" ;
|
||||
_ => init neru + "えば"
|
||||
} ;
|
||||
}
|
||||
|
||||
|
||||
@@ -19,11 +19,11 @@ flags coding = utf8 ;
|
||||
Ga => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "のほうが" ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.te ! np.anim ! st
|
||||
} ;
|
||||
tara = table {
|
||||
ba = table {
|
||||
Wa => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "は" ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.tara ! np.anim ! st ;
|
||||
vp.obj ! st ++ vp.prep ++ vp.ba ! np.anim ! st ;
|
||||
Ga => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "のほうが" ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.tara ! np.anim ! st
|
||||
vp.obj ! st ++ vp.prep ++ vp.ba ! np.anim ! st
|
||||
} ;
|
||||
subj = table {
|
||||
Wa => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "は" ;
|
||||
@@ -31,7 +31,7 @@ flags coding = utf8 ;
|
||||
} ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! np.anim ! st ! t ! p ;
|
||||
pred_te = \\st => vp.obj ! st ++ vp.prep ++ vp.te ! np.anim ! st ;
|
||||
pred_tara = \\st => vp.obj ! st ++ vp.prep ++ vp.tara ! np.anim ! st ;
|
||||
pred_ba = \\st => vp.obj ! st ++ vp.prep ++ vp.ba ! np.anim ! st ;
|
||||
changePolar = np.changePolar
|
||||
} ;
|
||||
Less => {
|
||||
@@ -39,12 +39,12 @@ flags coding = utf8 ;
|
||||
"より" ++ vp.obj ! st ++ vp.prep ++ vp.verb ! np.anim ! st ! t ! p ;
|
||||
te = \\part,st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "より"
|
||||
++ vp.obj ! st ++ vp.prep ++ vp.te ! np.anim ! st ;
|
||||
tara = \\part,st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++
|
||||
"より" ++ vp.obj ! st ++ vp.prep ++ vp.tara ! np.anim ! st ;
|
||||
ba = \\part,st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++
|
||||
"より" ++ vp.obj ! st ++ vp.prep ++ vp.ba ! np.anim ! st ;
|
||||
subj = \\part,st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "より" ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! np.anim ! st ! t ! p ;
|
||||
pred_te = \\st => vp.obj ! st ++ vp.prep ++ vp.te ! np.anim ! st ;
|
||||
pred_tara = \\st => vp.obj ! st ++ vp.prep ++ vp.tara ! np.anim ! st ;
|
||||
pred_ba = \\st => vp.obj ! st ++ vp.prep ++ vp.ba ! np.anim ! st ;
|
||||
changePolar = np.changePolar
|
||||
} ;
|
||||
NoCompar => case np.needPart of {
|
||||
@@ -61,11 +61,11 @@ flags coding = utf8 ;
|
||||
Ga => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "が" ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.te ! np.anim ! st
|
||||
} ;
|
||||
tara = table {
|
||||
ba = table {
|
||||
Wa => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "は" ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.tara ! np.anim ! st ;
|
||||
vp.obj ! st ++ vp.prep ++ vp.ba ! np.anim ! st ;
|
||||
Ga => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "が" ++
|
||||
vp.obj ! st ++ vp.prep ++ vp.tara ! np.anim ! st
|
||||
vp.obj ! st ++ vp.prep ++ vp.ba ! np.anim ! st
|
||||
} ;
|
||||
subj = table {
|
||||
Wa => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ "は" ;
|
||||
@@ -73,7 +73,7 @@ flags coding = utf8 ;
|
||||
} ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! np.anim ! st ! t ! p ;
|
||||
pred_te = \\st => vp.obj ! st ++ vp.prep ++ vp.te ! np.anim ! st ;
|
||||
pred_tara = \\st => vp.obj ! st ++ vp.prep ++ vp.tara ! np.anim ! st ;
|
||||
pred_ba = \\st => vp.obj ! st ++ vp.prep ++ vp.ba ! np.anim ! st ;
|
||||
changePolar = np.changePolar
|
||||
} ;
|
||||
False => {
|
||||
@@ -89,16 +89,16 @@ flags coding = utf8 ;
|
||||
Ga => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! np.anim ! st
|
||||
} ;
|
||||
tara = table {
|
||||
ba = table {
|
||||
Wa => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.tara ! np.anim ! st ;
|
||||
vp.prep ++ vp.ba ! np.anim ! st ;
|
||||
Ga => \\st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.tara ! np.anim ! st
|
||||
vp.prep ++ vp.ba ! np.anim ! st
|
||||
} ;
|
||||
subj = \\part,st => np.prepositive ! st ++ vp.prepositive ! st ++ np.s ! st ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! np.anim ! st ! t ! p ;
|
||||
pred_te = \\st => vp.obj ! st ++ vp.prep ++ vp.te ! np.anim ! st ;
|
||||
pred_tara = \\st => vp.obj ! st ++ vp.prep ++ vp.tara ! np.anim ! st ;
|
||||
pred_ba = \\st => vp.obj ! st ++ vp.prep ++ vp.ba ! np.anim ! st ;
|
||||
changePolar = np.changePolar
|
||||
}
|
||||
}
|
||||
@@ -118,11 +118,11 @@ flags coding = utf8 ;
|
||||
Ga => \\st => sc.s ! Ga ! st ++ "ことが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! Inanim ! st
|
||||
} ;
|
||||
tara = table {
|
||||
ba = table {
|
||||
Wa => \\st => sc.s ! Wa ! st ++ "ことは" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.tara ! Inanim ! st ;
|
||||
vp.prep ++ vp.ba ! Inanim ! st ;
|
||||
Ga => \\st => sc.s ! Ga ! st ++ "ことが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.tara ! Inanim ! st
|
||||
vp.prep ++ vp.ba ! Inanim ! st
|
||||
} ;
|
||||
subj = table {
|
||||
Wa => \\st => sc.s ! Wa ! st ++ "ことは" ;
|
||||
@@ -130,7 +130,7 @@ flags coding = utf8 ;
|
||||
} ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! Inanim ! st ! t ! p ;
|
||||
pred_te = \\st => vp.obj ! st ++ vp.prep ++ vp.te ! Inanim ! st ;
|
||||
pred_tara = \\st => vp.obj ! st ++ vp.prep ++ vp.tara ! Inanim ! st ;
|
||||
pred_ba = \\st => vp.obj ! st ++ vp.prep ++ vp.ba ! Inanim ! st ;
|
||||
changePolar = False
|
||||
} ;
|
||||
False => {
|
||||
@@ -146,11 +146,11 @@ flags coding = utf8 ;
|
||||
Ga => \\st => sc.s ! Ga ! st ++ "ことが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.te ! Inanim ! st
|
||||
} ;
|
||||
tara = table {
|
||||
ba = table {
|
||||
Wa => \\st => sc.s ! Wa ! st ++ "ことが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.tara ! Inanim ! st ;
|
||||
vp.prep ++ vp.ba ! Inanim ! st ;
|
||||
Ga => \\st => sc.s ! Ga ! st ++ "ことが" ++ vp.obj ! st ++
|
||||
vp.prep ++ vp.tara ! Inanim ! st
|
||||
vp.prep ++ vp.ba ! Inanim ! st
|
||||
} ;
|
||||
subj = table {
|
||||
Wa => \\st => sc.s ! Wa ! st ++ "ことが" ;
|
||||
@@ -158,7 +158,7 @@ flags coding = utf8 ;
|
||||
} ;
|
||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! Inanim ! st ! t ! p ;
|
||||
pred_te = \\st => vp.obj ! st ++ vp.prep ++ vp.te ! Inanim ! st ;
|
||||
pred_tara = \\st => vp.obj ! st ++ vp.prep ++ vp.tara ! Inanim ! st ;
|
||||
pred_ba = \\st => vp.obj ! st ++ vp.prep ++ vp.ba ! Inanim ! st ;
|
||||
changePolar = False
|
||||
}
|
||||
} ;
|
||||
@@ -168,37 +168,37 @@ flags coding = utf8 ;
|
||||
vpslash.obj ! st ++ vpslash.prep ++ vpslash.s ! Plain ! t ! p ;
|
||||
te = \\st => vpslash.prepositive ! st ++ np.prepositive ! st ++ np.s ! st ++ "が" ++
|
||||
vpslash.obj ! st ++ vpslash.prep ++ vpslash.te ;
|
||||
tara = \\st => vpslash.prepositive ! st ++ np.prepositive ! st ++ np.s ! st ++ "が" ++
|
||||
vpslash.obj ! st ++ vpslash.prep ++ vpslash.tara ;
|
||||
ba = \\st => vpslash.prepositive ! st ++ np.prepositive ! st ++ np.s ! st ++ "が" ++
|
||||
vpslash.obj ! st ++ vpslash.prep ++ vpslash.ba ;
|
||||
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 ! st ! t ! p ;
|
||||
pred_te = \\st => vpslash.obj ! st ++ vpslash.prep ++ vpslash.te ;
|
||||
pred_tara = \\st => vpslash.obj ! st ++ vpslash.tara ;
|
||||
pred_ba = \\st => vpslash.obj ! st ++ vpslash.ba ;
|
||||
changePolar = np.changePolar
|
||||
} ;
|
||||
|
||||
AdvSlash clslash adv = {
|
||||
s = \\st,t,p => adv.s ! st ++ clslash.s ! st ! t ! p ;
|
||||
te = \\st => adv.s ! st ++ clslash.te ! st ;
|
||||
tara = \\st => adv.s ! st ++ clslash.tara ! st ;
|
||||
ba = \\st => adv.s ! st ++ clslash.ba ! st ;
|
||||
subj = \\part,st => adv.s ! st ++ clslash.subj ! part ! st ;
|
||||
pred = clslash.pred ;
|
||||
pred_te = clslash.pred_te ;
|
||||
pred_tara = clslash.pred_tara ;
|
||||
pred_ba = clslash.pred_ba ;
|
||||
changePolar = clslash.changePolar
|
||||
} ;
|
||||
|
||||
SlashPrep cl prep = {
|
||||
s = \\st,t,p => cl.s ! Ga ! st ! t ! p ++ prep.relPrep ;
|
||||
te = \\st => cl.te ! Ga ! st ++ prep.relPrep ;
|
||||
tara = \\st => cl.tara ! Ga ! st ++ prep.relPrep ;
|
||||
ba = \\st => cl.ba ! Ga ! st ++ prep.relPrep ;
|
||||
subj = cl.subj ;
|
||||
pred = \\st,t,p => cl.pred ! st ! t ! p ++ prep.relPrep ;
|
||||
pred_te = \\st => cl.pred_te ! st ++ prep.relPrep ;
|
||||
pred_tara = \\st => cl.pred_tara ! st ++ prep.relPrep ;
|
||||
pred_ba = \\st => cl.pred_ba ! st ++ prep.relPrep ;
|
||||
changePolar = cl.changePolar
|
||||
} ;
|
||||
|
||||
@@ -206,15 +206,15 @@ flags coding = utf8 ;
|
||||
s = \\st,t,p => np.prepositive ! st ++ np.s ! st ++ "が" ++ sslash.s ! st ++
|
||||
vs.prep ++ vs.s ! Plain ! t ! p ;
|
||||
te = \\st => np.prepositive ! st ++ np.s ! st ++ "が" ++ sslash.s ! st ++ vs.prep ++ vs.te ;
|
||||
tara = \\st => np.prepositive ! st ++ np.s ! st ++ "が" ++ sslash.s ! st ++
|
||||
vs.prep ++ vs.tara ;
|
||||
ba = \\st => np.prepositive ! st ++ np.s ! st ++ "が" ++ sslash.s ! st ++
|
||||
vs.prep ++ vs.ba ;
|
||||
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 => sslash.s ! st ++ vs.prep ++ vs.te ;
|
||||
pred_tara = \\st => sslash.s ! st ++ vs.prep ++ vs.tara ;
|
||||
pred_ba = \\st => sslash.s ! st ++ vs.prep ++ vs.ba ;
|
||||
changePolar = np.changePolar
|
||||
} ;
|
||||
|
||||
@@ -263,7 +263,7 @@ flags coding = utf8 ;
|
||||
}
|
||||
} ;
|
||||
te = \\part,st => t.s ++ p.s ++ cl.te ! part ! st ;
|
||||
tara = \\part,st => t.s ++ p.s ++ cl.tara ! part ! st ;
|
||||
ba = \\part,st => t.s ++ p.s ++ cl.ba ! part ! st ;
|
||||
subj = cl.subj ;
|
||||
pred = \\st => case t.a of {
|
||||
Simul => case cl.changePolar of {
|
||||
@@ -284,7 +284,9 @@ flags coding = utf8 ;
|
||||
True => t.s ++ p.s ++ cl.pred ! st ! TPres ! Neg
|
||||
}
|
||||
}
|
||||
}
|
||||
} ;
|
||||
pred_te = cl.pred_te ;
|
||||
pred_ba = cl.pred_ba
|
||||
} ;
|
||||
|
||||
UseQCl t p cl = {
|
||||
@@ -331,7 +333,7 @@ flags coding = utf8 ;
|
||||
}
|
||||
}
|
||||
} ;
|
||||
te = \\a,st => rcl.te ! a ! st ;
|
||||
te = \\a,st => t.s ++ p.s ++ rcl.te ! a ! st ;
|
||||
subj = rcl.subj ;
|
||||
pred = \\a,st => case t.a of {
|
||||
Simul => case rcl.changePolar of {
|
||||
@@ -354,7 +356,7 @@ flags coding = utf8 ;
|
||||
}
|
||||
} ;
|
||||
pred_te = \\a,st => t.s ++ p.s ++ rcl.pred_te ! a ! st ;
|
||||
pred_tara = \\a,st => t.s ++ p.s ++ rcl.pred_tara ! a ! st ;
|
||||
pred_ba = \\a,st => t.s ++ p.s ++ rcl.pred_ba ! a ! st ;
|
||||
missingSubj = rcl.missingSubj
|
||||
} ;
|
||||
|
||||
@@ -385,33 +387,53 @@ flags coding = utf8 ;
|
||||
AdvS adv s = {
|
||||
s = \\part,st => adv.s ! st ++ s.s ! part ! st ;
|
||||
te = \\part,st => adv.s ! st ++ s.te ! part ! st ;
|
||||
tara = \\part,st => adv.s ! st ++ s.tara ! 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 = 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 ;
|
||||
tara = \\part,st => adv.s ! st ++ "," ++ s.tara ! 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 = s.pred ;
|
||||
pred_te = s.pred_te ;
|
||||
pred_ba = s.pred_ba
|
||||
} ;
|
||||
|
||||
SSubjS s1 subj s2 = case subj.when of {
|
||||
True => {
|
||||
s = \\part,st => s1.tara ! part ! st ++ subj.s ++ s2.s ! Ga ! st ;
|
||||
te = \\part,st => s1.tara ! part ! st ++ subj.s ++ s2.te ! Ga ! st ;
|
||||
tara = \\part,st => s1.tara ! part ! st ++ subj.s ++ s2.tara ! Ga ! st ;
|
||||
subj = \\part,st => s1.tara ! part ! st ++ subj.s ++ s2.subj ! Ga ! st ;
|
||||
pred = s2.pred
|
||||
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
|
||||
} ;
|
||||
False => {
|
||||
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 ;
|
||||
tara = \\part,st => s1.s ! part ! Plain ++ subj.s ++ s2.tara ! 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 = s2.pred ;
|
||||
pred_te = s2.pred_te ;
|
||||
pred_ba = s2.pred_ba
|
||||
}
|
||||
} ;
|
||||
|
||||
@@ -421,11 +443,13 @@ flags coding = utf8 ;
|
||||
"ことが" ++ rs.pred ! Inanim ! st ;
|
||||
te = \\part,st => rs.subj ! part ! st ++ sent.subj ! Ga ! st ++ sent.pred ! Plain ++
|
||||
"ことが" ++ rs.pred_te ! Inanim ! st ;
|
||||
tara = \\part,st => rs.subj ! part ! st ++ sent.subj ! Ga ! st ++ sent.pred ! Plain ++
|
||||
"ことが" ++ rs.pred_tara ! 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 = \\st => rs.pred ! Inanim ! st ;
|
||||
pred_te = \\st => rs.pred_te ! Inanim ! st ;
|
||||
pred_ba = \\st => rs.pred_ba ! Inanim ! st
|
||||
} ;
|
||||
False => {
|
||||
s = table {
|
||||
@@ -440,15 +464,19 @@ flags coding = utf8 ;
|
||||
Ga => \\st => rs.subj ! Ga ! st ++ sent.subj ! Ga ! st ++ sent.pred ! Plain ++
|
||||
"ことを" ++ rs.pred_te ! Inanim ! st
|
||||
} ;
|
||||
tara = table {
|
||||
ba = table {
|
||||
Wa => \\st => rs.subj ! Wa ! st ++ sent.subj ! Ga ! st ++ sent.pred ! Plain ++
|
||||
"ことを" ++ rs.pred_tara ! Inanim ! st ;
|
||||
"ことを" ++ rs.pred_ba ! Inanim ! st ;
|
||||
Ga => \\st => rs.subj ! Ga ! st ++ sent.subj ! Ga ! st ++ sent.pred ! Plain ++
|
||||
"ことを" ++ rs.pred_tara ! Inanim ! st
|
||||
"ことを" ++ 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
|
||||
}
|
||||
} ;
|
||||
}
|
||||
|
||||
@@ -6,32 +6,35 @@ flags coding = utf8 ;
|
||||
|
||||
above_Prep = mkPrep "の上に" "上に" ; -- "noueni" "ueni"
|
||||
after_Prep = mkPrep "の後に" "後" ; -- "noatoni" "ato"
|
||||
all_Predet = ss "全部" ; -- "zembu"
|
||||
almost_AdA = ss "殆ど" ; -- "hotondo" ;
|
||||
although_Subj = {s = "のに" ; when = False} ;
|
||||
all_Predet = {s = "全部" ; not = False} ;
|
||||
almost_AdA = ss "殆ど" ; -- "hotondo"
|
||||
almost_AdN = {s = "殆ど" ; postposition = False} ;
|
||||
although_Subj = mkSubj "のに" OtherSubj ;
|
||||
always_AdV = ss "いつも" ;
|
||||
and_Conj = mkConj "と" "そして" False ;
|
||||
because_Subj = {s = "から" ; when = False} ;
|
||||
and_Conj = mkConj "そして" And ;
|
||||
because_Subj = mkSubj "から" OtherSubj ;
|
||||
before_Prep = mkPrep "の前に" "前に" ; -- "nomaeni" "maeni"
|
||||
behind_Prep = mkPrep "後ろに" "後ろに" ; -- "ushironi" "ushironi"
|
||||
between_Prep = mkPrep "の間に" "間に" ; -- "noaidani" "aidani"
|
||||
both7and_DConj = mkConj "そして" Both ;
|
||||
by8agent_Prep = mkPrep "に" "" ;
|
||||
by8means_Prep = mkPrep "によって" "" ;
|
||||
but_PConj = ss "けれども" ;
|
||||
can8know_VV = mkVerb "でき" "でき" "できる" "できた" ** {sense = Abil} ;
|
||||
can_VV = can8know_VV ;
|
||||
during_Prep = mkPrep "の間に" "" ; -- "noaidani"
|
||||
every_Det = mkDet "各自の" Sg ; -- "kakujino"
|
||||
either7or_DConj = mkConj "それとも" Or ;
|
||||
every_Det = mkDet "全ての" "全て" Sg ; -- "subeteno"
|
||||
everybody_NP = mkNP "皆" True False Anim ; -- "minna"
|
||||
everything_NP = mkNP "全て" True False Inanim ; -- "subete"
|
||||
everywhere_Adv = mkAdv "どこでも" ; -- "dokodemo" ;
|
||||
first_Ord = {pred = \\st,t,p => "一番目" ++ mkCopula.s ! st ! t ! p ;
|
||||
attr = "一番目の" ; te = "一番目" ++ mkCopula.te ;
|
||||
tara = "一番目" ++ mkCopula.tara ; adv = "一番目"} ; -- "ichibanme"
|
||||
few_Det = mkDet "少数" Pl ; -- "shoosuuno"
|
||||
ba = "一番目" ++ mkCopula.ba ; adv = "一番目" ;
|
||||
dropNaEnging = "一番目"} ;
|
||||
few_Det = mkDet "少数の" "少数" Pl ; -- "shoosuuno"
|
||||
for_Prep = mkPrep "のために" "" ;
|
||||
from_Prep = mkPrep "から" "から" ;
|
||||
from_Prep = mkPrep "から" "" ;
|
||||
he_Pron = mkPron "彼" False Anim ; -- "kare"
|
||||
here_Adv = mkAdv "ここで" ;
|
||||
here7to_Adv = mkAdv "ここに" ;
|
||||
@@ -40,51 +43,54 @@ flags coding = utf8 ;
|
||||
how8many_IDet = {s = "いくつ" ; n = Pl ; how8many = True ; inclCard = False} ;
|
||||
how8much_IAdv = {s = \\st => "いくら" ; particle = ""} ;
|
||||
i_Pron = mkPron ("僕"|"私") "私" True Anim ; -- "boku"|"watashi"
|
||||
if_Subj = mkSubj "" If ;
|
||||
in8front_Prep = mkPrep "の前に" "前に" ; -- "nomaeni" "maeni"
|
||||
in_Prep = mkPrep "に" "" ;
|
||||
it_Pron = mkPron "それ" False Inanim ;
|
||||
less_CAdv = {s = "のほうが" ; compar = Less} ;
|
||||
many_Det = mkDet "多くの" Pl ; -- "ookuno"
|
||||
more_CAdv = {s = "より" ; compar = More} ; -- "yori"
|
||||
most_Predet = ss "ほとんどの" ;
|
||||
much_Det = mkDet "多くの" Sg ; -- "ookuno"
|
||||
must_VV = {s = (mkVerb "なら" "なり" "なる" "なった").s ; te = "なって" ;
|
||||
tara = "なったら" ; a_stem = "なら" ; i_stem = "なり" ; sense = Oblig} ;
|
||||
many_Det = mkDet "多くの" "多く" Pl ; -- "ookuno"
|
||||
more_CAdv = {s = "より" ; compar = More} ;
|
||||
most_Predet = {s = "ほとんどの" ; not = False} ;
|
||||
much_Det = mkDet "多くの" "多量" Sg ; -- "ookuno" "taryou"
|
||||
must_VV = {s = (mkVerb "なら" "なり" "なる" "なった").s ; te = "ならなくて" ;
|
||||
ba = "ならなければ" ; a_stem = "なら" ; i_stem = "なり" ; sense = Oblig} ;
|
||||
no_Phr = ss "いいえ" ;
|
||||
no_Utt = {s = \\st => "いいえ"} ;
|
||||
on_Prep = mkPrep "の上に" "" ;
|
||||
only_Predet = ss "ほんの" ;
|
||||
or_Conj = mkConj "か" "それとも" True ;
|
||||
only_Predet = {s = "ほんの" ; not = False} ;
|
||||
or_Conj = mkConj "それとも" Or ;
|
||||
otherwise_PConj = ss "そうしなければ" ;
|
||||
part_Prep = mkPrep "の" "" ;
|
||||
please_Voc = {s = table {Resp => "ください" ; Plain => "" } ; please = True} ;
|
||||
possess_Prep = mkPrep "の" "" ;
|
||||
quite_Adv = ss "可成" ;
|
||||
quite_Adv = ss "可成" ; -- "kanari"
|
||||
she_Pron = mkPron "彼女" False Anim ; -- "kanojo"
|
||||
so_AdA = ss "非常に" ; -- "hijooni"
|
||||
someSg_Det = mkDet "多少の" Sg ; -- "tashoono"
|
||||
somePl_Det = mkDet "いくつかの" Pl ;
|
||||
someSg_Det = mkDet "多少の" "幾らか" Sg ; -- "tashoono" "ikuraka"
|
||||
somePl_Det = mkDet "いくつかの" "幾らか" Pl ; -- "ikuraka"
|
||||
somebody_NP = mkNP "誰か" False False Anim ; -- "dareka"
|
||||
something_NP = mkNP "何か" False False Inanim ; -- "nanika"
|
||||
somewhere_Adv = mkAdv "どこかに" ;
|
||||
that_Quant = {s = \\st => "その"} ;
|
||||
that_Quant = {s = \\st => "その" ; sp = \\st => "それ" ; no = False} ;
|
||||
that_Subj = mkSubj "ことを" That ;
|
||||
there_Adv = mkAdv "そこに" ;
|
||||
there7to_Adv = mkAdv "そこに" ;
|
||||
there7from_Adv = mkAdv "そこから" ;
|
||||
therefore_PConj = ss "それで" ;
|
||||
they_Pron = mkPron "彼ら" "あの人達" False Anim ; -- "karera" "ano hito-tachi"
|
||||
this_Quant = {s = \\st => "この"} ;
|
||||
this_Quant = {s = \\st => "この" ; sp = \\st => "これ" ; no = False} ;
|
||||
through_Prep = mkPrep "を通じて" "通じて" ; -- "otsuujite"
|
||||
to_Prep = mkPrep "に" "" ;
|
||||
too_AdA = ss "あまりにも" ;
|
||||
under_Prep = mkPrep "の下に" "下に" ; -- "noshitani"
|
||||
very_AdA = ss "とても" ;
|
||||
want_VV = {s = (mkVerb "い" "い" "いる" "いった").s ; te = "いって" ;
|
||||
tara = "いったら" ; a_stem = "い" ; i_stem = "い" ; sense = Wish} ;
|
||||
want_VV = {s = (mkVerb "い" "い" "いる" "いった").s ; te = "いって" ;
|
||||
ba = "いれば" ; a_stem = "い" ; i_stem = "い" ; sense = Wish} ;
|
||||
we_Pron = mkPron "私達" False Anim ; -- "watashitachi"
|
||||
whatPl_IP = {s = \\st => "何" ; anim = Inanim ; how8many = False} ; -- "nani"
|
||||
whatSg_IP = {s = \\st => "何" ; anim = Inanim ; how8many = False} ;
|
||||
when_IAdv = {s = \\st => "いつ" ; particle = ""} ;
|
||||
when_Subj = {s = [] ; when = True} ;
|
||||
when_Subj = mkSubj "と" OtherSubj ;
|
||||
where_IAdv = {s = \\st => "どこ" ; particle = "で"} ;
|
||||
which_IQuant = ss "どの" ;
|
||||
whoPl_IP = {s = \\st => "誰" ; anim = Anim ; how8many = False} ;
|
||||
@@ -98,6 +104,8 @@ flags coding = utf8 ;
|
||||
youPl_Pron = mkPron "あなた達" "あなた方" False Anim ; -- "anatatachi" "anatagata"
|
||||
youPol_Pron = mkPron "あなた" False Anim ;
|
||||
|
||||
no_Quant = {s = \\st => "" ; sp = \\st => "何も" ; no = True} ;
|
||||
not_Predet = {s = "" ; not = True} ;
|
||||
at_least_AdN = {s = "少なくとも" ; postposition = False} ; -- "sukunakutomo"
|
||||
at_most_AdN = {s = "せいぜい" ; postposition = False} ;
|
||||
nobody_NP = mkNP "誰も" False True Anim ;
|
||||
@@ -105,4 +113,8 @@ flags coding = utf8 ;
|
||||
except_Prep = mkPrep "を除いて" "を除いて" ; -- "onozoite"
|
||||
|
||||
as_CAdv = {s = "と同じぐらい" ; compar = NoCompar} ; -- "toonajigurai"
|
||||
|
||||
have_V2 = mkV2 "持ってい" "持ってい" "持っている" "持っていた" "を" ;
|
||||
|
||||
language_title_Utt = {s = \\st => "日本語"} ; -- "nihongo"
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
te = \\a,st => v.te ;
|
||||
a_stem = \\a,st => v.a_stem ;
|
||||
i_stem = \\a,st => v.i_stem ;
|
||||
tara = \\a,st => v.tara ;
|
||||
ba = \\a,st => v.ba ;
|
||||
prep = [] ;
|
||||
obj = \\st => [] ;
|
||||
prepositive = \\st => [] ;
|
||||
@@ -23,18 +23,18 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
te = \\a,st => vp.verb ! Anim ! Plain ! TPres ! ResJap.Pos ++ "ことが" ++ v.te ;
|
||||
a_stem = \\a,st => vp.verb ! Anim ! Plain ! TPres ! ResJap.Pos ++ "ことが" ++ v.a_stem ;
|
||||
i_stem = \\a,st => vp.verb ! Anim ! Plain ! TPres ! ResJap.Pos ++ "ことが" ++ v.i_stem ;
|
||||
tara = \\a,st => vp.verb ! Anim ! Plain ! TPres ! ResJap.Pos ++ "ことが" ++ v.tara ;
|
||||
ba = \\a,st => vp.verb ! Anim ! Plain ! TPres ! ResJap.Pos ++ "ことが" ++ v.ba ;
|
||||
prep = vp.prep ;
|
||||
obj = \\st => vp.obj ! st ;
|
||||
prepositive = vp.prepositive ;
|
||||
compar = NoCompar
|
||||
} ;
|
||||
Oblig => {
|
||||
verb = \\a,st,t,p => vp.a_stem ! Anim ! st ++ "なければ" ++ v.s ! st ! t ! p ;
|
||||
verb = \\a,st,t,p => vp.a_stem ! Anim ! st ++ "なければ" ++ v.s ! st ! t ! Neg ;
|
||||
te = \\a,st => vp.a_stem ! Anim ! st ++ "なければ" ++ v.te ;
|
||||
a_stem = \\a,st => vp.a_stem ! Anim ! st ++ "なければ" ++ v.a_stem ;
|
||||
i_stem = \\a,st => vp.a_stem ! Anim ! st ++ "なければ" ++ v.i_stem ;
|
||||
tara = \\a,st => vp.a_stem ! Anim ! st ++ "なければ" ++ v.tara ;
|
||||
ba = \\a,st => vp.a_stem ! Anim ! st ++ "なければ" ++ v.ba ;
|
||||
prep = vp.prep ;
|
||||
obj = \\st => vp.obj ! st ;
|
||||
prepositive = vp.prepositive ;
|
||||
@@ -45,7 +45,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
te = \\a,st => vp.i_stem ! Anim ! st ++ "たがって" ++ v.te ;
|
||||
a_stem = \\a,st => vp.i_stem ! Anim ! st ++ "たがって" ++ v.a_stem ;
|
||||
i_stem = \\a,st => vp.i_stem ! Anim ! st ++ "たがって" ++ v.i_stem ;
|
||||
tara = \\a,st => vp.i_stem ! Anim ! st ++ "たがって" ++ v.tara ;
|
||||
ba = \\a,st => vp.i_stem ! Anim ! st ++ "たがって" ++ v.ba ;
|
||||
prep = vp.prep ;
|
||||
obj = \\st => vp.obj ! st ;
|
||||
prepositive = vp.prepositive ;
|
||||
@@ -58,7 +58,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
te = \\a,st => vs.te ;
|
||||
a_stem = \\a,st => vs.a_stem ;
|
||||
i_stem = \\a,st => vs.i_stem ;
|
||||
tara = \\a,st => vs.tara ;
|
||||
ba = \\a,st => vs.ba ;
|
||||
prep = vs.prep ;
|
||||
obj = \\st => sent.s ! Ga ! Plain ;
|
||||
prepositive = \\st => [] ;
|
||||
@@ -70,7 +70,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
te = \\a,st => vq.te ;
|
||||
a_stem = \\a,st => vq.a_stem ;
|
||||
i_stem = \\a,st => vq.i_stem ;
|
||||
tara = \\a,st => vq.tara ;
|
||||
ba = \\a,st => vq.ba ;
|
||||
prep = vq.prep ;
|
||||
obj = \\st => qs.s ! Ga ! Plain ++ "こと" ;
|
||||
prepositive = \\st => [] ;
|
||||
@@ -82,7 +82,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
te = \\a,st => va.te ;
|
||||
a_stem = \\a,st => va.a_stem ;
|
||||
i_stem = \\a,st => va.i_stem ;
|
||||
tara = \\a,st => va.tara ;
|
||||
ba = \\a,st => va.ba ;
|
||||
prep = [] ;
|
||||
obj = \\st => ap.adv ! st ;
|
||||
prepositive = ap.prepositive ;
|
||||
@@ -93,7 +93,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
s = \\st,t,p => v2.s ! st ! t ! p ;
|
||||
a_stem = v2.a_stem ;
|
||||
i_stem = v2.i_stem ;
|
||||
tara = v2.tara ;
|
||||
ba = v2.ba ;
|
||||
prep = v2.prep ;
|
||||
obj = \\st => [] ;
|
||||
prepositive = \\st => [] ;
|
||||
@@ -116,9 +116,9 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
True => "呉れ" ;
|
||||
False => "上げ"
|
||||
} ;
|
||||
tara = case np.Pron1Sg of {
|
||||
True => "呉れたら" ;
|
||||
False => "上げたら"
|
||||
ba = case np.Pron1Sg of {
|
||||
True => "呉れれば" ;
|
||||
False => "上げれば"
|
||||
} ;
|
||||
prep = v3.prep2 ;
|
||||
obj = \\st => np.s ! st ++ v3.prep1 ;
|
||||
@@ -134,7 +134,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
s = \\st,t,p => v3.s ! st ! t ! p ;
|
||||
a_stem = v3.a_stem ;
|
||||
i_stem = v3.i_stem ;
|
||||
tara = v3.tara ;
|
||||
ba = v3.ba ;
|
||||
prep = v3.prep2 ;
|
||||
obj = \\st => np.s ! st ++ v3.prep1 ;
|
||||
prepositive = np.prepositive ;
|
||||
@@ -151,7 +151,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
++ v2v.s ! st ! t ! p ;
|
||||
a_stem = vp.verb ! Anim ! Plain ! TPres ! ResJap.Pos ++ "ように" ++ v2v.a_stem ;
|
||||
i_stem = vp.verb ! Anim ! Plain ! TPres ! ResJap.Pos ++ "ように" ++ v2v.i_stem ;
|
||||
tara = vp.verb ! Anim ! Plain ! TPres ! ResJap.Pos ++ "ように" ++ v2v.tara ;
|
||||
ba = vp.verb ! Anim ! Plain ! TPres ! ResJap.Pos ++ "ように" ++ v2v.ba ;
|
||||
prep = "に" ;
|
||||
obj = \\st => vp.obj ! st ++ vp.prep ;
|
||||
te = vp.verb ! Anim ! Plain ! TPres ! ResJap.Pos ++ "ように" ++ v2v.te ;
|
||||
@@ -164,7 +164,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
s = v2s.s ;
|
||||
a_stem = v2s.a_stem ;
|
||||
i_stem = v2s.i_stem ;
|
||||
tara = v2s.tara ;
|
||||
ba = v2s.ba ;
|
||||
prep = "に" ;
|
||||
obj = \\st => s.s ! Ga ! Plain ++ "と" ;
|
||||
prepositive = \\st => [] ;
|
||||
@@ -177,7 +177,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
s = v2q.s ;
|
||||
a_stem = v2q.a_stem ;
|
||||
i_stem = v2q.i_stem ;
|
||||
tara = v2q.tara ;
|
||||
ba = v2q.ba ;
|
||||
prep = "に" ;
|
||||
obj = \\st => qs.s ! Ga ! Plain ++ "ことを" ;
|
||||
prepositive = \\st => [] ;
|
||||
@@ -190,7 +190,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
s = v2a.s ;
|
||||
a_stem = v2a.a_stem ;
|
||||
i_stem = v2a.i_stem ;
|
||||
tara = v2a.tara ;
|
||||
ba = v2a.ba ;
|
||||
prep = "を" ;
|
||||
obj = ap.adv ;
|
||||
prepositive = ap.prepositive ;
|
||||
@@ -206,7 +206,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
} ;
|
||||
a_stem = \\a,st => vpslash.a_stem ;
|
||||
i_stem = \\a,st => vpslash.i_stem ;
|
||||
tara = \\a,st => vpslash.tara ;
|
||||
ba = \\a,st => vpslash.ba ;
|
||||
prep = case np.needPart of {
|
||||
True => case vpslash.v2vType of {
|
||||
True => [] ;
|
||||
@@ -219,7 +219,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
False => vpslash.obj ! st ++ np.s ! st
|
||||
} ;
|
||||
te = \\a,st => vpslash.te ;
|
||||
prepositive = vpslash.prepositive ;
|
||||
prepositive = \\st => np.prepositive ! st ++ vpslash.prepositive ! st ;
|
||||
compar = vpslash.compar
|
||||
} ;
|
||||
|
||||
@@ -237,10 +237,10 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
} ;
|
||||
a_stem = [] ;
|
||||
i_stem = [] ;
|
||||
tara = case v.sense of {
|
||||
Abil => vpslash.s ! Plain ! TPres ! ResJap.Pos ++ "ことが" ++ v.tara ;
|
||||
Oblig => vpslash.a_stem ++ "なければ" ++ v.tara ;
|
||||
Wish => vpslash.i_stem ++ "たがって" ++ v.tara
|
||||
ba = case v.sense of {
|
||||
Abil => vpslash.s ! Plain ! TPres ! ResJap.Pos ++ "ことが" ++ v.ba ;
|
||||
Oblig => vpslash.a_stem ++ "なければ" ++ v.ba ;
|
||||
Wish => vpslash.i_stem ++ "たがって" ++ v.ba
|
||||
} ;
|
||||
prep = vpslash.prep ;
|
||||
obj = vpslash.obj ;
|
||||
@@ -254,7 +254,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
++ v2v.s ! st ! t ! p ;
|
||||
a_stem = vpslash.s ! Plain ! TPres ! ResJap.Pos ++ "ように" ++ v2v.a_stem ;
|
||||
i_stem = vpslash.s ! Plain ! TPres ! ResJap.Pos ++ "ように" ++ v2v.i_stem ;
|
||||
tara = vpslash.s ! Plain ! TPres ! ResJap.Pos ++ "ように" ++ v2v.tara ;
|
||||
ba = vpslash.s ! Plain ! TPres ! ResJap.Pos ++ "ように" ++ v2v.ba ;
|
||||
prep = vpslash.prep ;
|
||||
obj = \\st => np.s ! st ++ "に" ;
|
||||
te = vpslash.s ! Plain ! TPres ! ResJap.Pos ++ "ように" ++ v2v.te ;
|
||||
@@ -267,7 +267,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
verb = \\a,st,t,p => vpslash.s ! st ! t ! p ;
|
||||
a_stem = \\a,st => vpslash.a_stem ;
|
||||
i_stem = \\a,st => vpslash.i_stem ;
|
||||
tara = \\a,st => vpslash.tara ;
|
||||
ba = \\a,st => vpslash.ba ;
|
||||
prep = vpslash.prep ;
|
||||
obj = \\st => "自分" ; -- "jibun"
|
||||
te = \\a,st => vpslash.te ;
|
||||
@@ -280,7 +280,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
te = comp.te ;
|
||||
a_stem = comp.a_stem ;
|
||||
i_stem = comp.i_stem ;
|
||||
tara = comp.tara ;
|
||||
ba = comp.ba ;
|
||||
prep = [] ;
|
||||
obj = comp.obj ;
|
||||
prepositive = comp.prepositive ;
|
||||
@@ -292,7 +292,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
te = \\a,st => v2.pass_te ;
|
||||
a_stem = \\a,st => v2.pass_a_stem ;
|
||||
i_stem = \\a,st => v2.pass_i_stem ;
|
||||
tara = \\a,st => v2.pass_tara ;
|
||||
ba = \\a,st => v2.pass_ba ;
|
||||
prep = [] ;
|
||||
obj = \\st => [] ;
|
||||
prepositive = \\st => [] ;
|
||||
@@ -304,7 +304,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
te = vp.te ;
|
||||
a_stem = vp.a_stem ;
|
||||
i_stem = vp.i_stem ;
|
||||
tara = vp.tara ;
|
||||
ba = vp.ba ;
|
||||
prep = vp.prep ;
|
||||
obj = \\st => case adv.prepositive of {
|
||||
True => vp.obj ! st ;
|
||||
@@ -322,7 +322,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
te = vp.te ;
|
||||
a_stem = vp.a_stem ;
|
||||
i_stem = vp.i_stem ;
|
||||
tara = vp.tara ;
|
||||
ba = vp.ba ;
|
||||
prep = vp.prep ;
|
||||
obj = \\st => adv.s ++ vp.obj ! st ;
|
||||
prepositive = vp.prepositive ;
|
||||
@@ -334,7 +334,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
te = vpslash.te ;
|
||||
a_stem = vpslash.a_stem ;
|
||||
i_stem = vpslash.i_stem ;
|
||||
tara = vpslash.tara ;
|
||||
ba = vpslash.ba ;
|
||||
prep = vpslash.prep ;
|
||||
obj = \\st => case adv.prepositive of {
|
||||
True => vpslash.obj ! st ;
|
||||
@@ -353,7 +353,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
te = vpslash.te ;
|
||||
a_stem = vpslash.a_stem ;
|
||||
i_stem = vpslash.i_stem ;
|
||||
tara = vpslash.tara ;
|
||||
ba = vpslash.ba ;
|
||||
prep = vpslash.prep ;
|
||||
obj = \\st => adv.s ++ vpslash.obj ! st ;
|
||||
prepositive = vpslash.prepositive ;
|
||||
@@ -366,7 +366,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
te = \\a,st => ap.te ! st ;
|
||||
a_stem = \\a,st => ap.adv ! st ;
|
||||
i_stem = \\a,st => ap.adv ! st ; -- for wishes - not correct!
|
||||
tara = \\a,st => ap.tara ! st ;
|
||||
ba = \\a,st => ap.ba ! st ;
|
||||
obj = \\st => [] ;
|
||||
prepositive = ap.prepositive ;
|
||||
compar = ap.compar
|
||||
@@ -375,7 +375,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
CompNP np = {
|
||||
verb = \\a,st,t,p => mkCopula.s ! st ! t ! p ;
|
||||
te = \\a,st => "だって" ;
|
||||
tara = \\a,st => "だったら" ;
|
||||
ba = \\a,st => "であれば" ;
|
||||
a_stem = \\a,st => "で" ;
|
||||
i_stem = \\a,st => "で" ; -- for wishes - not correct!
|
||||
obj = \\st => np.s ! st ;
|
||||
@@ -386,7 +386,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
CompAdv adv = {
|
||||
verb = mkExistV.verb ;
|
||||
te = mkExistV.te ;
|
||||
tara = mkExistV.tara ;
|
||||
ba = mkExistV.ba ;
|
||||
a_stem = mkExistV.a_stem ;
|
||||
i_stem = mkExistV.i_stem ;
|
||||
obj = \\st => case adv.prepositive of {
|
||||
@@ -403,7 +403,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
CompCN cn = {
|
||||
verb = \\a,st,t,p => mkCopula.s ! st ! t ! p ;
|
||||
te = \\a,st => "だって" ;
|
||||
tara = \\a,st => "だったら" ;
|
||||
ba = \\a,st => "であれば" ;
|
||||
a_stem = \\a,st => "で" ;
|
||||
i_stem = \\a,st => "で" ; -- for wishes - not correct!
|
||||
obj = \\st => cn.s ! (Sg|Pl) ! st ;
|
||||
@@ -414,7 +414,7 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
UseCopula = {
|
||||
verb = \\a,st,t,p => mkCopula.s ! st ! t ! p ;
|
||||
te = \\a,st => "だって" ;
|
||||
tara = \\a,st => "だったら" ;
|
||||
ba = \\a,st => "であれば" ;
|
||||
a_stem = \\a,st => "で" ;
|
||||
i_stem = \\a,st => "で" ; -- for wishes - not correct!
|
||||
obj = \\st => [] ;
|
||||
@@ -424,3 +424,4 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
|
||||
} ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user