[Libreoffice-commits] core.git: formula/source include/formula
Kohei Yoshida
kohei.yoshida at collabora.com
Thu May 1 12:29:06 PDT 2014
formula/source/core/api/FormulaCompiler.cxx | 21 +++++++++++++++++----
include/formula/FormulaCompiler.hxx | 1 +
2 files changed, 18 insertions(+), 4 deletions(-)
New commits:
commit 50d100f4acb2e62bac8b01c8071d089c6171843f
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date: Thu May 1 15:16:27 2014 -0400
Make a separate method to detemine if an opcode is a jump command.
Jump to make it a bit more pleasant to follow the code...
Change-Id: Ie9bef122e8bb63a2d8cc54acc9c8ddc9ac9a2e8a
diff --git a/formula/source/core/api/FormulaCompiler.cxx b/formula/source/core/api/FormulaCompiler.cxx
index ce36065..58a8961 100644
--- a/formula/source/core/api/FormulaCompiler.cxx
+++ b/formula/source/core/api/FormulaCompiler.cxx
@@ -805,6 +805,21 @@ bool FormulaCompiler::IsOpCodeVolatile( OpCode eOp )
return bRet;
}
+bool FormulaCompiler::IsOpCodeJumpCommand( OpCode eOp )
+{
+ switch (eOp)
+ {
+ case ocIf:
+ case ocIfError:
+ case ocIfNA:
+ case ocChose:
+ return true;
+ default:
+ ;
+ }
+ return false;
+}
+
// Remove quotes, escaped quotes are unescaped.
bool FormulaCompiler::DeQuote( OUString& rStr )
{
@@ -1241,9 +1256,7 @@ void FormulaCompiler::Factor()
|| eOp == ocOr
|| eOp == ocBad
|| ( eOp >= ocInternalBegin && eOp <= ocInternalEnd )
- || ( bCompileForFAP
- && ( eOp == ocIf || eOp == ocIfError || eOp == ocIfNA || eOp == ocChose ) )
- )
+ || (bCompileForFAP && IsOpCodeJumpCommand(eOp)))
{
pFacToken = mpToken;
OpCode eMyLastOp = eOp;
@@ -1291,7 +1304,7 @@ void FormulaCompiler::Factor()
pFacToken->SetByte( nSepCount );
PutCode( pFacToken );
}
- else if (eOp == ocIf || eOp == ocIfError || eOp == ocIfNA || eOp == ocChose)
+ else if (IsOpCodeJumpCommand(eOp))
{
// the PC counters are -1
pFacToken = mpToken;
diff --git a/include/formula/FormulaCompiler.hxx b/include/formula/FormulaCompiler.hxx
index a38798a..9df22ec 100644
--- a/include/formula/FormulaCompiler.hxx
+++ b/include/formula/FormulaCompiler.hxx
@@ -231,6 +231,7 @@ public:
{ bCompileForFAP = bVal; bIgnoreErrors = bVal; }
static bool IsOpCodeVolatile( OpCode eOp );
+ static bool IsOpCodeJumpCommand( OpCode eOp );
static bool DeQuote( OUString& rStr );
More information about the Libreoffice-commits
mailing list