From 8990ee80a847c6eb8bd7a101d6aad1ec05f74b06 Mon Sep 17 00:00:00 2001 From: odanoburu Date: Mon, 22 Oct 2018 14:18:53 +0000 Subject: [PATCH] (Eng) change lincat of V2A - update V2A linref - add overloaded mkV2A with backwards-compatible signature - update lexicon V2A example - remove old comment with Verb lincat thanks to @inariksit for guidance! --- src/english/CatEng.gf | 10 +++++----- src/english/LexiconEng.gf | 2 +- src/english/ParadigmsEng.gf | 12 ++++++++++-- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/english/CatEng.gf b/src/english/CatEng.gf index d57f7d8f5..3d5b19548 100644 --- a/src/english/CatEng.gf +++ b/src/english/CatEng.gf @@ -92,9 +92,9 @@ concrete CatEng of Cat = CommonX - [Pol,SC,CAdv] ** open ResEng, Prelude in { -- Open lexical classes, e.g. Lexicon - V, VS, VQ, VA = Verb ; -- = {s : VForm => Str} ; - V2, V2A, V2Q, V2S = Verb ** {c2 : Str} ; - V3 = Verb ** {c2, c3 : Str} ; + V, VS, VQ, VA = Verb ; + V2, V2Q, V2S = Verb ** {c2 : Str} ; + V2A,V3 = Verb ** {c2, c3 : Str} ; VV = {s : VVForm => Str ; p : Str ; typ : VVType} ; V2V = Verb ** {c2,c3 : Str ; typ : VVType} ; @@ -114,8 +114,8 @@ concrete CatEng of Cat = CommonX - [Pol,SC,CAdv] ** open ResEng, Prelude in { VPSlash = \s -> predV {s = \\_ => s; p = ""; isRefl = False} ** {c2 = ""; gapInMiddle = False; missingAdv = False } ; V, VS, VQ, VA = \s -> {s = \\_ => s; p = ""; isRefl = False} ; - V2, V2A, V2Q, V2S = \s -> {s = \\_ => s; p = ""; isRefl = False; c2=""} ; - V3 = \s -> {s = \\_ => s; p = ""; isRefl = False; c2,c3=""} ; + V2, V2Q, V2S = \s -> {s = \\_ => s; p = ""; isRefl = False; c2=""} ; + V3, V2A = \s -> {s = \\_ => s; p = ""; isRefl = False; c2,c3=""} ; VV = \s -> {s = \\_ => s; p = ""; isRefl = False; typ = VVInf} ; V2V = \s -> {s = \\_ => s; p = ""; isRefl = False; c2,c3="" ; typ = VVInf} ; diff --git a/src/english/LexiconEng.gf b/src/english/LexiconEng.gf index 7597a7a50..cd9d2a8b8 100644 --- a/src/english/LexiconEng.gf +++ b/src/english/LexiconEng.gf @@ -132,7 +132,7 @@ lin oil_N = regN "oil" ; old_A = regADeg "old" ; open_V2 = dirV2 (mkV "open" "opens" "opened" "opened" "opening") ; - paint_V2A = mkV2A (regV "paint") noPrep ; + paint_V2A = mkV2A (regV "paint") ; paper_N = regN "paper" ; paris_PN = mkPN (mkN nonhuman (mkN "Paris")) ; peace_N = regN "peace" ; diff --git a/src/english/ParadigmsEng.gf b/src/english/ParadigmsEng.gf index d88630e99..1a56707b4 100644 --- a/src/english/ParadigmsEng.gf +++ b/src/english/ParadigmsEng.gf @@ -321,7 +321,11 @@ oper } ; ingV2V : V -> Prep -> Prep -> V2V ; -- e.g. prevent (noPrep NP) (from VP-ing) mkVA : V -> VA ; -- e.g. become (AP) - mkV2A : V -> Prep -> V2A ; -- e.g. paint (NP) (AP) + mkV2A : overload { + mkV2A : V -> V2A ; -- e.g. paint (NP) (AP) + mkV2A : V -> Prep -> V2A ; -- backwards compatibility + mkV2A : V -> Prep -> Prep -> V2A ; -- e.g. strike (NP) as (AP) + } ; mkVQ : V -> VQ ; -- e.g. wonder (QS) mkV2Q : V -> Prep -> V2Q ; -- e.g. ask (NP) (QS) @@ -601,7 +605,11 @@ mkInterj : Str -> Interj ingV2V v p t = lin V2V (prepV2 v p ** {c3 = t.s ; typ = VVPresPart}) ; mkVA v = lin VA v ; - mkV2A v p = lin V2A (prepV2 v p) ; + mkV2A = overload { + mkV2A : V -> V2A = \v -> lin V2A (dirdirV3 v) ; + mkV2A : V -> Prep -> V2A = \v,p -> lin V2A (dirV3 v p) ; + mkV2A : V -> Prep -> Prep -> V2A = \v,p1,p2 -> lin V2A (prepPrepV3 v p1 p2) ; + } ; mkV2Q v p = lin V2Q (prepV2 v p) ; mkAS v = v ;