mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-21 10:49:33 -06:00
173 lines
6.2 KiB
Plaintext
173 lines
6.2 KiB
Plaintext
concrete AdjectiveJpn of Adjective = CatJpn ** open ResJpn, ParadigmsJpn, Prelude in {
|
|
|
|
flags coding = utf8 ;
|
|
|
|
lin
|
|
|
|
PositA adj = {
|
|
pred = adj.pred ;
|
|
attr = \\st => adj.attr ;
|
|
te = \\st => adj.te ;
|
|
ba = \\st => adj.ba ;
|
|
adv = \\st => adj.adv ! Pos ;
|
|
prepositive = \\st => [] ;
|
|
dropNaEnging = \\st => adj.dropNaEnging ;
|
|
needSubject = True
|
|
} ;
|
|
|
|
ComparA adj np = {
|
|
pred = \\st,t,p => np.s ! st ++ "より" ++ adj.pred ! st ! t ! p ;
|
|
attr = \\st => np.s ! st ++ "より" ++ adj.attr ;
|
|
te = \\st,p => np.s ! st ++ "より" ++ adj.te ! p ;
|
|
ba = \\st,p => np.s ! st ++ "より" ++ adj.ba ! p ;
|
|
adv = \\st => np.s ! st ++ "より" ++ adj.adv ! Pos ;
|
|
prepositive = np.prepositive ;
|
|
dropNaEnging = \\st => np.s ! st ++ "より" ++ adj.dropNaEnging ;
|
|
needSubject = True
|
|
} ;
|
|
|
|
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,p => np.s ! st ++ a2.prep ++ a2.te ! p ;
|
|
ba = \\st,p => np.s ! st ++ a2.prep ++ a2.ba ! p ;
|
|
prepositive = np.prepositive ;
|
|
adv = \\st => np.s ! st ++ a2.prep ++ a2.adv ! Pos ;
|
|
dropNaEnging = \\st => np.s ! st ++ a2.prep ++ a2.dropNaEnging ;
|
|
needSubject = True
|
|
} ;
|
|
|
|
ReflA2 a2 = {
|
|
pred = \\st,t,p => "自分" ++ a2.prep ++ a2.pred ! st ! t ! p ; -- "jibun"
|
|
attr = \\st => "自分" ++ a2.prep ++ a2.attr ;
|
|
te = \\st,p => "自分" ++ a2.prep ++ a2.te ! p ;
|
|
ba = \\st,p => "自分" ++ a2.prep ++ a2.ba ! p ;
|
|
adv = \\st => "自分" ++ a2.prep ++ a2.adv ! Pos ;
|
|
prepositive = \\st => [] ;
|
|
dropNaEnging = \\st => "自分" ++ a2.prep ++ a2.dropNaEnging ;
|
|
needSubject = True
|
|
} ;
|
|
|
|
UseA2 a2 = {
|
|
pred = a2.pred ;
|
|
attr = \\st => a2.attr ;
|
|
te = \\st => a2.te ;
|
|
ba = \\st => a2.ba ;
|
|
adv = \\st => a2.adv ! Pos ;
|
|
prepositive = \\st => [] ;
|
|
dropNaEnging = \\st => a2.dropNaEnging ;
|
|
needSubject = True
|
|
} ;
|
|
|
|
UseComparA adj = {
|
|
pred = \\st,t,p => "もっと" ++ adj.pred ! st ! t ! p ;
|
|
attr = \\st => "もっと" ++ adj.attr ;
|
|
te = \\st,p => "もっと" ++ adj.te ! p ;
|
|
ba = \\st,p => "もっと" ++ adj.ba ! p ;
|
|
adv = \\st => "もっと" ++ adj.adv ! Pos ;
|
|
prepositive = \\st => [] ;
|
|
dropNaEnging = \\st => "もっと" ++ adj.dropNaEnging ;
|
|
needSubject = True
|
|
} ;
|
|
|
|
CAdvAP cadv ap np = {
|
|
pred = \\st,t => case cadv.less of {
|
|
True => table {
|
|
Pos => np.s ! st ++ cadv.s ++ ap.pred ! st ! t ! Neg ;
|
|
Neg => np.s ! st ++ cadv.s ++ ap.pred ! st ! t ! Pos
|
|
} ;
|
|
False => \\p => np.s ! st ++ cadv.s ++ ap.pred ! st ! t ! p
|
|
} ;
|
|
attr = \\st => case cadv.less of {
|
|
True => np.s ! st ++ cadv.s ++ ap.pred ! Plain ! TPres ! Neg ;
|
|
False => np.s ! st ++ cadv.s ++ ap.attr ! st
|
|
} ;
|
|
te = \\st => case cadv.less of {
|
|
True => table {
|
|
Pos => np.s ! st ++ cadv.s ++ ap.te ! st ! Neg ;
|
|
Neg => np.s ! st ++ cadv.s ++ ap.te ! st ! Pos
|
|
} ;
|
|
False => \\p => np.s ! st ++ cadv.s ++ ap.te ! st ! p
|
|
} ;
|
|
ba = \\st => case cadv.less of {
|
|
True => table {
|
|
Pos => np.s ! st ++ cadv.s ++ ap.ba ! st ! Neg ;
|
|
Neg => np.s ! st ++ cadv.s ++ ap.ba ! st ! Pos
|
|
} ;
|
|
False => \\p => np.s ! st ++ cadv.s ++ ap.ba ! st ! p
|
|
} ;
|
|
adv = \\st => np.s ! st ++ cadv.s ++ ap.adv ! st ;
|
|
prepositive = np.prepositive ;
|
|
dropNaEnging = \\st => case cadv.less of {
|
|
True => np.s ! st ++ cadv.s ++ ap.pred ! Plain ! TPres ! Neg ;
|
|
False => np.s ! st ++ cadv.s ++ ap.dropNaEnging ! st
|
|
} ;
|
|
needSubject = True
|
|
} ;
|
|
|
|
AdjOrd ord = {
|
|
pred = ord.pred ;
|
|
attr = \\st => ord.attr ;
|
|
te = \\st => ord.te ;
|
|
ba = \\st => ord.ba ;
|
|
adv = \\st => ord.adv ! Pos ;
|
|
prepositive = \\st => [] ;
|
|
dropNaEnging = \\st => ord.dropNaEnging ;
|
|
needSubject = True
|
|
} ;
|
|
|
|
SentAP ap sc = {
|
|
pred = \\st,t,p => sc.s ! Wa ! st ++ "ことが" ++ ap.pred ! st ! t ! p ;
|
|
attr = \\st => sc.s ! Wa ! st ++ "ことが" ++ ap.attr ! st ;
|
|
te = \\st,p => sc.s ! Wa ! st ++ "ことが" ++ ap.te ! st ! p ;
|
|
ba = \\st,p => sc.s ! Wa ! st ++ "ことが" ++ ap.ba ! st ! p ;
|
|
adv = \\st => sc.s ! Wa ! st ++ "ことが" ++ ap.adv ! st ;
|
|
prepositive = ap.prepositive ;
|
|
dropNaEnging = \\st => sc.s ! Wa ! st ++ "ことが" ++ ap.dropNaEnging ! st ;
|
|
needSubject = False
|
|
} ;
|
|
|
|
AdAP ada ap = {
|
|
pred = \\st,t,p => ada.s ++ ap.pred ! st ! t ! p ;
|
|
attr = \\st => ada.s ++ ap.attr ! st ;
|
|
te = \\st,p => ada.s ++ ap.te ! st ! p ;
|
|
ba = \\st,p => ada.s ++ ap.ba ! st ! p ;
|
|
adv = \\st => ada.s ++ ap.adv ! st ;
|
|
prepositive = ap.prepositive ;
|
|
dropNaEnging = \\st => ada.s ++ ap.dropNaEnging ! st ;
|
|
needSubject = True
|
|
} ;
|
|
|
|
AdvAP ap adv = {
|
|
pred = \\st,t,p => case adv.prepositive of {
|
|
True => ap.pred ! st ! t ! p ;
|
|
False => adv.s ! st ++ ap.pred ! st ! t ! p
|
|
} ;
|
|
attr = \\st => case adv.prepositive of {
|
|
True => ap.attr ! st ;
|
|
False => adv.s ! st ++ ap.attr ! st
|
|
} ;
|
|
te = \\st => case adv.prepositive of {
|
|
True => ap.te ! st ;
|
|
False => \\p => adv.s ! st ++ ap.te ! st ! p
|
|
} ;
|
|
ba = \\st => case adv.prepositive of {
|
|
True => ap.ba ! st ;
|
|
False => \\p => adv.s ! st ++ ap.ba ! st ! p
|
|
} ;
|
|
adv = \\st => case adv.prepositive of {
|
|
True => ap.adv ! st ;
|
|
False => adv.s ! st ++ ap.adv ! st
|
|
} ;
|
|
prepositive = \\st => case adv.prepositive of {
|
|
True => adv.s ! st ;
|
|
False => []
|
|
} ;
|
|
dropNaEnging = \\st => case adv.prepositive of {
|
|
True => ap.dropNaEnging ! st ;
|
|
False => adv.s ! st ++ ap.dropNaEnging ! st
|
|
} ;
|
|
needSubject = True
|
|
} ;
|
|
}
|