avik        2005/05/18 11:58:57

  Modified:    src/java/org/apache/poi/hssf/model FormulaParser.java
               src/testcases/org/apache/poi/hssf/model
                        TestFormulaParser.java
  Log:
  unary plus: patch by Amol Deshmukh, test added
  
  Revision  Changes    Path
  1.20      +6 -1      
jakarta-poi/src/java/org/apache/poi/hssf/model/FormulaParser.java
  
  Index: FormulaParser.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/model/FormulaParser.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- FormulaParser.java        21 Apr 2005 13:43:51 -0000      1.19
  +++ FormulaParser.java        18 May 2005 18:58:57 -0000      1.20
  @@ -115,7 +115,7 @@
       private void Abort(String s) {
           Error(s);
           //System.exit(1);  //throw exception??
  -        throw new RuntimeException("Cannot Parse, sorry : "+s);
  +        throw new RuntimeException("Cannot Parse, sorry : "+s + " [Formula 
String was: '"+formulaString+"']");
       }
       
       
  @@ -466,6 +466,11 @@
                Factor();
                tokens.add(new UnaryMinusPtg());
        }
  +        else if (look == '+') {
  +            Match('+');
  +            Factor();
  +            tokens.add(new UnaryPlusPtg());
  +        }
           else if (look == '(' ) {
               Match('(');
               Expression();
  
  
  
  1.16      +12 -1     
jakarta-poi/src/testcases/org/apache/poi/hssf/model/TestFormulaParser.java
  
  Index: TestFormulaParser.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-poi/src/testcases/org/apache/poi/hssf/model/TestFormulaParser.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- TestFormulaParser.java    21 Apr 2005 13:01:29 -0000      1.15
  +++ TestFormulaParser.java    18 May 2005 18:58:57 -0000      1.16
  @@ -36,6 +36,7 @@
   import org.apache.poi.hssf.record.formula.ReferencePtg;
   import org.apache.poi.hssf.record.formula.StringPtg;
   import org.apache.poi.hssf.record.formula.UnaryMinusPtg;
  +import org.apache.poi.hssf.record.formula.UnaryPlusPtg;
   import org.apache.poi.hssf.usermodel.HSSFCell;
   import org.apache.poi.hssf.usermodel.HSSFRow;
   import org.apache.poi.hssf.usermodel.HSSFSheet;
  @@ -323,7 +324,17 @@
                Ptg[] ptg = fp.getRPNPtg();
                assertTrue("got 2 ptgs", ptg.length == 2);
                assertTrue("first ptg is reference",ptg[0] instanceof 
ReferencePtg);
  -             assertTrue("second ptg is string",ptg[1] instanceof 
UnaryMinusPtg);
  +             assertTrue("second ptg is Minus",ptg[1] instanceof 
UnaryMinusPtg);
  +     }
  +    
  +    public void testUnaryPlus()
  +    {
  +             FormulaParser fp = new FormulaParser("+A1", null);
  +             fp.parse();
  +             Ptg[] ptg = fp.getRPNPtg();
  +             assertTrue("got 2 ptgs", ptg.length == 2);
  +             assertTrue("first ptg is reference",ptg[0] instanceof 
ReferencePtg);
  +             assertTrue("second ptg is Plus",ptg[1] instanceof UnaryPlusPtg);
        }
       
        public void testLeadingSpaceInString()
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
Mailing List:    http://jakarta.apache.org/site/mail2.html#poi
The Apache Jakarta POI Project: http://jakarta.apache.org/poi/

Reply via email to