X-Git-Url: http://nitlanguage.org diff --git a/src/parser/nit.sablecc3xx b/src/parser/nit.sablecc3xx index 5412b2b..1104c50 100644 --- a/src/parser/nit.sablecc3xx +++ b/src/parser/nit.sablecc3xx @@ -65,9 +65,9 @@ kwinterface = 'interface'; kwuniversal = 'universal'; kwspecial = 'special'; kwend = 'end'; -kwmeth = 'meth'; +kwmeth = 'meth' | 'fun'; //FIXME: Remove the 'meth' alternative once the transition is done kwtype = 'type'; -kwattr = 'attr'; +kwattr = 'attr'; //FIXME: remove kwattr once the transition is done kwinit = 'init'; kwredef = 'redef'; kwis = 'is'; @@ -209,8 +209,11 @@ propdef~toplevel {-> propdef} !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)} -!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)} +//FIXME: Remove attr alternative once the transition is done +!toplevel| {attr} [doc]:no readable writable redef visibility kwattr attrid typing? {-> New propdef.attr(doc.doc, readable.able, writable.able, redef.kwredef, visibility, kwattr, Null, 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, Null, attrid, typing.type, expr)} +!toplevel| {var} [doc]:no readable writable redef visibility kwvar attrid typing? {-> New propdef.attr(doc.doc, readable.able, writable.able, redef.kwredef, visibility, Null, kwvar, attrid, typing.type, Null)} +!toplevel| {var2} [doc]:no readable writable redef visibility kwvar attrid typing? assign [n2]:no expr {-> New propdef.attr(doc.doc, readable.able, writable.able, redef.kwredef, visibility, Null, kwvar, 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)} ; @@ -310,7 +313,6 @@ stmt~withelse {-> expr} | {while} while~withelse {-> while~withelse.expr} | {for} for~withelse {-> for~withelse.expr} | {assert} assert~withelse {-> assert~withelse.expr} -// | {expr} expr {-> expr.expr} | {call} recv id args_nopar closure_defs~withelse? {-> New expr.call(recv.expr, id, [args_nopar.expr], [closure_defs~withelse.closure_def])} | {super} qualified? kwsuper args_nopar {-> New expr.super(qualified, kwsuper, [args_nopar.expr])} | {init} recv kwinit args_nopar {-> New expr.init(recv.expr, kwinit, [args_nopar.expr])} @@ -555,7 +557,7 @@ formaldef = [id]:classid type?; superclass = kwspecial type; -propdef = {attr} doc? [readable]:able? [writable]:able? kwredef? visibility kwattr [id]:attrid type? expr? +propdef = {attr} doc? [readable]:able? [writable]:able? kwredef? visibility kwattr? kwvar? [id]:attrid type? expr? // Remove the kwattr? once the transition is done | {meth} doc? kwredef? visibility methid signature | {deferred_meth} doc? kwredef? visibility kwmeth methid signature | {intern_meth} doc? kwredef? visibility kwmeth methid signature