some bug fix
[IRC.git] / Robust / src / IR / Tree / OpNode.java
index d2a9dc81d9d7504bf42dad271aaef5cc5d53b8d3..e367665e574cfc640245a58a51161e794ce9954d 100644 (file)
@@ -77,6 +77,10 @@ public class OpNode extends ExpressionNode {
         eval = Long.valueOf(l.longValue() > 0 ? 0 : 1);
       else if (this.op.getOp() == Operation.COMP)
         eval = Long.valueOf((long)(~l.longValue()));
+      else if (this.op.getOp() == Operation.UNARYMINUS)
+        eval = Long.valueOf(-l.longValue() );
+      else if (this.op.getOp() == Operation.UNARYPLUS)
+        eval = Long.valueOf(+l.longValue());
       else {
         Long r = this.right.evaluate();
         if(r != null) {
@@ -118,10 +122,6 @@ public class OpNode extends ExpressionNode {
             eval = Long.valueOf(l.longValue() / r.longValue());
           else if (this.op.getOp() == Operation.MOD)
             eval = Long.valueOf(l.longValue() % r.longValue());
-          else if (this.op.getOp() == Operation.UNARYPLUS)
-            eval = Long.valueOf(+l.longValue());
-          else if (this.op.getOp() == Operation.UNARYMINUS)
-            eval = Long.valueOf(-l.longValue() );
           else if (this.op.getOp() == Operation.ASSIGN)
             eval = Long.valueOf(r.longValue());
         }