[Mathlib-commitlog] SF.net SVN: mathlib:[446] JMathLib/trunk/src/jmathlib/core/tokens/ UnaryOperato
Status: Beta
Brought to you by:
st_mueller
|
From: <st_...@us...> - 2008-11-17 20:20:52
|
Revision: 446
http://mathlib.svn.sourceforge.net/mathlib/?rev=446&view=rev
Author: st_mueller
Date: 2008-11-17 20:20:44 +0000 (Mon, 17 Nov 2008)
Log Message:
-----------
added support for 5++ and 3--
Modified Paths:
--------------
JMathLib/trunk/src/jmathlib/core/tokens/UnaryOperatorToken.java
Modified: JMathLib/trunk/src/jmathlib/core/tokens/UnaryOperatorToken.java
===================================================================
--- JMathLib/trunk/src/jmathlib/core/tokens/UnaryOperatorToken.java 2008-11-16 18:24:28 UTC (rev 445)
+++ JMathLib/trunk/src/jmathlib/core/tokens/UnaryOperatorToken.java 2008-11-17 20:20:44 UTC (rev 446)
@@ -48,20 +48,27 @@
// -- operator
// check if operand is a variable (e.g. a--, bar--)
- if(!(operand instanceof VariableToken))
+ if(operand instanceof VariableToken)
+ {
+ // first: evaluate and return original value variable
+ result = operand.evaluate(null);
+
+ // second: decrease variable
+ OperandToken op = result.subtract(new DoubleNumberToken(1));
+
+ // save new variable value
+ String variable = ((VariableToken)operand).getName();
+ //getVariables().getVariable(variable).assign(op);
+ getVariable(variable).assign(op);
+ }
+ else if(operand instanceof NumberToken)
+ {
+ // 4--
+ result = operand.subtract(new DoubleNumberToken(1));
+ }
+ else
Errors.throwMathLibException("UnaryOperatorToken --");
-
- // first: evaluate and return original value variable
- result = operand.evaluate(null);
-
- // second: decrease variable
- OperandToken op = result.subtract(new DoubleNumberToken(1));
- // save new variable value
- String variable = ((VariableToken)operand).getName();
- //getVariables().getVariable(variable).assign(op);
- getVariable(variable).assign(op);
-
break;
}
case '+':
@@ -69,20 +76,27 @@
// ++ operator
// check if operand is a variable (e.g. a++, bar++)
- if(!(operand instanceof VariableToken))
+ if(operand instanceof VariableToken)
+ {
+ // first: evaluate and return original value variable
+ result = operand.evaluate(null);
+
+ // second: increase variable
+ OperandToken op = result.add(new DoubleNumberToken(1));
+
+ // save new variable value
+ String variable = ((VariableToken)operand).getName();
+ //getVariables().getVariable(variable).assign(op);
+ getVariable(variable).assign(op);
+ }
+ else if(operand instanceof NumberToken)
+ {
+ // 5++
+ result = operand.add(new DoubleNumberToken(1));
+ }
+ else
Errors.throwMathLibException("UnaryOperatorToken ++");
-
- // first: evaluate and return original value variable
- result = operand.evaluate(null);
-
- // second: increase variable
- OperandToken op = result.add(new DoubleNumberToken(1));
- // save new variable value
- String variable = ((VariableToken)operand).getName();
- //getVariables().getVariable(variable).assign(op);
- getVariable(variable).assign(op);
-
break;
}
default:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|