;
implicit_top_class {-> classdef}
- = tl_propdefs {-> New classdef.top([tl_propdefs.propdef])};
+ = propdefs_toplevel {-> New classdef.top([propdefs_toplevel.propdef])};
implicit_main_class {-> classdef?}
= implicit_main_meth {-> New classdef.main([implicit_main_meth.propdef])}
special {-> superclass}
= no kwspecial [n2]:no type {-> New superclass(kwspecial, type)};
-propdefs {-> propdef*}
- = propdef n1 propdefs_tail* {-> [propdef, propdefs_tail.propdef]};
-propdefs_tail {-> propdef}
- = propdef n1 {-> propdef};
-propdef
- = {attr} [doc]:no readable writable redef visibility kwattr attrid typing? {-> New propdef.attr(doc.doc, readable.able, writable.able, redef.kwredef, visibility, kwattr, attrid, typing.type, Null)}
- | {attr2} [doc]:no readable writable redef visibility kwattr attrid typing? assign [n2]:no expr {-> New propdef.attr(doc.doc, readable.able, writable.able, redef.kwredef, visibility, kwattr, attrid, typing.type, expr)}
- | {deferred} [doc]:no redef visibility kwmeth methid signature kwis kwabstract {-> New propdef.deferred_meth(doc.doc, redef.kwredef, visibility, kwmeth, methid, signature.signature)}
- | {intern} [doc]:no redef visibility kwmeth methid signature kwis kwintern {-> New propdef.intern_meth(doc.doc, redef.kwredef, visibility, kwmeth, methid, signature.signature)}
+propdefs~toplevel {-> propdef*}
+ = propdef~toplevel n1 propdefs_tail~toplevel* {-> [propdef~toplevel.propdef, propdefs_tail~toplevel.propdef]}
+ ;
+propdefs_tail~toplevel {-> propdef}
+ = propdef~toplevel n1 {-> propdef~toplevel.propdef}
+ ;
+propdef~toplevel {-> propdef}
+ = {meth} [doc]:no redef visibility kwmeth methid signature kwdo stmtso kwend? {-> New propdef.concrete_meth(doc.doc, redef.kwredef, visibility, kwmeth, methid, signature, stmtso.expr)}
+!toplevel| {deferred} [doc]:no redef visibility kwmeth methid signature kwis kwabstract {-> New propdef.deferred_meth(doc.doc, redef.kwredef, visibility, kwmeth, methid, signature.signature)}
+!toplevel| {intern} [doc]:no redef visibility kwmeth methid signature kwis kwintern {-> New propdef.intern_meth(doc.doc, redef.kwredef, visibility, kwmeth, methid, signature.signature)}
| {extern} [doc]:no redef visibility kwmeth methid signature kwis kwextern string? {-> New propdef.extern_meth(doc.doc, redef.kwredef, visibility, kwmeth, methid, signature.signature, string)}
- | {meth} [doc]:no redef visibility kwmeth methid signature kwdo stmtso kwend? {-> New propdef.concrete_meth(doc.doc, redef.kwredef, visibility, kwmeth, methid, signature, stmtso.expr)}
- | {init} [doc]:no redef visibility kwinit methid? signature kwdo stmtso kwend? {-> New propdef.concrete_init(doc.doc, redef.kwredef, visibility, kwinit, methid, signature, stmtso.expr)}
- | {type} [doc]:no redef visibility kwtype classid typing {-> New propdef.type(doc.doc, redef.kwredef, visibility, kwtype, classid, typing.type)}
+!toplevel| {attr} [doc]:no readable writable redef visibility kwattr attrid typing? {-> New propdef.attr(doc.doc, readable.able, writable.able, redef.kwredef, visibility, kwattr, attrid, typing.type, Null)}
+!toplevel| {attr2} [doc]:no readable writable redef visibility kwattr attrid typing? assign [n2]:no expr {-> New propdef.attr(doc.doc, readable.able, writable.able, redef.kwredef, visibility, kwattr, attrid, typing.type, expr)}
+!toplevel| {init} [doc]:no redef visibility kwinit methid? signature kwdo stmtso kwend? {-> New propdef.concrete_init(doc.doc, redef.kwredef, visibility, kwinit, methid, signature, stmtso.expr)}
+!toplevel| {type} [doc]:no redef visibility kwtype classid typing {-> New propdef.type(doc.doc, redef.kwredef, visibility, kwtype, classid, typing.type)}
;
readable {-> able?}
= redef kwreadable {-> New able.read(redef.kwredef, kwreadable)}
| {empty} {-> Null}
;
-tl_propdefs {-> propdef*}
- = tl_propdef n1 tl_propdefs_tail* {-> [tl_propdef.propdef, tl_propdefs_tail.propdef]};
-tl_propdefs_tail {-> propdef}
- = tl_propdef n1 {-> tl_propdef.propdef};
-tl_propdef {-> propdef}
- = {extern} [doc]:no redef visibility kwmeth methid signature kwis kwextern string? {-> New propdef.extern_meth(doc.doc, redef.kwredef, visibility, kwmeth, methid, signature, string)}
- | {meth} [doc]:no redef visibility kwmeth methid signature kwdo stmtso {-> New propdef.concrete_meth(doc.doc, redef.kwredef, visibility, kwmeth, methid, signature, stmtso.expr)}
- ;
-
visibility
= {public} {-> New visibility.public()}
| {private} kwprivate no {-> New visibility.private(kwprivate)}