From 50d100f4acb2e62bac8b01c8071d089c6171843f Mon Sep 17 00:00:00 2001 From: Kohei Yoshida Date: Thu, 1 May 2014 15:16:27 -0400 Subject: 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 --- formula/source/core/api/FormulaCompiler.cxx | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'formula') diff --git a/formula/source/core/api/FormulaCompiler.cxx b/formula/source/core/api/FormulaCompiler.cxx index ce36065c9c86..58a896184be1 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; -- cgit