grammar: as unary plus operation (only for thr sake on completion)
authorJean Privat <jean@pryen.org>
Wed, 15 Apr 2015 03:53:38 +0000 (10:53 +0700)
committerJean Privat <jean@pryen.org>
Wed, 15 Apr 2015 05:43:57 +0000 (12:43 +0700)
Signed-off-by: Jean Privat <jean@pryen.org>

src/parser/nit.sablecc3xx
src/parser/parser_nodes.nit

index 26946a7..95bd1c2 100644 (file)
@@ -547,6 +547,7 @@ expr_pow~nopar~nobra {-> expr}
 expr_minus~nopar~nobra {-> expr}
        = expr_new~nopar~nobra {-> expr_new~nopar~nobra.expr}
        | {:uminus} minus expr_minus~nobra
+       | {:uplus} plus expr_minus~nobra
        | {:once} kwonce :no expr_minus~nobra
        ;
 
@@ -883,6 +884,7 @@ expr        = {block} expr* kwend?
        | {slash} expr [expr2]:expr 
        | {percent} expr [expr2]:expr 
        | {uminus} minus expr 
+       | {uplus} plus expr
        | {new} kwnew type id? [args]:exprs
        | {attr} expr [id]:attrid 
        | {attr_assign} expr [id]:attrid assign [value]:expr 
index 95c83bc..6df4943 100644 (file)
@@ -2025,6 +2025,14 @@ class AUminusExpr
        var n_minus: TMinus is writable, noinit
 end
 
+# A unary plus expression. eg `+x`
+class AUplusExpr
+       super ASendExpr
+
+       # The `+` symbol
+       var n_plus: TPlus is writable, noinit
+end
+
 # An explicit instantiation. eg `new T`
 class ANewExpr
        super AExpr