From 8c8a26132db8c94fc51faeee8864bad4e7c6b39a Mon Sep 17 00:00:00 2001 From: Jean Privat Date: Tue, 17 Jun 2014 21:13:12 -0400 Subject: [PATCH] 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 --- src/parser/nit.sablecc3xx | 5 +++-- src/parser/parser_nodes.nit | 4 ++++ 2 files changed, 7 insertions(+), 2 deletions(-) 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 -- 1.7.9.5