This commit is contained in:
lizazim
2012-06-10 21:38:10 +00:00
parent 60d8ec58a2
commit 2c371f5f33
30 changed files with 170 additions and 155 deletions

View File

@@ -1,4 +1,4 @@
concrete AdjectiveJap of Adjective = CatJap ** open ResJap, ParadigmsJap, Prelude in {
concrete AdjectiveJpn of Adjective = CatJpn ** open ResJpn, ParadigmsJpn, Prelude in {
flags coding = utf8 ;

View File

@@ -1,4 +1,4 @@
concrete AdverbJap of Adverb = CatJap ** open ResJap, ParadigmsJap, Prelude in {
concrete AdverbJpn of Adverb = CatJpn ** open ResJpn, ParadigmsJpn, Prelude in {
flags coding = utf8 ;

View File

@@ -1,6 +0,0 @@
--# -path=.:../abstract:../common:../prelude
concrete AllJap of AllJapAbs =
LangJap,
ExtraJap
** {} ;

View File

@@ -1,4 +0,0 @@
abstract AllJapAbs =
Lang,
ExtraJapAbs
** {} ;

View File

@@ -0,0 +1,4 @@
concrete AllJpn of AllJpnAbs =
LangJpn,
ExtraJpn
** {} ;

View File

@@ -0,0 +1,4 @@
abstract AllJpnAbs =
Lang,
ExtraJpnAbs
** {} ;

View File

@@ -1,11 +1,7 @@
concrete CatJap of Cat = CommonJap ** open ResJap, Prelude in {
concrete CatJpn of Cat = CommonJpn ** open ResJpn, Prelude in {
flags coding = utf8 ;
lincat
S = {s, te, ba, subj : Particle => Style => Str ; pred, pred_te, pred_ba : Style => Str} ;
@@ -29,7 +25,7 @@ flags coding = utf8 ;
te, pred_te, pred_ba : Animateness => Style => Polarity => Str ;
subj : Particle => Style => Str ; changePolar : Bool ; missingSubj : Bool} ;
RP = {s : Style => Str ; null : Bool} ;
VP = ResJap.VP ; -- {verb : Speaker => Animateness => Style => TTense => Polarity => Str ;
VP = ResJpn.VP ; -- {verb : Speaker => Animateness => Style => TTense => Polarity => Str ;
-- a_stem, i_stem : Speaker => Animateness => Style => Str ;
-- te, ba : Speaker => Animateness => Style => Polarity => Str ;
-- prep : Str ; obj : Style => Str ; prepositive : Style => Str ;
@@ -42,7 +38,7 @@ flags coding = utf8 ;
prep : Str ; obj : Style => Str ; prepositive : Style => Str ; v2vType : Bool} ;
AP = {pred : Style => TTense => Polarity => Str ; attr, adv, dropNaEnging, prepositive :
Style => Str ; te, ba : Style => Polarity => Str ; needSubject : Bool} ;
NP = ResJap.NP ; -- {s : Style => Str ; prepositive : Style => Str ; needPart : Bool ;
NP = ResJpn.NP ; -- {s : Style => Str ; prepositive : Style => Str ; needPart : Bool ;
-- changePolar : Bool ; meaning : Speaker ; anim : Animateness} ;
CN = Noun ** {object : Style => Str ; prepositive : Style => Str ; hasAttr : Bool} ;
Pron = Pronoun ; -- {s : Style => Str ; Pron1Sg : Bool ; anim : Animateness} ;
@@ -50,7 +46,7 @@ flags coding = utf8 ;
-- n : Number ; inclCard : Bool ; sp : Style => Str ; no : Bool ; tenPlus : 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 ;
Num = ResJpn.Num ; -- {s : Str ; postpositive : Str ; n : Number ; inclCard : Bool ;
-- tenPlus : Bool} ;
Card = {s : Str ; postpositive : Str ; n : Number ; tenPlus : Bool} ;
Ord = Adj ; -- {pred : Style => TTense => Polarity => Str ; attr, adv,
@@ -68,7 +64,7 @@ flags coding = utf8 ;
V3 = Verb3 ; -- {s : Speaker => Style => TTense => Polarity => Str ; a_stem,
-- i_stem : Speaker => Str ; te, ba : Speaker => Polarity =>
-- Str ; prep1, prep2 : Str} ;
VV = ResJap.VV ; -- {s : Speaker => Style => TTense => Polarity => Str ; te,
VV = ResJpn.VV ; -- {s : Speaker => Style => TTense => Polarity => Str ; te,
-- a_stem, i_stem, ba, te_neg, ba_neg : Speaker => Str ;
-- sense : ModSense} ;
VS = Verb2 ;

View File

@@ -1,4 +1,4 @@
concrete CommonJap of Common = open ResJap, Prelude in {
concrete CommonJpn of Common = open ResJpn, Prelude in {
flags coding = utf8 ;
@@ -26,5 +26,4 @@ flags coding = utf8 ;
Tense = {s : Str ; t : TTense} ;
Pol = {s : Str ; b : Polarity} ;
Ant = {s : Str ; a : Anteriority} ;
}
}

View File

@@ -1,4 +1,4 @@
concrete ConjunctionJap of Conjunction = CatJap ** open ResJap, Prelude in {
concrete ConjunctionJpn of Conjunction = CatJpn ** open ResJpn, Prelude in {
flags coding = utf8 ;
@@ -114,72 +114,72 @@ concrete ConjunctionJap of Conjunction = CatJap ** open ResJap, Prelude in {
} ;
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 ;
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 ;
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 ;
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 ;
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 ;
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
<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 ++
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 ++
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 ;
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
<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 ++
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 ++
pred_baOr = \\a,st => xs.pred_teOr ! a ! st ++ "" ++ "あるいは" ++ x.subj ! Ga ! st ++
x.pred_ba ! a ! st ;
subj = xs.subj ;
missingSubj = xs.missingSubj
@@ -188,11 +188,11 @@ concrete ConjunctionJap of Conjunction = CatJap ** open ResJap, Prelude in {
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
_ => 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
_ => x.s ! st ++ "" ++ "あるいは" ++ y.s ! st
} ;
prepositive = case <x.prepositive, y.prepositive> of {
<False, False> => False ;
@@ -203,11 +203,11 @@ concrete ConjunctionJap of Conjunction = CatJap ** open ResJap, Prelude in {
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
_ => xs.and ! st ++ "" ++ x.s ! st
} ;
or = \\st => case <x.prepositive, xs.prepositive> of {
<False, False> => x.s ! st ++ "か" ++ xs.or ! st ;
_ => xs.or ! st ++ "," ++ "あるいは" ++ x.s ! st
_ => xs.or ! st ++ "" ++ "あるいは" ++ x.s ! st
} ;
prepositive = case <x.prepositive, xs.prepositive> of {
<False, False> => False ;
@@ -356,5 +356,4 @@ concrete ConjunctionJap of Conjunction = CatJap ** open ResJap, Prelude in {
[CN] = {and, or : Number => Style => Str ; anim : Animateness ; counter : Str ;
counterReplace : Bool ; object : Style => Str ; prepositive : Style => Str ;
hasAttr : Bool ; counterTsu : Bool} ;
}

View File

@@ -1,4 +1,4 @@
concrete ExtraJap of ExtraJapAbs = CatJap ** open ResJap, Prelude, ParadigmsJap in {
concrete ExtraJpn of ExtraJpnAbs = CatJpn ** open ResJpn, Prelude, ParadigmsJpn in {
lincat
Level = {s : Str ; l : Style} ;

View File

@@ -1,4 +1,4 @@
abstract ExtraJapAbs = Cat ** {
abstract ExtraJpnAbs = Cat ** {
cat
Level ; -- style of speech
Part ; -- particles wa/ga

View File

@@ -1,16 +0,0 @@
concrete GrammarJap of Grammar =
NounJap,
VerbJap,
AdjectiveJap,
AdverbJap,
NumeralJap,
SentenceJap,
QuestionJap,
RelativeJap,
ConjunctionJap,
PhraseJap,
TextJap,
StructuralJap,
IdiomJap,
TenseJap
;

View File

@@ -0,0 +1,16 @@
concrete GrammarJpn of Grammar =
NounJpn,
VerbJpn,
AdjectiveJpn,
AdverbJpn,
NumeralJpn,
SentenceJpn,
QuestionJpn,
RelativeJpn,
ConjunctionJpn,
PhraseJpn,
TextJpn,
StructuralJpn,
IdiomJpn,
TenseJpn
;

View File

@@ -1,4 +1,4 @@
concrete IdiomJap of Idiom = CatJap ** open ResJap, ParadigmsJap, Prelude in {
concrete IdiomJpn of Idiom = CatJpn ** open ResJpn, ParadigmsJpn, Prelude in {
flags coding = utf8 ;

View File

@@ -1,7 +0,0 @@
--# -path=.:../abstract:../common:../prelude
concrete LangJap of Lang =
GrammarJap,
LexiconJap
;

View File

@@ -0,0 +1,5 @@
concrete LangJpn of Lang =
GrammarJpn,
LexiconJpn
;

View File

@@ -1,4 +1,4 @@
concrete LexiconJap of Lexicon = CatJap ** open ParadigmsJap, ResJap, Prelude in {
concrete LexiconJpn of Lexicon = GrammarJpn ** open ParadigmsJpn, ResJpn, Prelude in {
flags coding = utf8 ;
@@ -129,7 +129,7 @@ lin
glove_N = mkN "手袋" Inanim ; -- "tebukuro"
gold_N = mkN "金" Inanim ; -- "kin"
good_A = mkA "良い" ; -- "ii" ;
go_V = mkV "行く" Gr1 ; -- "iku"
go_V = mkGo ;
grammar_N = mkN "文法" Inanim ; -- "bumpou"
grass_N = mkN "草" Inanim ; -- "kusa"
green_A = mkA "緑色の" ; -- "midoriirono" ;

View File

@@ -1,4 +1,4 @@
concrete NounJap of Noun = CatJap ** open ResJap, ParadigmsJap, Prelude in {
concrete NounJpn of Noun = CatJpn ** open ResJpn, ParadigmsJpn, Prelude in {
flags coding = utf8 ;
@@ -7,10 +7,14 @@ flags coding = utf8 ;
DetCN det cn = {
s = \\st => case det.inclCard of {
True => case cn.counterReplace of {
True => cn.object ! st ++ det.quant ! st ++ det.num ++ cn.counter ++ det.postpositive ;
True => case cn.hasAttr of {
True => cn.object ! st ++ det.quant ! st ++ det.num ++ cn.counter ++ det.postpositive
++ "の" ++ cn.s ! det.n ! st ;
False => cn.object ! st ++ det.quant ! st ++ det.num ++ cn.counter ++ det.postpositive
} ;
False => case <det.tenPlus, cn.counterTsu> of {
<True, True> => cn.object ! st ++ det.quant ! st ++ det.num ++ det.postpositive ++
"の" ++ cn.s ! det.n ! st ;
<True, True> => cn.object ! st ++ det.quant ! st ++ det.num ++ "個" ++ det.postpositive
++ "の" ++ cn.s ! det.n ! st ;
_ => cn.object ! st ++ det.quant ! st ++ det.num ++ cn.counter ++ det.postpositive
++ "の" ++ cn.s ! det.n ! st
}

View File

@@ -1,4 +1,4 @@
concrete NumeralJap of Numeral = CatJap ** open ResJap, ParadigmsJap, Prelude in {
concrete NumeralJpn of Numeral = CatJpn ** open ResJpn, ParadigmsJpn, Prelude in {
flags coding = utf8 ;

View File

@@ -1,5 +1,5 @@
resource ParadigmsJap = CatJap **
open ResJap, CatJap, Prelude in {
resource ParadigmsJpn = CatJpn **
open ResJpn, CatJpn, Prelude in {
flags coding = utf8 ;

View File

@@ -1,5 +1,5 @@
concrete PhraseJap of Phrase = CatJap
** open ResJap, ParadigmsJap, Prelude in {
concrete PhraseJpn of Phrase = CatJpn
** open ResJpn, ParadigmsJpn, Prelude in {
flags coding = utf8 ;
@@ -12,9 +12,9 @@ flags coding = utf8 ;
(Imper|NoImp) => pconj.s ++ utt.s ! Wa ! Resp ++ voc.s ! Resp
} ;
VocPres => case utt.type of {
ImpPolite => voc.s ! Resp ++ "," ++ pconj.s ++ utt.s ! Wa ! Resp ;
Imper => voc.s ! Plain ++ "," ++ pconj.s ++ utt.s ! Wa ! Plain ;
NoImp => voc.s ! Plain ++ "," ++ pconj.s ++ utt.s ! Wa ! Plain
ImpPolite => voc.s ! Resp ++ "" ++ pconj.s ++ utt.s ! Wa ! Resp ;
Imper => voc.s ! Plain ++ "" ++ pconj.s ++ utt.s ! Wa ! Plain ;
NoImp => voc.s ! Plain ++ "" ++ pconj.s ++ utt.s ! Wa ! Plain
} ;
VocAbs => case utt.type of {
(Imper|ImpPolite) => voc.s ! Plain ++ pconj.s ++ utt.s ! Wa ! Plain ;

View File

@@ -1,5 +1,5 @@
concrete QuestionJap of Question = CatJap
** open ResJap, ParadigmsJap, Prelude in {
concrete QuestionJpn of Question = CatJpn
** open ResJpn, ParadigmsJpn, Prelude in {
flags coding = utf8 ;

View File

@@ -1,4 +1,4 @@
concrete RelativeJap of Relative = CatJap ** open ResJap, ParadigmsJap, Prelude in {
concrete RelativeJpn of Relative = CatJpn ** open ResJpn, ParadigmsJpn, Prelude in {
flags coding = utf8 ;

View File

@@ -1,4 +1,4 @@
resource ResJap = open Prelude in {
resource ResJpn = open Prelude in {
flags coding = utf8 ;
@@ -507,6 +507,27 @@ oper
prep2 = "を"
} ;
mkGo : Verb = {
s = table {
Resp => (mkVerb "行く" Gr1).s ! Resp ;
Plain => table {
(TPres|TFut) => (mkVerb "行く" Gr1).s ! Plain ! TPres ;
TPast => table {
Pos => "行った" ;
Neg => "行かなかった"
}
}
} ;
te = table {
Pos => "行って" ;
Neg => "行かないで"
} ;
a_stem = "行か" ;
i_stem = "行き" ;
ba = (mkVerb "行く" Gr1).ba ;
needSubject = True
} ;
mkNum : Str -> Number -> Num = \s,n -> {
s = s ;
postpositive = [] ;

View File

@@ -1,5 +1,5 @@
concrete SentenceJap of Sentence = CatJap
** open ResJap, ParadigmsJap, Prelude in {
concrete SentenceJpn of Sentence = CatJpn
** open ResJpn, ParadigmsJpn, Prelude in {
flags coding = utf8 ;
@@ -359,10 +359,10 @@ flags coding = utf8 ;
} ;
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 ;
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

View File

@@ -1,4 +1,4 @@
concrete StructuralJap of Structural = CatJap ** open ResJap, ParadigmsJap, Prelude in {
concrete StructuralJpn of Structural = CatJpn ** open ResJpn, ParadigmsJpn, Prelude in {
flags coding = utf8 ;

View File

@@ -1,6 +1,6 @@
--# -path=.:../abstract:../common
concrete SymbolJap of Symbol = CatJap ** open Prelude, ResJap in {
concrete SymbolJpn of Symbol = CatJpn ** open Prelude, ResJpn in {
flags coding = utf8;
{-

View File

@@ -1,4 +1,4 @@
concrete TenseJap of Tense = CatJap ** open ResJap, ParadigmsJap, Prelude in {
concrete TenseJpn of Tense = CatJpn ** open ResJpn, ParadigmsJpn, Prelude in {
flags coding = utf8 ;
@@ -13,11 +13,11 @@ flags coding = utf8 ;
PPos = {s = [] ; b = Pos} ;
PNeg = {s = [] ; b = Neg} ;
TPres, TCond = {s = [] ; t = ResJap.TPres} ;
TPast = {s = [] ; t = ResJap.TPast} ;
TFut = {s = [] ; t = ResJap.TFut} ;
TPres, TCond = {s = [] ; t = ResJpn.TPres} ;
TPast = {s = [] ; t = ResJpn.TPast} ;
TFut = {s = [] ; t = ResJpn.TFut} ;
ASimul = {s = [] ; a = Simul} ;
AAnter = {s = [] ; a = Anter} ;
}
}

View File

@@ -1,4 +1,4 @@
concrete TextJap of Text = CatJap ** open ResJap, Prelude in {
concrete TextJpn of Text = CatJpn ** open ResJpn, Prelude in {
flags coding = utf8 ;

View File

@@ -1,4 +1,4 @@
concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
concrete VerbJpn of Verb = CatJpn ** open ResJpn, Prelude in {
flags coding = utf8 ;
@@ -18,15 +18,15 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
ComplVV v vp = case v.sense of {
Abil => {
verb = \\sp,a,st,t,p => vp.verb ! sp ! a ! Plain ! TPres ! ResJap.Pos ++
verb = \\sp,a,st,t,p => vp.verb ! sp ! a ! Plain ! TPres ! ResJpn.Pos ++
"ことが" ++ v.s ! sp ! st ! t ! p ;
te = \\sp,a,st,p => vp.verb ! sp ! a ! Plain ! TPres ! ResJap.Pos ++ "ことが" ++
te = \\sp,a,st,p => vp.verb ! sp ! a ! Plain ! TPres ! ResJpn.Pos ++ "ことが" ++
v.te ! sp ! p ;
a_stem = \\sp,a,st => vp.verb ! sp ! a ! Plain ! TPres ! ResJap.Pos ++
a_stem = \\sp,a,st => vp.verb ! sp ! a ! Plain ! TPres ! ResJpn.Pos ++
"ことが" ++ v.a_stem ! sp ;
i_stem = \\sp,a,st => vp.verb ! sp ! a ! Plain ! TPres ! ResJap.Pos ++
i_stem = \\sp,a,st => vp.verb ! sp ! a ! Plain ! TPres ! ResJpn.Pos ++
"ことが" ++ v.i_stem ! sp ;
ba = \\sp,a,st,p => vp.verb ! sp ! a ! Plain ! TPres ! ResJap.Pos ++ "ことが" ++
ba = \\sp,a,st,p => vp.verb ! sp ! a ! Plain ! TPres ! ResJpn.Pos ++ "ことが" ++
v.ba ! sp ! p ;
prep = vp.prep ;
obj = \\st => vp.obj ! st ;
@@ -129,17 +129,17 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
Slash3V3 = Slash2V3 ;
SlashV2V v2v vp = {
s = \\sp,st,t,p => vp.verb ! SomeoneElse ! Anim ! Plain ! TPres ! ResJap.Pos ++ "ように"
s = \\sp,st,t,p => vp.verb ! SomeoneElse ! Anim ! Plain ! TPres ! ResJpn.Pos ++ "ように"
++ v2v.s ! st ! t ! p ;
a_stem = \\sp => vp.verb ! SomeoneElse ! Anim ! Plain ! TPres ! ResJap.Pos ++
a_stem = \\sp => vp.verb ! SomeoneElse ! Anim ! Plain ! TPres ! ResJpn.Pos ++
"ように" ++ v2v.a_stem ;
i_stem = \\sp => vp.verb ! SomeoneElse ! Anim ! Plain ! TPres ! ResJap.Pos ++
i_stem = \\sp => vp.verb ! SomeoneElse ! Anim ! Plain ! TPres ! ResJpn.Pos ++
"ように" ++ v2v.i_stem ;
ba = \\sp,p => vp.verb ! SomeoneElse ! Anim ! Plain ! TPres ! ResJap.Pos ++ "ように" ++
ba = \\sp,p => vp.verb ! SomeoneElse ! Anim ! Plain ! TPres ! ResJpn.Pos ++ "ように" ++
v2v.ba ! p ;
prep = "に" ;
obj = \\st => vp.obj ! st ++ vp.prep ;
te = \\sp,p => vp.verb ! SomeoneElse ! Anim ! Plain ! TPres ! ResJap.Pos ++ "ように" ++
te = \\sp,p => vp.verb ! SomeoneElse ! Anim ! Plain ! TPres ! ResJpn.Pos ++ "ように" ++
v2v.te ! p ;
prepositive = vp.prepositive ;
v2vType = True
@@ -207,15 +207,15 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
SlashVV v vpslash = case v.sense of {
Abil => {
s = \\sp,st,t,p => vpslash.s ! sp ! Plain ! TPres ! ResJap.Pos ++
s = \\sp,st,t,p => vpslash.s ! sp ! Plain ! TPres ! ResJpn.Pos ++
"ことが" ++ v.s ! sp ! st ! t ! p ;
te = \\sp,p => vpslash.s ! sp ! Plain ! TPres ! ResJap.Pos ++ "ことが" ++
te = \\sp,p => vpslash.s ! sp ! Plain ! TPres ! ResJpn.Pos ++ "ことが" ++
v.te ! sp ! p ;
a_stem = \\sp => vpslash.s ! sp ! Plain ! TPres ! ResJap.Pos ++ "ことが" ++
a_stem = \\sp => vpslash.s ! sp ! Plain ! TPres ! ResJpn.Pos ++ "ことが" ++
v.a_stem ! sp ;
i_stem = \\sp => vpslash.s ! sp ! Plain ! TPres ! ResJap.Pos ++ "ことが" ++
i_stem = \\sp => vpslash.s ! sp ! Plain ! TPres ! ResJpn.Pos ++ "ことが" ++
v.i_stem ! sp ;
ba = \\sp,p => vpslash.s ! sp ! Plain ! TPres ! ResJap.Pos ++ "ことが" ++
ba = \\sp,p => vpslash.s ! sp ! Plain ! TPres ! ResJpn.Pos ++ "ことが" ++
v.ba ! sp ! p ;
prep = vpslash.prep ;
obj = vpslash.obj ;
@@ -256,14 +256,14 @@ concrete VerbJap of Verb = CatJap ** open ResJap, Prelude in {
} ;
SlashV2VNP v2v np vpslash = {
s = \\sp,st,t,p => vpslash.s ! sp ! Plain ! TPres ! ResJap.Pos ++ "ように"
s = \\sp,st,t,p => vpslash.s ! sp ! Plain ! TPres ! ResJpn.Pos ++ "ように"
++ v2v.s ! st ! t ! p ;
a_stem = \\sp => vpslash.s ! sp ! Plain ! TPres ! ResJap.Pos ++ "ように" ++ v2v.a_stem ;
i_stem = \\sp => vpslash.s ! sp ! Plain ! TPres ! ResJap.Pos ++ "ように" ++ v2v.i_stem ;
ba = \\sp,p => vpslash.s ! sp ! Plain ! TPres ! ResJap.Pos ++ "ように" ++ v2v.ba ! p ;
a_stem = \\sp => vpslash.s ! sp ! Plain ! TPres ! ResJpn.Pos ++ "ように" ++ v2v.a_stem ;
i_stem = \\sp => vpslash.s ! sp ! Plain ! TPres ! ResJpn.Pos ++ "ように" ++ v2v.i_stem ;
ba = \\sp,p => vpslash.s ! sp ! Plain ! TPres ! ResJpn.Pos ++ "ように" ++ v2v.ba ! p ;
prep = vpslash.prep ;
obj = \\st => np.s ! st ++ "に" ++ vpslash.obj ! st ;
te = \\sp,p => vpslash.s ! sp ! Plain ! TPres ! ResJap.Pos ++ "ように" ++ v2v.te ! p ;
te = \\sp,p => vpslash.s ! sp ! Plain ! TPres ! ResJpn.Pos ++ "ように" ++ v2v.te ! p ;
prepositive = \\st => np.prepositive ! st ++ vpslash.prepositive ! st ;
v2vType = True
} ;