From ff925031429edd05870db3213018383f374ab288 Mon Sep 17 00:00:00 2001 From: hallgren Date: Mon, 9 Sep 2013 19:52:08 +0000 Subject: [PATCH] Nonlinear patterns in concrete syntax are now detected and reported as errors Before, they were silently converted to linear patterns. Nonlinear patterns in MorphoCat.gf, ParadigmsGre.gf and ParadigmsFin.gf have been make linear by renaming pattern variables. --- src/catalan/MorphoCat.gf | 2 +- src/finnish/ParadigmsFin.gf | 4 ++-- src/greek/ParadigmsGre.gf | 23 ++++++++++++----------- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/catalan/MorphoCat.gf b/src/catalan/MorphoCat.gf index 7f65666c..21526565 100644 --- a/src/catalan/MorphoCat.gf +++ b/src/catalan/MorphoCat.gf @@ -236,7 +236,7 @@ oper mkAdj2Reg : Str -> Str -> Adj = \petit,petita -> case of { <_, _ + ("b"|"c"|"d"|"e"|"f"|"g"|"h"|"i"|"j"|"k"|"l"|"m"|"n"|"o"|"p"|"q"|"r"|"s"|"t"|"u"|"v"|"x"|"y"|"z")> => adjFidel petit ; --feminine doesn't end in "a" - => adjPrim petit ; --1) petit~petita 2) ridícul~ridícula, dolç~dolça + => adjPrim petit ; --1) petit~petita 2) ridícul~ridícula, dolç~dolça -- was nonlinear <_ + "ig", _> => adjIg petit petita ; --lleig~letja <_, _+ "na"> => adjVn petit ; --pla~plana <_, _ + ("à"|"é"|"è"|"í"|"ó"|"ò"|"ú") + _> => adjBlau petit petita ; --diari~diària diff --git a/src/finnish/ParadigmsFin.gf b/src/finnish/ParadigmsFin.gf index ecdcc822..8d488831 100644 --- a/src/finnish/ParadigmsFin.gf +++ b/src/finnish/ParadigmsFin.gf @@ -522,9 +522,9 @@ mkVS = overload { dSilakka ukko ukon ukkoja ; -- auto,auton <_ + "mpi", _ + ("emman" | "emmn")> => dSuurempi ukko ; <_ + "in", _ + ("imman" | "immn")> => dSuurin ukko ; - => + => -- was nonlinear dRae ukko ukon ; - => + => -- was nonlinear dRae ukko ukon ; => dRae ukko ukon ; => dArpi ukko ukon ; diff --git a/src/greek/ParadigmsGre.gf b/src/greek/ParadigmsGre.gf index f42cea8f..f5df9196 100644 --- a/src/greek/ParadigmsGre.gf +++ b/src/greek/ParadigmsGre.gf @@ -42,14 +42,15 @@ oper mkNending : Str -> Str -> Gender -> N = \x,n,g -> case of { - => mkNoun_anthropos x n g ; - => mkNoun_kivernisi x n g ; - => mkNoun_fournaris x n g ; - => mkNoun_filakas x n g ; - => mkNoun_prosopo x n g ; - => mkNoun_fws x n g ; - => mkNoun_provlima x n g ; - => mkNoun_megethos x n g + -- all of these were nonlinear + => mkNoun_anthropos x n g ; + => mkNoun_kivernisi x n g ; + => mkNoun_fournaris x n g ; + => mkNoun_filakas x n g ; + => mkNoun_prosopo x n g ; + => mkNoun_fws x n g ; + => mkNoun_provlima x n g ; + => mkNoun_megethos x n g } ** {lock_N = <>} ; @@ -128,9 +129,9 @@ oper mkA1 : Str -> Str -> A = \x,n -> case of { - => mkAdjective4 x n ; - => mkAdjective3 x n ; - => mkAdjectiveIr x n + => mkAdjective4 x n ; -- was nonlinear + => mkAdjective3 x n ; -- was nonlinear + => mkAdjectiveIr x n -- was nonlinear } ** {lock_A = <>} ;