syntax: add call reference (funref+recv capture) `&x.foo`
[nit.git] / src / parser / nit.sablecc3xx
index d7380c5..8e8bce4 100644 (file)
@@ -639,6 +639,7 @@ expr_new~nopar~nobra {-> expr}
        = expr_atom~nopar~nobra {-> expr_atom~nopar~nobra.expr}
        | {new} kwnew no type_atom~nobra_nopar args {-> New expr.new(kwnew, type_atom~nobra_nopar.type, Null, args.exprs)}
        | {isset_attr} kwisset recv~nopar~nobra qualified_o attrid {-> New expr.isset_attr(kwisset, recv~nopar~nobra.expr, attrid)}
+       | {callref} amp recv~nopar~nobra qid args {-> New expr.callref(amp, recv~nopar~nobra.expr, qid, args.exprs)}
        ;
 
 expr_atom~nopar~nobra {-> expr}
@@ -1021,6 +1022,7 @@ expr      = {block} expr* kwend?
        | {attr_assign} expr [id]:attrid assign [value]:expr
        | {attr_reassign} expr [id]:attrid assign_op [value]:expr
        | {call} expr qid [args]:exprs
+       | {callref} amp expr qid [args]:exprs
        | {call_assign} expr qid [args]:exprs assign [value]:expr
        | {call_reassign} expr qid [args]:exprs assign_op [value]:expr
        | {super} qualified? kwsuper [args]:exprs