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
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
$ 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}
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}
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
do
$ foreach {elem}
$ if @is_list
- _n_@{name}.visit_all(v)
+ n_@{name}.visit_all(v)
$ else
v.enter_visit(_n_@{name})
$ end