convert SC_COMPILER to scoped enum
Change-Id: Ib8fdce056847b2b2514f61da18c106bb3e78631c Reviewed-on: https://gerrit.libreoffice.org/25079 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
This commit is contained in:
committed by
Noel Grandin
parent
fd6e86572a
commit
aad5eced79
@@ -305,87 +305,87 @@ ScCompiler::Convention::Convention( FormulaGrammar::AddressConvention eConv )
|
||||
meConv( eConv )
|
||||
{
|
||||
int i;
|
||||
sal_uLong *t= new sal_uLong [128];
|
||||
ScCharFlags *t= new ScCharFlags [128];
|
||||
|
||||
ScCompiler::pConventions[ meConv ] = this;
|
||||
mpCharTable = t;
|
||||
|
||||
for (i = 0; i < 128; i++)
|
||||
t[i] = SC_COMPILER_C_ILLEGAL;
|
||||
t[i] = ScCharFlags::Illegal;
|
||||
|
||||
// tdf#56036: Allow tabs/newlines in imported formulas (for now simply treat them as (and convert to) space)
|
||||
// TODO: tdf#76310: allow saving newlines as is (as per OpenFormula specification v.1.2, clause 5.14 "Whitespace")
|
||||
// This is compliant with the OASIS decision (see https://issues.oasis-open.org/browse/OFFICE-701)
|
||||
// Also, this would enable correct roundtrip from/to OOXML without losing tabs/newlines
|
||||
// This requires saving actual space characters in ocSpaces token, using them in UI and saving
|
||||
/* tab */ t[ 9] = SC_COMPILER_C_CHAR_DONTCARE | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
|
||||
/* lf */ t[10] = SC_COMPILER_C_CHAR_DONTCARE | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
|
||||
/* cr */ t[13] = SC_COMPILER_C_CHAR_DONTCARE | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
|
||||
/* tab */ t[ 9] = ScCharFlags::CharDontCare | ScCharFlags::WordSep | ScCharFlags::ValueSep;
|
||||
/* lf */ t[10] = ScCharFlags::CharDontCare | ScCharFlags::WordSep | ScCharFlags::ValueSep;
|
||||
/* cr */ t[13] = ScCharFlags::CharDontCare | ScCharFlags::WordSep | ScCharFlags::ValueSep;
|
||||
|
||||
/* */ t[32] = SC_COMPILER_C_CHAR_DONTCARE | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
|
||||
/* ! */ t[33] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
|
||||
/* */ t[32] = ScCharFlags::CharDontCare | ScCharFlags::WordSep | ScCharFlags::ValueSep;
|
||||
/* ! */ t[33] = ScCharFlags::Char | ScCharFlags::WordSep | ScCharFlags::ValueSep;
|
||||
if (FormulaGrammar::CONV_ODF == meConv)
|
||||
/* ! */ t[33] |= SC_COMPILER_C_ODF_LABEL_OP;
|
||||
/* " */ t[34] = SC_COMPILER_C_CHAR_STRING | SC_COMPILER_C_STRING_SEP;
|
||||
/* # */ t[35] = SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_CHAR_ERRCONST;
|
||||
/* $ */ t[36] = SC_COMPILER_C_CHAR_WORD | SC_COMPILER_C_WORD | SC_COMPILER_C_CHAR_IDENT | SC_COMPILER_C_IDENT;
|
||||
/* ! */ t[33] |= ScCharFlags::OdfLabelOp;
|
||||
/* " */ t[34] = ScCharFlags::CharString | ScCharFlags::StringSep;
|
||||
/* # */ t[35] = ScCharFlags::WordSep | ScCharFlags::CharErrConst;
|
||||
/* $ */ t[36] = ScCharFlags::CharWord | ScCharFlags::Word | ScCharFlags::CharIdent | ScCharFlags::Ident;
|
||||
if (FormulaGrammar::CONV_ODF == meConv)
|
||||
/* $ */ t[36] |= SC_COMPILER_C_ODF_NAME_MARKER;
|
||||
/* % */ t[37] = SC_COMPILER_C_VALUE;
|
||||
/* & */ t[38] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
|
||||
/* ' */ t[39] = SC_COMPILER_C_NAME_SEP;
|
||||
/* ( */ t[40] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
|
||||
/* ) */ t[41] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
|
||||
/* * */ t[42] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
|
||||
/* + */ t[43] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_EXP | SC_COMPILER_C_VALUE_SIGN;
|
||||
/* , */ t[44] = SC_COMPILER_C_CHAR_VALUE | SC_COMPILER_C_VALUE;
|
||||
/* - */ t[45] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_EXP | SC_COMPILER_C_VALUE_SIGN;
|
||||
/* . */ t[46] = SC_COMPILER_C_WORD | SC_COMPILER_C_CHAR_VALUE | SC_COMPILER_C_VALUE | SC_COMPILER_C_IDENT | SC_COMPILER_C_NAME;
|
||||
/* / */ t[47] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
|
||||
/* $ */ t[36] |= ScCharFlags::OdfNameMarker;
|
||||
/* % */ t[37] = ScCharFlags::Value;
|
||||
/* & */ t[38] = ScCharFlags::Char | ScCharFlags::WordSep | ScCharFlags::ValueSep;
|
||||
/* ' */ t[39] = ScCharFlags::NameSep;
|
||||
/* ( */ t[40] = ScCharFlags::Char | ScCharFlags::WordSep | ScCharFlags::ValueSep;
|
||||
/* ) */ t[41] = ScCharFlags::Char | ScCharFlags::WordSep | ScCharFlags::ValueSep;
|
||||
/* * */ t[42] = ScCharFlags::Char | ScCharFlags::WordSep | ScCharFlags::ValueSep;
|
||||
/* + */ t[43] = ScCharFlags::Char | ScCharFlags::WordSep | ScCharFlags::ValueExp | ScCharFlags::ValueSign;
|
||||
/* , */ t[44] = ScCharFlags::CharValue | ScCharFlags::Value;
|
||||
/* - */ t[45] = ScCharFlags::Char | ScCharFlags::WordSep | ScCharFlags::ValueExp | ScCharFlags::ValueSign;
|
||||
/* . */ t[46] = ScCharFlags::Word | ScCharFlags::CharValue | ScCharFlags::Value | ScCharFlags::Ident | ScCharFlags::Name;
|
||||
/* / */ t[47] = ScCharFlags::Char | ScCharFlags::WordSep | ScCharFlags::ValueSep;
|
||||
|
||||
for (i = 48; i < 58; i++)
|
||||
/* 0-9 */ t[i] = SC_COMPILER_C_CHAR_VALUE | SC_COMPILER_C_WORD | SC_COMPILER_C_VALUE | SC_COMPILER_C_VALUE_EXP | SC_COMPILER_C_VALUE_VALUE | SC_COMPILER_C_IDENT | SC_COMPILER_C_NAME;
|
||||
/* 0-9 */ t[i] = ScCharFlags::CharValue | ScCharFlags::Word | ScCharFlags::Value | ScCharFlags::ValueExp | ScCharFlags::ValueValue | ScCharFlags::Ident | ScCharFlags::Name;
|
||||
|
||||
/* : */ t[58] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD;
|
||||
/* ; */ t[59] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
|
||||
/* < */ t[60] = SC_COMPILER_C_CHAR_BOOL | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
|
||||
/* = */ t[61] = SC_COMPILER_C_CHAR | SC_COMPILER_C_BOOL | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
|
||||
/* > */ t[62] = SC_COMPILER_C_CHAR_BOOL | SC_COMPILER_C_BOOL | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
|
||||
/* ? */ t[63] = SC_COMPILER_C_CHAR_WORD | SC_COMPILER_C_WORD | SC_COMPILER_C_NAME;
|
||||
/* : */ t[58] = ScCharFlags::Char | ScCharFlags::Word;
|
||||
/* ; */ t[59] = ScCharFlags::Char | ScCharFlags::WordSep | ScCharFlags::ValueSep;
|
||||
/* < */ t[60] = ScCharFlags::CharBool | ScCharFlags::WordSep | ScCharFlags::ValueSep;
|
||||
/* = */ t[61] = ScCharFlags::Char | ScCharFlags::Bool | ScCharFlags::WordSep | ScCharFlags::ValueSep;
|
||||
/* > */ t[62] = ScCharFlags::CharBool | ScCharFlags::Bool | ScCharFlags::WordSep | ScCharFlags::ValueSep;
|
||||
/* ? */ t[63] = ScCharFlags::CharWord | ScCharFlags::Word | ScCharFlags::Name;
|
||||
/* @ */ // FREE
|
||||
|
||||
for (i = 65; i < 91; i++)
|
||||
/* A-Z */ t[i] = SC_COMPILER_C_CHAR_WORD | SC_COMPILER_C_WORD | SC_COMPILER_C_CHAR_IDENT | SC_COMPILER_C_IDENT | SC_COMPILER_C_CHAR_NAME | SC_COMPILER_C_NAME;
|
||||
/* A-Z */ t[i] = ScCharFlags::CharWord | ScCharFlags::Word | ScCharFlags::CharIdent | ScCharFlags::Ident | ScCharFlags::CharName | ScCharFlags::Name;
|
||||
|
||||
if (FormulaGrammar::CONV_ODF == meConv)
|
||||
{
|
||||
/* [ */ t[91] = SC_COMPILER_C_ODF_LBRACKET;
|
||||
/* [ */ t[91] = ScCharFlags::OdfLBracket;
|
||||
/* \ */ // FREE
|
||||
/* ] */ t[93] = SC_COMPILER_C_ODF_RBRACKET;
|
||||
/* ] */ t[93] = ScCharFlags::OdfRBracket;
|
||||
}
|
||||
else if (FormulaGrammar::CONV_OOO == meConv)
|
||||
{
|
||||
/* [ */ t[91] = SC_COMPILER_C_CHAR;
|
||||
/* [ */ t[91] = ScCharFlags::Char;
|
||||
/* \ */ // FREE
|
||||
/* ] */ t[93] = SC_COMPILER_C_CHAR;
|
||||
/* ] */ t[93] = ScCharFlags::Char;
|
||||
}
|
||||
else if (FormulaGrammar::CONV_XL_OOX == meConv)
|
||||
{
|
||||
/* [ */ t[91] = SC_COMPILER_C_CHAR | SC_COMPILER_C_CHAR_IDENT;
|
||||
/* [ */ t[91] = ScCharFlags::Char | ScCharFlags::CharIdent;
|
||||
/* \ */ // FREE
|
||||
/* ] */ t[93] = SC_COMPILER_C_CHAR | SC_COMPILER_C_IDENT;
|
||||
/* ] */ t[93] = ScCharFlags::Char | ScCharFlags::Ident;
|
||||
}
|
||||
else if (FormulaGrammar::CONV_XL_A1 == meConv)
|
||||
{
|
||||
/* [ */ t[91] = SC_COMPILER_C_CHAR;
|
||||
/* [ */ t[91] = ScCharFlags::Char;
|
||||
/* \ */ // FREE
|
||||
/* ] */ t[93] = SC_COMPILER_C_CHAR;
|
||||
/* ] */ t[93] = ScCharFlags::Char;
|
||||
}
|
||||
else if( FormulaGrammar::CONV_XL_R1C1 == meConv )
|
||||
{
|
||||
/* [ */ t[91] = SC_COMPILER_C_IDENT;
|
||||
/* [ */ t[91] = ScCharFlags::Ident;
|
||||
/* \ */ // FREE
|
||||
/* ] */ t[93] = SC_COMPILER_C_IDENT;
|
||||
/* ] */ t[93] = ScCharFlags::Ident;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -394,55 +394,55 @@ ScCompiler::Convention::Convention( FormulaGrammar::AddressConvention eConv )
|
||||
/* ] */ // FREE
|
||||
}
|
||||
|
||||
/* ^ */ t[94] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
|
||||
/* _ */ t[95] = SC_COMPILER_C_CHAR_WORD | SC_COMPILER_C_WORD | SC_COMPILER_C_CHAR_IDENT | SC_COMPILER_C_IDENT | SC_COMPILER_C_CHAR_NAME | SC_COMPILER_C_NAME;
|
||||
/* ^ */ t[94] = ScCharFlags::Char | ScCharFlags::WordSep | ScCharFlags::ValueSep;
|
||||
/* _ */ t[95] = ScCharFlags::CharWord | ScCharFlags::Word | ScCharFlags::CharIdent | ScCharFlags::Ident | ScCharFlags::CharName | ScCharFlags::Name;
|
||||
/* ` */ // FREE
|
||||
|
||||
for (i = 97; i < 123; i++)
|
||||
/* a-z */ t[i] = SC_COMPILER_C_CHAR_WORD | SC_COMPILER_C_WORD | SC_COMPILER_C_CHAR_IDENT | SC_COMPILER_C_IDENT | SC_COMPILER_C_CHAR_NAME | SC_COMPILER_C_NAME;
|
||||
/* a-z */ t[i] = ScCharFlags::CharWord | ScCharFlags::Word | ScCharFlags::CharIdent | ScCharFlags::Ident | ScCharFlags::CharName | ScCharFlags::Name;
|
||||
|
||||
/* { */ t[123] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP; // array open
|
||||
/* | */ t[124] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP; // array row sep (Should be OOo specific)
|
||||
/* } */ t[125] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP; // array close
|
||||
/* ~ */ t[126] = SC_COMPILER_C_CHAR; // OOo specific
|
||||
/* { */ t[123] = ScCharFlags::Char | ScCharFlags::WordSep | ScCharFlags::ValueSep; // array open
|
||||
/* | */ t[124] = ScCharFlags::Char | ScCharFlags::WordSep | ScCharFlags::ValueSep; // array row sep (Should be OOo specific)
|
||||
/* } */ t[125] = ScCharFlags::Char | ScCharFlags::WordSep | ScCharFlags::ValueSep; // array close
|
||||
/* ~ */ t[126] = ScCharFlags::Char; // OOo specific
|
||||
/* 127 */ // FREE
|
||||
|
||||
if( FormulaGrammar::CONV_XL_A1 == meConv || FormulaGrammar::CONV_XL_R1C1 == meConv || FormulaGrammar::CONV_XL_OOX == meConv )
|
||||
{
|
||||
/* */ t[32] |= SC_COMPILER_C_WORD;
|
||||
/* ! */ t[33] |= SC_COMPILER_C_IDENT | SC_COMPILER_C_WORD;
|
||||
/* " */ t[34] |= SC_COMPILER_C_WORD;
|
||||
/* # */ t[35] &= (~SC_COMPILER_C_WORD_SEP);
|
||||
/* # */ t[35] |= SC_COMPILER_C_WORD;
|
||||
/* % */ t[37] |= SC_COMPILER_C_WORD;
|
||||
/* ' */ t[39] |= SC_COMPILER_C_WORD;
|
||||
/* */ t[32] |= ScCharFlags::Word;
|
||||
/* ! */ t[33] |= ScCharFlags::Ident | ScCharFlags::Word;
|
||||
/* " */ t[34] |= ScCharFlags::Word;
|
||||
/* # */ t[35] &= (~ScCharFlags::WordSep);
|
||||
/* # */ t[35] |= ScCharFlags::Word;
|
||||
/* % */ t[37] |= ScCharFlags::Word;
|
||||
/* ' */ t[39] |= ScCharFlags::Word;
|
||||
|
||||
/* % */ t[37] |= SC_COMPILER_C_WORD;
|
||||
/* & */ t[38] |= SC_COMPILER_C_WORD;
|
||||
/* ' */ t[39] |= SC_COMPILER_C_WORD;
|
||||
/* ( */ t[40] |= SC_COMPILER_C_WORD;
|
||||
/* ) */ t[41] |= SC_COMPILER_C_WORD;
|
||||
/* * */ t[42] |= SC_COMPILER_C_WORD;
|
||||
/* + */ t[43] |= SC_COMPILER_C_WORD;
|
||||
/* % */ t[37] |= ScCharFlags::Word;
|
||||
/* & */ t[38] |= ScCharFlags::Word;
|
||||
/* ' */ t[39] |= ScCharFlags::Word;
|
||||
/* ( */ t[40] |= ScCharFlags::Word;
|
||||
/* ) */ t[41] |= ScCharFlags::Word;
|
||||
/* * */ t[42] |= ScCharFlags::Word;
|
||||
/* + */ t[43] |= ScCharFlags::Word;
|
||||
#if 0 /* this really needs to be locale specific. */
|
||||
/* , */ t[44] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
|
||||
/* , */ t[44] = ScCharFlags::Char | ScCharFlags::WordSep | ScCharFlags::ValueSep;
|
||||
#else
|
||||
/* , */ t[44] |= SC_COMPILER_C_WORD;
|
||||
/* , */ t[44] |= ScCharFlags::Word;
|
||||
#endif
|
||||
/* - */ t[45] |= SC_COMPILER_C_WORD;
|
||||
/* - */ t[45] |= ScCharFlags::Word;
|
||||
|
||||
/* ; */ t[59] |= SC_COMPILER_C_WORD;
|
||||
/* < */ t[60] |= SC_COMPILER_C_WORD;
|
||||
/* = */ t[61] |= SC_COMPILER_C_WORD;
|
||||
/* > */ t[62] |= SC_COMPILER_C_WORD;
|
||||
/* ; */ t[59] |= ScCharFlags::Word;
|
||||
/* < */ t[60] |= ScCharFlags::Word;
|
||||
/* = */ t[61] |= ScCharFlags::Word;
|
||||
/* > */ t[62] |= ScCharFlags::Word;
|
||||
/* ? */ // question really is not permitted in sheet name
|
||||
/* @ */ t[64] |= SC_COMPILER_C_WORD;
|
||||
/* [ */ t[91] |= SC_COMPILER_C_WORD;
|
||||
/* ] */ t[93] |= SC_COMPILER_C_WORD;
|
||||
/* { */ t[123]|= SC_COMPILER_C_WORD;
|
||||
/* | */ t[124]|= SC_COMPILER_C_WORD;
|
||||
/* } */ t[125]|= SC_COMPILER_C_WORD;
|
||||
/* ~ */ t[126]|= SC_COMPILER_C_WORD;
|
||||
/* @ */ t[64] |= ScCharFlags::Word;
|
||||
/* [ */ t[91] |= ScCharFlags::Word;
|
||||
/* ] */ t[93] |= ScCharFlags::Word;
|
||||
/* { */ t[123]|= ScCharFlags::Word;
|
||||
/* | */ t[124]|= ScCharFlags::Word;
|
||||
/* } */ t[125]|= ScCharFlags::Word;
|
||||
/* ~ */ t[126]|= ScCharFlags::Word;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -726,7 +726,7 @@ struct Convention_A1 : public ScCompiler::Convention
|
||||
nSrcPos, nStartFlags, aAddAllowed, nContFlags, aAddAllowed );
|
||||
}
|
||||
|
||||
virtual sal_uLong getCharTableFlags( sal_Unicode c, sal_Unicode /*cLast*/ ) const override
|
||||
virtual ScCharFlags getCharTableFlags( sal_Unicode c, sal_Unicode /*cLast*/ ) const override
|
||||
{
|
||||
return mpCharTable[static_cast<sal_uInt8>(c)];
|
||||
}
|
||||
@@ -1706,12 +1706,12 @@ struct ConventionXL_R1C1 : public ScCompiler::Convention, public ConventionXL
|
||||
r1c1_add_col(rBuffer, rRef.Ref2, aAbsRef.aEnd);
|
||||
}
|
||||
|
||||
virtual sal_uLong getCharTableFlags( sal_Unicode c, sal_Unicode cLast ) const override
|
||||
virtual ScCharFlags getCharTableFlags( sal_Unicode c, sal_Unicode cLast ) const override
|
||||
{
|
||||
sal_uLong nFlags = mpCharTable[static_cast<sal_uInt8>(c)];
|
||||
ScCharFlags nFlags = mpCharTable[static_cast<sal_uInt8>(c)];
|
||||
if (c == '-' && cLast == '[')
|
||||
// '-' can occur within a reference string only after '[' e.g. R[-1]C.
|
||||
nFlags |= SC_COMPILER_C_IDENT;
|
||||
nFlags |= ScCharFlags::Ident;
|
||||
return nFlags;
|
||||
}
|
||||
};
|
||||
@@ -2011,7 +2011,7 @@ sal_Int32 ScCompiler::NextSymbol(bool bInArray)
|
||||
while ((c != 0) && (eState != ssStop) )
|
||||
{
|
||||
pSrc++;
|
||||
sal_uLong nMask = GetCharTableFlags( c, cLast );
|
||||
ScCharFlags nMask = GetCharTableFlags( c, cLast );
|
||||
|
||||
// The parameter separator and the array column and row separators end
|
||||
// things unconditionally if not in string or reference.
|
||||
@@ -2044,10 +2044,10 @@ Label_MaskStateMachine:
|
||||
*pSym++ = c;
|
||||
eState = ssGetTableRefColumn;
|
||||
}
|
||||
else if( nMask & SC_COMPILER_C_ODF_LABEL_OP )
|
||||
else if( nMask & ScCharFlags::OdfLabelOp )
|
||||
{
|
||||
// '!!' automatic intersection
|
||||
if (GetCharTableFlags( pSrc[0], 0 ) & SC_COMPILER_C_ODF_LABEL_OP)
|
||||
if (GetCharTableFlags( pSrc[0], 0 ) & ScCharFlags::OdfLabelOp)
|
||||
{
|
||||
/* TODO: For now the UI "space operator" is used, this
|
||||
* could be enhanced using a specialized OpCode to get
|
||||
@@ -2071,25 +2071,25 @@ Label_MaskStateMachine:
|
||||
}
|
||||
else
|
||||
{
|
||||
nMask &= ~SC_COMPILER_C_ODF_LABEL_OP;
|
||||
nMask &= ~ScCharFlags::OdfLabelOp;
|
||||
goto Label_MaskStateMachine;
|
||||
}
|
||||
}
|
||||
else if( nMask & SC_COMPILER_C_ODF_NAME_MARKER )
|
||||
else if( nMask & ScCharFlags::OdfNameMarker )
|
||||
{
|
||||
// '$$' defined name marker
|
||||
if (GetCharTableFlags( pSrc[0], 0 ) & SC_COMPILER_C_ODF_NAME_MARKER)
|
||||
if (GetCharTableFlags( pSrc[0], 0 ) & ScCharFlags::OdfNameMarker)
|
||||
{
|
||||
// both eaten, not added to pSym
|
||||
++pSrc;
|
||||
}
|
||||
else
|
||||
{
|
||||
nMask &= ~SC_COMPILER_C_ODF_NAME_MARKER;
|
||||
nMask &= ~ScCharFlags::OdfNameMarker;
|
||||
goto Label_MaskStateMachine;
|
||||
}
|
||||
}
|
||||
else if( nMask & SC_COMPILER_C_CHAR )
|
||||
else if( nMask & ScCharFlags::Char )
|
||||
{
|
||||
// '[' is a special case in OOXML, it can start an external
|
||||
// reference ID like [1]Sheet1!A1 that needs to be scanned
|
||||
@@ -2097,7 +2097,7 @@ Label_MaskStateMachine:
|
||||
// transforms an ocDBArea into an ocTableRef.
|
||||
if (c == '[' && FormulaGrammar::isOOXML( meGrammar) && eLastOp != ocDBArea && maTableRefs.empty())
|
||||
{
|
||||
nMask &= ~SC_COMPILER_C_CHAR;
|
||||
nMask &= ~ScCharFlags::Char;
|
||||
goto Label_MaskStateMachine;
|
||||
}
|
||||
else
|
||||
@@ -2106,28 +2106,28 @@ Label_MaskStateMachine:
|
||||
eState = ssStop;
|
||||
}
|
||||
}
|
||||
else if( nMask & SC_COMPILER_C_ODF_LBRACKET )
|
||||
else if( nMask & ScCharFlags::OdfLBracket )
|
||||
{
|
||||
// eaten, not added to pSym
|
||||
eState = ssGetReference;
|
||||
mnPredetectedReference = 1;
|
||||
}
|
||||
else if( nMask & SC_COMPILER_C_CHAR_BOOL )
|
||||
else if( nMask & ScCharFlags::CharBool )
|
||||
{
|
||||
*pSym++ = c;
|
||||
eState = ssGetBool;
|
||||
}
|
||||
else if( nMask & SC_COMPILER_C_CHAR_VALUE )
|
||||
else if( nMask & ScCharFlags::CharValue )
|
||||
{
|
||||
*pSym++ = c;
|
||||
eState = ssGetValue;
|
||||
}
|
||||
else if( nMask & SC_COMPILER_C_CHAR_STRING )
|
||||
else if( nMask & ScCharFlags::CharString )
|
||||
{
|
||||
*pSym++ = c;
|
||||
eState = ssGetString;
|
||||
}
|
||||
else if( nMask & SC_COMPILER_C_CHAR_ERRCONST )
|
||||
else if( nMask & ScCharFlags::CharErrConst )
|
||||
{
|
||||
*pSym++ = c;
|
||||
if (!maTableRefs.empty() && maTableRefs.back().mnLevel == 2)
|
||||
@@ -2135,11 +2135,11 @@ Label_MaskStateMachine:
|
||||
else
|
||||
eState = ssGetErrorConstant;
|
||||
}
|
||||
else if( nMask & SC_COMPILER_C_CHAR_DONTCARE )
|
||||
else if( nMask & ScCharFlags::CharDontCare )
|
||||
{
|
||||
nSpaces++;
|
||||
}
|
||||
else if( nMask & SC_COMPILER_C_CHAR_IDENT )
|
||||
else if( nMask & ScCharFlags::CharIdent )
|
||||
{ // try to get a simple ASCII identifier before calling
|
||||
// i18n, to gain performance during import
|
||||
*pSym++ = c;
|
||||
@@ -2154,7 +2154,7 @@ Label_MaskStateMachine:
|
||||
break;
|
||||
case ssGetIdent:
|
||||
{
|
||||
if ( nMask & SC_COMPILER_C_IDENT )
|
||||
if ( nMask & ScCharFlags::Ident )
|
||||
{ // This catches also $Sheet1.A$1, for example.
|
||||
if( pSym == &cSymbol[ MAXSTRLEN-1 ] )
|
||||
{
|
||||
@@ -2220,7 +2220,7 @@ Label_MaskStateMachine:
|
||||
break;
|
||||
case ssGetBool :
|
||||
{
|
||||
if( nMask & SC_COMPILER_C_BOOL )
|
||||
if( nMask & ScCharFlags::Bool )
|
||||
{
|
||||
*pSym++ = c;
|
||||
eState = ssStop;
|
||||
@@ -2250,16 +2250,16 @@ Label_MaskStateMachine:
|
||||
else
|
||||
*pSym++ = c;
|
||||
}
|
||||
else if( nMask & SC_COMPILER_C_VALUE )
|
||||
else if( nMask & ScCharFlags::Value )
|
||||
*pSym++ = c;
|
||||
else if( nMask & SC_COMPILER_C_VALUE_SEP )
|
||||
else if( nMask & ScCharFlags::ValueSep )
|
||||
{
|
||||
pSrc--;
|
||||
eState = ssStop;
|
||||
}
|
||||
else if (c == 'E' || c == 'e')
|
||||
{
|
||||
if (GetCharTableFlags( pSrc[0], 0 ) & SC_COMPILER_C_VALUE_EXP)
|
||||
if (GetCharTableFlags( pSrc[0], 0 ) & ScCharFlags::ValueExp)
|
||||
*pSym++ = c;
|
||||
else
|
||||
{
|
||||
@@ -2268,10 +2268,10 @@ Label_MaskStateMachine:
|
||||
eState = ssStop;
|
||||
}
|
||||
}
|
||||
else if( nMask & SC_COMPILER_C_VALUE_SIGN )
|
||||
else if( nMask & ScCharFlags::ValueSign )
|
||||
{
|
||||
if (((cLast == 'E') || (cLast == 'e')) &&
|
||||
(GetCharTableFlags( pSrc[0], 0 ) & SC_COMPILER_C_VALUE_VALUE))
|
||||
(GetCharTableFlags( pSrc[0], 0 ) & ScCharFlags::ValueValue))
|
||||
{
|
||||
*pSym++ = c;
|
||||
}
|
||||
@@ -2291,7 +2291,7 @@ Label_MaskStateMachine:
|
||||
break;
|
||||
case ssGetString :
|
||||
{
|
||||
if( nMask & SC_COMPILER_C_STRING_SEP )
|
||||
if( nMask & ScCharFlags::StringSep )
|
||||
{
|
||||
if ( !bQuote )
|
||||
{
|
||||
@@ -2316,7 +2316,7 @@ Label_MaskStateMachine:
|
||||
}
|
||||
break;
|
||||
case ssSkipString:
|
||||
if( nMask & SC_COMPILER_C_STRING_SEP )
|
||||
if( nMask & ScCharFlags::StringSep )
|
||||
eState = ssStop;
|
||||
break;
|
||||
case ssGetErrorConstant:
|
||||
@@ -2338,7 +2338,7 @@ Label_MaskStateMachine:
|
||||
// Check if this is #REF! that starts an invalid reference.
|
||||
// Note we have an implicit '!' here at the end.
|
||||
if (pSym - &cSymbol[0] == 4 && lcl_isUnicodeIgnoreAscii( cSymbol, "#REF", 4) &&
|
||||
((GetCharTableFlags( *pSrc, c) & SC_COMPILER_C_IDENT) != 0))
|
||||
(GetCharTableFlags( *pSrc, c) & ScCharFlags::Ident))
|
||||
eState = ssGetIdent;
|
||||
else
|
||||
eState = ssStop;
|
||||
@@ -2353,7 +2353,7 @@ Label_MaskStateMachine:
|
||||
eState = ssStop;
|
||||
}
|
||||
}
|
||||
else if ((nMask & SC_COMPILER_C_WORD_SEP) ||
|
||||
else if ((nMask & ScCharFlags::WordSep) ||
|
||||
(c < 128 && !rtl::isAsciiAlphanumeric( c)))
|
||||
{
|
||||
bAdd = false;
|
||||
@@ -2465,7 +2465,7 @@ Label_MaskStateMachine:
|
||||
static const int kRefErr = (1 << 10);
|
||||
|
||||
bool bAddToSymbol = true;
|
||||
if ((nMask & SC_COMPILER_C_ODF_RBRACKET) && !(nRefInName & kOpen))
|
||||
if ((nMask & ScCharFlags::OdfRBracket) && !(nRefInName & kOpen))
|
||||
{
|
||||
OSL_ENSURE( nRefInName & (kPast | kDefName | kRefErr),
|
||||
"ScCompiler::NextSymbol: reference: "
|
||||
@@ -3091,7 +3091,7 @@ bool ScCompiler::IsReference( const OUString& rName, const OUString* pErrRef )
|
||||
if ( !(ch2 == '$' || rtl::isAsciiAlpha( ch2 )) )
|
||||
return false;
|
||||
if ( cDecSep == '.' && (ch2 == 'E' || ch2 == 'e') // E + - digit
|
||||
&& (GetCharTableFlags( pTabSep[2], pTabSep[1] ) & SC_COMPILER_C_VALUE_EXP) )
|
||||
&& (GetCharTableFlags( pTabSep[2], pTabSep[1] ) & ScCharFlags::ValueExp) )
|
||||
{
|
||||
// If it is an 1.E2 expression check if "1" is an existent sheet
|
||||
// name. If so, a desired value 1.E2 would have to be entered as
|
||||
@@ -3769,7 +3769,7 @@ void ScCompiler::AutoCorrectParsedSymbol()
|
||||
// Don't be pedantic: c < 128 should be sufficient here.
|
||||
while ( nPos && ((aCorrectedSymbol[nPos] < 128) &&
|
||||
((GetCharTableFlags(aCorrectedSymbol[nPos], aCorrectedSymbol[nPos-1]) &
|
||||
(SC_COMPILER_C_WORD | SC_COMPILER_C_CHAR_DONTCARE)) == 0)) )
|
||||
(ScCharFlags::Word | ScCharFlags::CharDontCare)) == ScCharFlags::NONE)) )
|
||||
nPos--;
|
||||
if ( nPos == MAXSTRLEN - 2 )
|
||||
aCorrectedSymbol = aCorrectedSymbol.replaceAt( nPos, 1, OUString(cQuote) ); // '"' the 255th character
|
||||
@@ -3787,8 +3787,8 @@ void ScCompiler::AutoCorrectParsedSymbol()
|
||||
aCorrectedSymbol = mxSymbols->getSymbol(ocMul);
|
||||
bCorrected = true;
|
||||
}
|
||||
else if ( (GetCharTableFlags( c1, 0 ) & SC_COMPILER_C_CHAR_VALUE)
|
||||
&& (GetCharTableFlags( c2, c2p ) & SC_COMPILER_C_CHAR_VALUE) )
|
||||
else if ( (GetCharTableFlags( c1, 0 ) & ScCharFlags::CharValue)
|
||||
&& (GetCharTableFlags( c2, c2p ) & ScCharFlags::CharValue) )
|
||||
{
|
||||
if ( comphelper::string::getTokenCount(aCorrectedSymbol, cx) > 1 )
|
||||
{ // x => *
|
||||
@@ -4719,7 +4719,7 @@ void ScCompiler::MoveRelWrap( ScTokenArray& rArr, ScDocument* pDoc, const ScAddr
|
||||
}
|
||||
|
||||
bool ScCompiler::IsCharFlagAllConventions(
|
||||
OUString const & rStr, sal_Int32 nPos, sal_uLong nFlags )
|
||||
OUString const & rStr, sal_Int32 nPos, ScCharFlags nFlags )
|
||||
{
|
||||
sal_Unicode c = rStr[ nPos ];
|
||||
sal_Unicode cLast = nPos > 0 ? rStr[ nPos-1 ] : 0;
|
||||
|
Reference in New Issue
Block a user