[Schmitzm-commits] r999 - branches/2.2.x/src/schmitzm/lang/tree
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Sun Sep 12 16:10:32 CEST 2010
Author: mojays
Date: 2010-09-12 16:10:32 +0200 (Sun, 12 Sep 2010)
New Revision: 999
Modified:
branches/2.2.x/src/schmitzm/lang/tree/OperationTreeParser.java
Log:
OperationTreeParser: parse exponential format (1.2345E-1) of double values
Modified: branches/2.2.x/src/schmitzm/lang/tree/OperationTreeParser.java
===================================================================
--- branches/2.2.x/src/schmitzm/lang/tree/OperationTreeParser.java 2010-09-12 14:10:11 UTC (rev 998)
+++ branches/2.2.x/src/schmitzm/lang/tree/OperationTreeParser.java 2010-09-12 14:10:32 UTC (rev 999)
@@ -557,7 +557,7 @@
// operand = parseRulePart();
// } else {
// // Sonderfall: Operand startet mit Minus-Zeichen (z.B. '-(1+2)' oder '-abs(-4)')
-// // -> folgende
+// // -> folgenden Operand mit -1 multiplizieren
// if ( token.equals("-") )
// operand = new OperationTree.OperatorNode("*", new OperationTree.ConstantNode(-1.0), parseOperand());
// else {
@@ -798,7 +798,7 @@
operand = parseRulePart();
} else {
// Sonderfall: Operand startet mit Minus-Zeichen (z.B. '-(1+2)' oder '-abs(-4)')
- // -> folgende
+ // -> folgenden Operand mit -1 multiplizieren
if ( token.equals("-") )
operand = new OperationTree.OperatorNode("*", new OperationTree.ConstantNode(-1.0), parseOperand(getOperatorConnectivity("*")));
else {
@@ -1120,6 +1120,17 @@
// das Minus-Zeichen enthalten! Zahl-Token muss angehaengt werden.
if ( token.equals("-") )
token += nextNonWSToken();
+ // Sonderfall: Operand endet mit "E", dann handelt es sich um
+ // die Exponential-Darstellung einer Konstanten, deren
+ // Exponent mit einem Plus- oder Minus-Zeilen versehen ist
+ // z.B. 1.234567E-1
+ // -> folgendes Token anhaengen
+ if ( token.toUpperCase().endsWith("E") ) {
+ // + oder - anhaengen
+ token += nextNonWSToken();
+ // Exponenten anhaengen
+ token += nextNonWSToken();
+ }
try {
return Double.parseDouble(token);
More information about the Schmitzm-commits
mailing list