1
0
forked from GitHub/gf-rgl

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.
This commit is contained in:
hallgren
2013-09-09 19:52:08 +00:00
parent e556397ec7
commit ff92503142
3 changed files with 15 additions and 14 deletions

View File

@@ -236,7 +236,7 @@ oper
mkAdj2Reg : Str -> Str -> Adj = \petit,petita -> mkAdj2Reg : Str -> Str -> Adj = \petit,petita ->
case <petit,petita> of { case <petit,petita> 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" <_, _ + ("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"
<p@(_ + ("t"|"l"|"ç")), p+"a"> => adjPrim petit ; --1) petit~petita 2) ridícul~ridícula, dolç~dolça <p@(_ + ("t"|"l"|"ç")), p2+"a"> => adjPrim petit ; --1) petit~petita 2) ridícul~ridícula, dolç~dolça -- was nonlinear
<_ + "ig", _> => adjIg petit petita ; --lleig~letja <_ + "ig", _> => adjIg petit petita ; --lleig~letja
<_, _+ "na"> => adjVn petit ; --pla~plana <_, _+ "na"> => adjVn petit ; --pla~plana
<_, _ + ("à"|"é"|"è"|"í"|"ó"|"ò"|"ú") + _> => adjBlau petit petita ; --diari~diària <_, _ + ("à"|"é"|"è"|"í"|"ó"|"ò"|"ú") + _> => adjBlau petit petita ; --diari~diària

View File

@@ -522,9 +522,9 @@ mkVS = overload {
dSilakka ukko ukon ukkoja ; -- auto,auton dSilakka ukko ukon ukkoja ; -- auto,auton
<_ + "mpi", _ + ("emman" | "emmän")> => dSuurempi ukko ; <_ + "mpi", _ + ("emman" | "emmän")> => dSuurempi ukko ;
<_ + "in", _ + ("imman" | "immän")> => dSuurin ukko ; <_ + "in", _ + ("imman" | "immän")> => dSuurin ukko ;
<terv + "e", terv + "een"> => <terv + "e", terv2 + "een"> => -- was nonlinear
dRae ukko ukon ; dRae ukko ukon ;
<taiv + ("as" | "äs"), taiv + ("aan" | "ään")> => <taiv + ("as" | "äs"), taiv2 + ("aan" | "ään")> => -- was nonlinear
dRae ukko ukon ; dRae ukko ukon ;
<nukk + "e", nuk + "een"> => dRae ukko ukon ; <nukk + "e", nuk + "een"> => dRae ukko ukon ;
<arp + "i", arv + "en"> => dArpi ukko ukon ; <arp + "i", arv + "en"> => dArpi ukko ukon ;

View File

@@ -42,14 +42,15 @@ oper
mkNending : Str -> Str -> Gender -> N = \x,n,g -> mkNending : Str -> Str -> Gender -> N = \x,n,g ->
case <x,n> of { case <x,n> of {
<c + "ος", c + "ων"> => mkNoun_anthropos x n g ; -- all of these were nonlinear
<c + "η", c + "εις"> => mkNoun_kivernisi x n g ; <c + "ος", c2 + "ων"> => mkNoun_anthropos x n g ;
<c + "ης", c + "ηδες"> => mkNoun_fournaris x n g ; <c + "η", c2 + "εις"> => mkNoun_kivernisi x n g ;
<c + "ας", c + "ων"> => mkNoun_filakas x n g ; <c + "ης", c2 + "ηδες"> => mkNoun_fournaris x n g ;
<c + "ο", c + "ων"> => mkNoun_prosopo x n g ; <c + "ας", c2 + "ων"> => mkNoun_filakas x n g ;
<c + ("ώς" | "ός" | "ως" ) , c + ("ος"|"ός" ) > => mkNoun_fws x n g ; <c + "ο", c2 + "ων"> => mkNoun_prosopo x n g ;
<c + ("μα" | "ιμο" ), c + "ατα"> => mkNoun_provlima x n g ; <c + ("ώς" | "ός" | "ως" ) , c2 + ("ος"|"ός" ) > => mkNoun_fws x n g ;
<c + "ος", c + "η"> => mkNoun_megethos x n g <c + ("μα" | "ιμο" ), c2 + "ατα"> => mkNoun_provlima x n g ;
<c + "ος", c2 + "η"> => mkNoun_megethos x n g
} ** {lock_N = <>} ; } ** {lock_N = <>} ;
@@ -128,9 +129,9 @@ oper
mkA1 : Str -> Str -> A = \x,n -> mkA1 : Str -> Str -> A = \x,n ->
case <x,n> of { case <x,n> of {
<c + "ης", c + "ες"> => mkAdjective4 x n ; <c + "ης", c2 + "ες"> => mkAdjective4 x n ; -- was nonlinear
<c + "ων", c + "όντων"> => mkAdjective3 x n ; <c + "ων", c2 + "όντων"> => mkAdjective3 x n ; -- was nonlinear
<c + "ύς", c + "έως"> => mkAdjectiveIr x n <c + "ύς", c2 + "έως"> => mkAdjectiveIr x n -- was nonlinear
} ** {lock_A = <>} ; } ** {lock_A = <>} ;