X-Git-Url: http://nitlanguage.org?ds=sidebyside diff --git a/src/parser/xss/prods.xss b/src/parser/xss/prods.xss index 8a5edcb..da6dae9 100644 --- a/src/parser/xss/prods.xss +++ b/src/parser/xss/prods.xss @@ -27,12 +27,12 @@ class @ename super ${../@ename} $ foreach {elem} $ if @is_list - readable var _n_@name: List[@etype] = new List[@etype] + var n_@name: List[@etype] = new List[@etype] $ else $ if @modifier - readable var _n_@name: nullable @etype = null + var n_@name: nullable @etype = null is writable $ else - readable var _n_@name: @etype + var n_@name: @etype is writable, noinit $ end $ end $ end @@ -41,16 +41,15 @@ $ end class Start super Prod - readable var _n_base: nullable $baseprod - readable var _n_eof: EOF - init( - n_base: nullable $baseprod, - n_eof: EOF) - do - _n_base = n_base - _n_eof = n_eof - end - + var n_base: nullable $baseprod is writable, noinit + var n_eof: EOF is writable, noinit + init( + n_base: nullable $baseprod, + n_eof: EOF) + do + _n_base = n_base + _n_eof = n_eof + end end $ end template @@ -58,8 +57,6 @@ $ template make_prods() $ set baseprod = {//prod/@ename} $ foreach {//alt} redef class @ename - private init empty_init do end - $ if {count(elem)!=0} init init_${translate(@ename,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")} ( $ foreach {elem} @@ -74,10 +71,9 @@ $ else init init_${translate(@ename,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")} $ end do - empty_init $ foreach {elem} $ if @is_list - _n_@{name}.unsafe_add_all(n_@{name}) + self.n_@{name}.unsafe_add_all(n_@{name}) $ else $ if {@modifier} _n_@name = n_@{name} @@ -94,7 +90,7 @@ $ end do $ foreach {elem} $ if @is_list - if _n_@{name}.replace_child(old_child, new_child) then return + if n_@{name}.replace_child(old_child, new_child) then return $ else if _n_@{name} == old_child then $ if @modifier @@ -128,7 +124,7 @@ $ end foreach do $ foreach {elem} $ if @is_list - _n_@{name}.visit_all(v) + n_@{name}.visit_all(v) $ else v.enter_visit(_n_@{name}) $ end