From: Jean Privat Date: Wed, 18 Jun 2014 01:13:12 +0000 (-0400) Subject: grammar: accept `public` as a valid visibility X-Git-Tag: v0.6.7~52^2~9 X-Git-Url: http://nitlanguage.org grammar: accept `public` as a valid visibility It has the same semantic than no explicit visibility, but will allows a simpler transition to a new visibility level. See: #499 Signed-off-by: Jean Privat --- diff --git a/src/parser/nit.sablecc3xx b/src/parser/nit.sablecc3xx index 98bbcc2..5d97179 100644 --- a/src/parser/nit.sablecc3xx +++ b/src/parser/nit.sablecc3xx @@ -295,7 +295,8 @@ writable {-> able} ; visibility - = {public} {-> New visibility.public()} + = {public} {-> New visibility.public(Null)} + | {public2} kwpublic no {-> New visibility.public(kwpublic)} | {private} kwprivate no {-> New visibility.private(kwprivate)} | {protected} kwprotected no {-> New visibility.protected(kwprotected)} | {intrude} kwintrude no {-> New visibility.intrude(kwintrude)} @@ -745,7 +746,7 @@ import = {std} visibility kwimport [name]:module_name annotations? ; visibility - = {public} + = {public} kwpublic? | {private} kwprivate | {protected} kwprotected | {intrude} kwintrude diff --git a/src/parser/parser_nodes.nit b/src/parser/parser_nodes.nit index 7ea1c4b..5cdf527 100644 --- a/src/parser/parser_nodes.nit +++ b/src/parser/parser_nodes.nit @@ -761,6 +761,10 @@ abstract class AVisibility end class APublicVisibility super AVisibility + var _n_kwpublic: nullable TKwpublic + fun n_kwpublic: nullable TKwpublic do return _n_kwpublic + fun n_kwpublic=(n_kwpublic: nullable TKwpublic) do _n_kwpublic = n_kwpublic + init do end end class APrivateVisibility super AVisibility