* Bug #15850 fixed: now unary plus calls overload for non supported types
[scilab.git] / scilab / modules / ast / src / cpp / parse / flex / scanscilab.ll
index f8ee549..4dea96a 100644 (file)
@@ -841,17 +841,12 @@ assign                    "="
     // Examples
     // ========
     // [a + b] == [(a + b)]
-    // but [a +b] == [a, b] and plus here is unary
-    // the space is non coding:
-    // * after any other binary operator __op__
-    //   Example : [a __op__ +b]
-    // * after brackets or parentheses delimiters
-    //   Example : [(1*2*a) +3]
-    // * at the beginning of a line
-    //   Example : [3 ...
-    //              _+2]
-
-    // no need to unput the '+'
+    // but [a +b] == [a, +b] and plus here is unary and is not removed, as unary plus
+    // is not necessary defined for all data types (http://bugzilla.scilab.org/show_bug.cgi?id=15850)
+    // A priori, the space *is* coding
+
+    unput('+');
+    yylloc.last_column--;
     if (last_token != LBRACK
        && last_token != EOL
        && last_token != SEMI
@@ -879,11 +874,6 @@ assign                     "="
    {
        return scan_throw(COMMA);
    }
-   else
-   {
-       unput('+');
-       yylloc.last_column--;
-   }
   }
 
   {spaces}{minus}                       {