acoliver 02/04/28 09:33:58
Modified: src/java/org/apache/poi/hssf/record/formula AddPtg.java
FormulaParser.java IntPtg.java MultiplyPtg.java
Ptg.java
Log:
removes parts of my former stuff in favor of aviks and adds concat operator
Revision Changes Path
1.7 +1 -16
jakarta-poi/src/java/org/apache/poi/hssf/record/formula/AddPtg.java
Index: AddPtg.java
===================================================================
RCS file:
/home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/record/formula/AddPtg.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- AddPtg.java 28 Apr 2002 15:55:37 -0000 1.6
+++ AddPtg.java 28 Apr 2002 16:33:57 -0000 1.7
@@ -115,22 +115,7 @@
{
return "+";
}
-
-
- public static boolean isNextStringToken(String formula, int pos) {
- boolean retval = false;
- while (pos < formula.length() &&
Character.isWhitespace(formula.charAt(pos))) {
- pos++;
- }
-
- if (pos < formula.length()) {
- if (formula.charAt(pos) == ADD.toCharArray()[0]) {
- retval = true;
- }
- }
- return retval;
- }
-
+
public String toFormulaString(Ptg [] operands)
{
StringBuffer buffer = new StringBuffer();
1.6 +10 -1
jakarta-poi/src/java/org/apache/poi/hssf/record/formula/FormulaParser.java
Index: FormulaParser.java
===================================================================
RCS file:
/home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/record/formula/FormulaParser.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- FormulaParser.java 28 Apr 2002 15:17:44 -0000 1.5
+++ FormulaParser.java 28 Apr 2002 16:33:57 -0000 1.6
@@ -310,11 +310,12 @@
/** Parse and Translate a Math Term */
private void Term(){
Factor();
- while (Look == '*' || Look == '/' || Look == '^') {
+ while (Look == '*' || Look == '/' || Look == '^' || Look == '&') {
///TODO do we need to do anything here??
if (Look == '*') Multiply();
if (Look == '/') Divide();
if (Look == '^') Power();
+ if (Look == '&') Concat();
}
}
@@ -324,6 +325,14 @@
Term();
tokens.add(new AddPtg());
}
+
+ /** Recognize and Translate an Add */
+ private void Concat() {
+ Match('&');
+ Term();
+ tokens.add(new ConcatPtg());
+ }
+
/** Recognize and Translate a Subtract */
1.4 +0 -3
jakarta-poi/src/java/org/apache/poi/hssf/record/formula/IntPtg.java
Index: IntPtg.java
===================================================================
RCS file:
/home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/record/formula/IntPtg.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- IntPtg.java 28 Apr 2002 15:52:58 -0000 1.3
+++ IntPtg.java 28 Apr 2002 16:33:57 -0000 1.4
@@ -151,9 +151,6 @@
}
- public static boolean isNextStringToken(String formula, int pos) {
- return (parseString(formula,pos) != null);
- }
public int getStringLength() {
return strlen;
1.6 +1 -19
jakarta-poi/src/java/org/apache/poi/hssf/record/formula/MultiplyPtg.java
Index: MultiplyPtg.java
===================================================================
RCS file:
/home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/record/formula/MultiplyPtg.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- MultiplyPtg.java 28 Apr 2002 15:55:37 -0000 1.5
+++ MultiplyPtg.java 28 Apr 2002 16:33:57 -0000 1.6
@@ -139,23 +139,5 @@
buffer.append("*");
buffer.append(operands[ 1 ]);
return buffer.toString();
- }
-
-
- public static boolean isNextStringToken(String formula, int pos) {
- boolean retval = false;
- while (pos < formula.length() &&
Character.isWhitespace(formula.charAt(pos))) {
- pos++;
- }
-
- if (pos < formula.length()) {
- if (formula.charAt(pos) == MULTIPLY.toCharArray()[0]) {
- retval = true;
- }
- }
- return retval;
- }
-
-
-
+ }
}
1.6 +5 -0 jakarta-poi/src/java/org/apache/poi/hssf/record/formula/Ptg.java
Index: Ptg.java
===================================================================
RCS file:
/home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/record/formula/Ptg.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Ptg.java 27 Apr 2002 14:07:53 -0000 1.5
+++ Ptg.java 28 Apr 2002 16:33:57 -0000 1.6
@@ -188,6 +188,11 @@
case PowerPtg.sid :
retval = new PowerPtg(data, offset);
break;
+
+ case ConcatPtg.sid :
+ retval = new ConcatPtg(data, offset);
+ break;
+
case AreaPtg.sid :
retval = new AreaPtg(data, offset);