unary plus: patch by Amol Deshmukh, test added
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@353685 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
b5f199991c
commit
4290d1b472
@ -115,7 +115,7 @@ public class FormulaParser {
|
|||||||
private void Abort(String s) {
|
private void Abort(String s) {
|
||||||
Error(s);
|
Error(s);
|
||||||
//System.exit(1); //throw exception??
|
//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 @@ public class FormulaParser {
|
|||||||
Factor();
|
Factor();
|
||||||
tokens.add(new UnaryMinusPtg());
|
tokens.add(new UnaryMinusPtg());
|
||||||
}
|
}
|
||||||
|
else if (look == '+') {
|
||||||
|
Match('+');
|
||||||
|
Factor();
|
||||||
|
tokens.add(new UnaryPlusPtg());
|
||||||
|
}
|
||||||
else if (look == '(' ) {
|
else if (look == '(' ) {
|
||||||
Match('(');
|
Match('(');
|
||||||
Expression();
|
Expression();
|
||||||
|
@ -36,6 +36,7 @@ import org.apache.poi.hssf.record.formula.Ptg;
|
|||||||
import org.apache.poi.hssf.record.formula.ReferencePtg;
|
import org.apache.poi.hssf.record.formula.ReferencePtg;
|
||||||
import org.apache.poi.hssf.record.formula.StringPtg;
|
import org.apache.poi.hssf.record.formula.StringPtg;
|
||||||
import org.apache.poi.hssf.record.formula.UnaryMinusPtg;
|
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.HSSFCell;
|
||||||
import org.apache.poi.hssf.usermodel.HSSFRow;
|
import org.apache.poi.hssf.usermodel.HSSFRow;
|
||||||
import org.apache.poi.hssf.usermodel.HSSFSheet;
|
import org.apache.poi.hssf.usermodel.HSSFSheet;
|
||||||
@ -323,7 +324,17 @@ public class TestFormulaParser extends TestCase {
|
|||||||
Ptg[] ptg = fp.getRPNPtg();
|
Ptg[] ptg = fp.getRPNPtg();
|
||||||
assertTrue("got 2 ptgs", ptg.length == 2);
|
assertTrue("got 2 ptgs", ptg.length == 2);
|
||||||
assertTrue("first ptg is reference",ptg[0] instanceof ReferencePtg);
|
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()
|
public void testLeadingSpaceInString()
|
||||||
|
Loading…
Reference in New Issue
Block a user