From 3dc17b2f4bbddb3aeedf545079fe47597f309b76 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Wed, 20 May 2020 16:08:04 +0200 Subject: [PATCH] =?UTF-8?q?(Jpn)=20Replace=20`bar=20=3D=20{x=20=3D=20foo.x?= =?UTF-8?q?=20;=20=E2=80=A6}`=20with=20extension:=20`bar=20=3D=20foo=20**?= =?UTF-8?q?=20{=E2=80=A6}`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Checked with gftest that the operation didn't change anything. --- src/japanese/AdverbJpn.gf | 7 ++-- src/japanese/NounJpn.gf | 10 +---- src/japanese/VerbJpn.gf | 86 +++++++++------------------------------ 3 files changed, 25 insertions(+), 78 deletions(-) diff --git a/src/japanese/AdverbJpn.gf b/src/japanese/AdverbJpn.gf index 8fd3857e..b9aa7670 100644 --- a/src/japanese/AdverbJpn.gf +++ b/src/japanese/AdverbJpn.gf @@ -22,10 +22,9 @@ flags coding = utf8 ; False => s.subj ! Ga ! st ++ s.pred ! Plain ++ "こと" ++ cadv.s ++ a.adv ! Pos } ; prepositive = False} ; - - AdAdv ada adv = {s = \\st => ada.s ++ adv.s ! st ; - prepositive = adv.prepositive} ; - + + AdAdv ada adv = adv ** {s = \\st => ada.s ++ adv.s ! st} ; + PositAdAAdj a = {s = a.adv ! Pos } ; SubjS subj s = { diff --git a/src/japanese/NounJpn.gf b/src/japanese/NounJpn.gf index 0a71bc1f..182181ec 100644 --- a/src/japanese/NounJpn.gf +++ b/src/japanese/NounJpn.gf @@ -52,16 +52,12 @@ flags coding = utf8 ; anim = pron.anim } ; - PredetNP p np = { + PredetNP p np = np ** { s = \\st => p.s ++ np.s ! st ; - prepositive = np.prepositive ; - needPart = np.needPart ; changePolar = case p.not of { True => True ; False => np.changePolar } ; - meaning = np.meaning ; - anim = np.anim } ; PPartNP np v2 = np ** { @@ -180,13 +176,11 @@ flags coding = utf8 ; DefArt = {s = \\st => "" ; sp = \\st => "これ" ; no = False} ; - MassNP cn = { + MassNP cn = cn ** { s = \\st => cn.object ! st ++ cn.s ! Pl ! st ; - prepositive = cn.prepositive ; needPart = True ; changePolar = False ; meaning = SomeoneElse ; - anim = cn.anim } ; PossPron pron = { diff --git a/src/japanese/VerbJpn.gf b/src/japanese/VerbJpn.gf index fcbecc8c..7dd41f47 100644 --- a/src/japanese/VerbJpn.gf +++ b/src/japanese/VerbJpn.gf @@ -17,8 +17,8 @@ concrete VerbJpn of Verb = CatJpn ** open ResJpn, Prelude in { } ; ComplVV v vp = case v.sense of { - Abil => { - verb = \\sp,a,st,t,p => vp.verb ! sp ! a ! Plain ! TPres ! ResJpn.Pos ++ + Abil => vp ** { + 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 ! ResJpn.Pos ++ "ことが" ++ v.te ! sp ! p ; @@ -28,12 +28,9 @@ concrete VerbJpn of Verb = CatJpn ** open ResJpn, Prelude in { "ことが" ++ v.i_stem ! sp ; 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 ; - prepositive = vp.prepositive ; needSubject = True } ; - Oblig => { + Oblig => vp ** { verb = \\sp,a,st,t => table { Pos => vp.a_stem ! sp ! a ! st ++ "なければ" ++ v.s ! sp ! st ! t ! Neg ; Neg => vp.te ! sp ! a ! st ! Pos ++ "は" ++ v.s ! sp ! st ! t ! Neg @@ -48,20 +45,14 @@ concrete VerbJpn of Verb = CatJpn ** open ResJpn, Prelude in { Pos => vp.a_stem ! sp ! a ! st ++ "なければ" ++ v.ba ! sp ! Pos ; Neg => vp.te ! sp ! a ! st ! Pos ++ "は" ++ v.ba ! sp ! Pos } ; - prep = vp.prep ; - obj = \\st => vp.obj ! st ; - prepositive = vp.prepositive ; needSubject = True } ; - Wish => { + Wish => vp ** { verb = \\sp,a,st,t,p => vp.i_stem ! sp ! a ! st ++ v.s ! sp ! st ! t ! p ; te = \\sp,a,st,p => vp.i_stem ! sp ! a ! st ++ v.te ! sp ! p ; a_stem = \\sp,a,st => vp.i_stem ! sp ! a ! st ++ v.a_stem ! sp ; i_stem = \\sp,a,st => vp.i_stem ! sp ! a ! st ++ v.i_stem ! sp ; ba = \\sp,a,st,p => vp.i_stem ! sp ! a ! st ++ v.ba ! sp ! p ; - prep = vp.prep ; - obj = \\st => vp.obj ! st ; - prepositive = vp.prepositive ; needSubject = True } } ; @@ -205,8 +196,8 @@ concrete VerbJpn of Verb = CatJpn ** open ResJpn, Prelude in { } ; SlashVV v vpslash = case v.sense of { - Abil => { - s = \\sp,st,t,p => vpslash.s ! sp ! Plain ! TPres ! ResJpn.Pos ++ + Abil => vpslash ** { + 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 ! ResJpn.Pos ++ "ことが" ++ v.te ! sp ! p ; @@ -216,12 +207,9 @@ concrete VerbJpn of Verb = CatJpn ** open ResJpn, Prelude in { v.i_stem ! sp ; ba = \\sp,p => vpslash.s ! sp ! Plain ! TPres ! ResJpn.Pos ++ "ことが" ++ v.ba ! sp ! p ; - prep = vpslash.prep ; - obj = vpslash.obj ; - prepositive = vpslash.prepositive ; v2vType = False } ; - Oblig => { + Oblig => vpslash ** { s = \\sp,st,t => table { Pos => vpslash.a_stem ! sp ++ "なければ" ++ v.s ! sp ! st ! t ! Neg ; Neg => vpslash.te ! sp ! Pos ++ "は" ++ v.s ! sp ! st ! t ! Neg @@ -236,38 +224,32 @@ concrete VerbJpn of Verb = CatJpn ** open ResJpn, Prelude in { Pos => vpslash.a_stem ! sp ++ "なければ" ++ v.ba ! sp ! Pos ; Neg => vpslash.te ! sp ! Pos ++ "は" ++ v.ba ! sp ! Pos } ; - prep = vpslash.prep ; - obj = vpslash.obj ; - prepositive = vpslash.prepositive ; v2vType = False } ; - Wish => { + Wish => vpslash ** { s = \\sp,st,t,p => vpslash.i_stem ! sp ++ v.s ! sp ! st ! t ! p ; te = \\sp,p => vpslash.i_stem ! sp ++ v.te ! sp ! p ; a_stem = \\sp => vpslash.i_stem ! sp ++ v.a_stem ! sp ; i_stem = \\sp => vpslash.i_stem ! sp ++ v.i_stem ! sp ; ba = \\sp,p => vpslash.i_stem ! sp ++ v.ba ! sp ! p ; - prep = vpslash.prep ; - obj = vpslash.obj ; - prepositive = vpslash.prepositive ; v2vType = False - } - } ; + } + } ; SlashV2VNP v2v np vpslash = { - s = \\sp,st,t,p => vpslash.s ! sp ! Plain ! TPres ! ResJpn.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 ! 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 ! ResJpn.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 } ; - ReflVP vpslash = { + ReflVP vpslash = vpslash ** { verb = \\sp,a,st,t,p => vpslash.s ! sp ! st ! t ! p ; a_stem = \\sp,a,st => vpslash.a_stem ! sp ; i_stem = \\sp,a,st => vpslash.i_stem ! sp ; @@ -299,14 +281,8 @@ concrete VerbJpn of Verb = CatJpn ** open ResJpn, Prelude in { prepositive = \\st => [] ; needSubject = True } ; - - AdvVP vp adv = { - verb = vp.verb ; - te = vp.te ; - a_stem = vp.a_stem ; - i_stem = vp.i_stem ; - ba = vp.ba ; - prep = vp.prep ; + + AdvVP vp adv = vp ** { obj = \\st => case adv.prepositive of { True => vp.obj ! st ; False => adv.s ! st ++ vp.obj ! st @@ -315,30 +291,15 @@ concrete VerbJpn of Verb = CatJpn ** open ResJpn, Prelude in { True => vp.prepositive ! st ++ adv.s ! st ; False => vp.prepositive ! st } ; - needSubject = vp.needSubject } ; ExtAdvVP = AdvVP ; - AdVVP adv vp = { - verb = vp.verb ; - te = vp.te ; - a_stem = vp.a_stem ; - i_stem = vp.i_stem ; - ba = vp.ba ; - prep = vp.prep ; + AdVVP adv vp = vp ** { obj = \\st => adv.s ++ vp.obj ! st ; - prepositive = vp.prepositive ; - needSubject = vp.needSubject } ; - - AdvVPSlash vpslash adv = { - s = vpslash.s ; - te = vpslash.te ; - a_stem = vpslash.a_stem ; - i_stem = vpslash.i_stem ; - ba = vpslash.ba ; - prep = vpslash.prep ; + + AdvVPSlash vpslash adv = vpslash ** { obj = \\st => case adv.prepositive of { True => vpslash.obj ! st ; False => adv.s ! st ++ vpslash.obj ! st @@ -349,16 +310,9 @@ concrete VerbJpn of Verb = CatJpn ** open ResJpn, Prelude in { } ; v2vType = False } ; - - AdVVPSlash adv vpslash = { - s = vpslash.s ; - te = vpslash.te ; - a_stem = vpslash.a_stem ; - i_stem = vpslash.i_stem ; - ba = vpslash.ba ; - prep = vpslash.prep ; + + AdVVPSlash adv vpslash = vpslash ** { obj = \\st => adv.s ++ vpslash.obj ! st ; - prepositive = vpslash.prepositive ; v2vType = False } ;