[Libreoffice-commits] core.git: formula/source

Caolán McNamara caolanm at redhat.com
Thu Feb 9 14:18:32 UTC 2017


 formula/source/core/api/FormulaCompiler.cxx    |   19 
 formula/source/core/resource/core_resource.src | 6440 ++++++++++---------------
 2 files changed, 2628 insertions(+), 3831 deletions(-)

New commits:
commit 60933220b2b6daa4b6acb177e4639c14519f459b
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Feb 8 16:28:11 2017 +0000

    replace localresource of strings and keys with StringArray
    
    Change-Id: I369de4213c4cb38013b984d1c2784ad68e25793c

diff --git a/formula/source/core/api/FormulaCompiler.cxx b/formula/source/core/api/FormulaCompiler.cxx
index a271410..d837e2e 100644
--- a/formula/source/core/api/FormulaCompiler.cxx
+++ b/formula/source/core/api/FormulaCompiler.cxx
@@ -29,6 +29,7 @@
 #include <svl/zforlist.hxx>
 #include <tools/rc.hxx>
 #include <tools/rcid.h>
+#include <tools/resary.hxx>
 #include <com/sun/star/sheet/FormulaOpCodeMapEntry.hpp>
 #include <com/sun/star/sheet/FormulaMapGroup.hpp>
 #include <com/sun/star/sheet/FormulaMapGroupSpecialOffset.hpp>
@@ -141,7 +142,7 @@ void lclPushOpCodeMapEntries( ::std::vector< sheet::FormulaOpCodeMapEntry >& rVe
         lclPushOpCodeMapEntry( rVec, pTable, *pnOpCodes );
 }
 
-class OpCodeList : public Resource        // temp object for resource
+class OpCodeList
 {
 public:
 
@@ -154,12 +155,13 @@ private:
 
 private:
     FormulaCompiler::SeparatorType meSepType;
+    ResStringArray maStringList;
 };
 
 OpCodeList::OpCodeList( sal_uInt16 nRID, FormulaCompiler::NonConstOpCodeMapPtr xMap,
-        FormulaCompiler::SeparatorType eSepType ) :
-    Resource( ResId( nRID, *ResourceManager::getResManager()))
-    , meSepType( eSepType)
+        FormulaCompiler::SeparatorType eSepType )
+    : meSepType(eSepType)
+    , maStringList(ResId(nRID, *ResourceManager::getResManager()))
 {
     SvtSysLocale aSysLocale;
     const CharClass* pCharClass = (xMap->isEnglish() ? nullptr : aSysLocale.GetCharClassPtr());
@@ -181,8 +183,6 @@ OpCodeList::OpCodeList( sal_uInt16 nRID, FormulaCompiler::NonConstOpCodeMapPtr x
                 putDefaultOpCode( xMap, i, pCharClass);
         }
     }
-
-    FreeResource();
 }
 
 bool OpCodeList::getOpCodeString( OUString& rStr, sal_uInt16 nOp )
@@ -239,10 +239,9 @@ bool OpCodeList::getOpCodeString( OUString& rStr, sal_uInt16 nOp )
 void OpCodeList::putDefaultOpCode( const FormulaCompiler::NonConstOpCodeMapPtr& xMap, sal_uInt16 nOp,
         const CharClass* pCharClass )
 {
-    ResId aRes( nOp, *ResourceManager::getResManager());
-    aRes.SetRT( RSC_STRING);
-    if (IsAvailableRes( aRes))
-        xMap->putOpCode( aRes.toString(), OpCode( nOp), pCharClass);
+    sal_uInt32 nIndex = maStringList.FindIndex(nOp);
+    if (nIndex != RESARRAY_INDEX_NOTFOUND)
+        xMap->putOpCode(maStringList.GetString(nIndex), OpCode(nOp), pCharClass);
 }
 
 // static
diff --git a/formula/source/core/resource/core_resource.src b/formula/source/core/resource/core_resource.src
index 40f4895..e0addf7 100644
--- a/formula/source/core/resource/core_resource.src
+++ b/formula/source/core/resource/core_resource.src
@@ -27,873 +27,878 @@
 // If there is a reason for another name for some function then add an
 // *additional* name to be recognized to sc/source/core/tool/compiler.cxx
 // ScCompiler::IsOpCode() in the if (mxSymbols->isODFF()) block.
-Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_ODFF
+StringArray RID_STRLIST_FUNCTION_NAMES_ENGLISH_ODFF
 {
-    String SC_OPCODE_IF { Text = "IF" ; };
-    String SC_OPCODE_IF_ERROR { Text = "IFERROR" ; };
-    String SC_OPCODE_IF_NA { Text = "IFNA" ; };
-    String SC_OPCODE_CHOOSE { Text = "CHOOSE" ; };
-    String SC_OPCODE_OPEN { Text = "(" ; };
-    String SC_OPCODE_CLOSE { Text = ")" ; };
-    // SC_OPCODE_TABLE_REF_... not supported in ODFF
-    String SC_OPCODE_ARRAY_OPEN { Text = "{" ; };
-    String SC_OPCODE_ARRAY_CLOSE { Text = "}" ; };
-    String SC_OPCODE_ARRAY_ROW_SEP { Text = "|" ; };
-    String SC_OPCODE_ARRAY_COL_SEP { Text = ";" ; };
-    String SC_OPCODE_SEP { Text = ";" ; };
-    String SC_OPCODE_PERCENT_SIGN { Text = "%" ; };
-    String SC_OPCODE_ADD { Text = "+" ; };
-    String SC_OPCODE_SUB { Text = "-" ; };
-    String SC_OPCODE_MUL { Text = "*" ; };
-    String SC_OPCODE_DIV { Text = "/" ; };
-    String SC_OPCODE_AMPERSAND { Text = "&" ; };
-    String SC_OPCODE_POW { Text = "^" ; };
-    String SC_OPCODE_EQUAL { Text = "=" ; };
-    String SC_OPCODE_NOT_EQUAL { Text = "<>" ; };
-    String SC_OPCODE_LESS { Text = "<" ; };
-    String SC_OPCODE_GREATER { Text = ">" ; };
-    String SC_OPCODE_LESS_EQUAL { Text = "<=" ; };
-    String SC_OPCODE_GREATER_EQUAL { Text = ">=" ; };
-    String SC_OPCODE_AND { Text = "AND" ; };
-    String SC_OPCODE_OR { Text = "OR" ; };
-    String SC_OPCODE_XOR { Text = "XOR" ; };
-    String SC_OPCODE_INTERSECT { Text = "!" ; };
-    String SC_OPCODE_UNION { Text = "~" ; };
-    String SC_OPCODE_RANGE { Text = ":" ; };
-    String SC_OPCODE_NOT { Text = "NOT" ; };
-    String SC_OPCODE_NEG { Text = "NEG" ; };
-    String SC_OPCODE_NEG_SUB { Text = "-" ; };
-    String SC_OPCODE_PI { Text = "PI" ; };
-    String SC_OPCODE_RANDOM { Text = "RAND" ; };
-    String SC_OPCODE_TRUE { Text = "TRUE" ; };
-    String SC_OPCODE_FALSE { Text = "FALSE" ; };
-    String SC_OPCODE_GET_ACT_DATE { Text = "TODAY" ; };
-    String SC_OPCODE_GET_ACT_TIME { Text = "NOW" ; };
-    String SC_OPCODE_NO_VALUE { Text = "NA" ; };
-    String SC_OPCODE_CURRENT { Text = "ORG.OPENOFFICE.CURRENT" ; };
-    String SC_OPCODE_DEG { Text = "DEGREES" ; };
-    String SC_OPCODE_RAD { Text = "RADIANS" ; };
-    String SC_OPCODE_SIN { Text = "SIN" ; };
-    String SC_OPCODE_COS { Text = "COS" ; };
-    String SC_OPCODE_TAN { Text = "TAN" ; };
-    String SC_OPCODE_COT { Text = "COT" ; };
-    String SC_OPCODE_ARC_SIN { Text = "ASIN" ; };
-    String SC_OPCODE_ARC_COS { Text = "ACOS" ; };
-    String SC_OPCODE_ARC_TAN { Text = "ATAN" ; };
-    String SC_OPCODE_ARC_COT { Text = "ACOT" ; };
-    String SC_OPCODE_SIN_HYP { Text = "SINH" ; };
-    String SC_OPCODE_COS_HYP { Text = "COSH" ; };
-    String SC_OPCODE_TAN_HYP { Text = "TANH" ; };
-    String SC_OPCODE_COT_HYP { Text = "COTH" ; };
-    String SC_OPCODE_ARC_SIN_HYP { Text = "ASINH" ; };
-    String SC_OPCODE_ARC_COS_HYP { Text = "ACOSH" ; };
-    String SC_OPCODE_ARC_TAN_HYP { Text = "ATANH" ; };
-    String SC_OPCODE_ARC_COT_HYP { Text = "ACOTH" ; };
-    String SC_OPCODE_COSECANT { Text = "CSC" ; };
-    String SC_OPCODE_SECANT { Text = "SEC" ; };
-    String SC_OPCODE_COSECANT_HYP { Text = "CSCH" ; };
-    String SC_OPCODE_SECANT_HYP { Text = "SECH" ; };
-    String SC_OPCODE_EXP { Text = "EXP" ; };
-    String SC_OPCODE_LN { Text = "LN" ; };
-    String SC_OPCODE_SQRT { Text = "SQRT" ; };
-    String SC_OPCODE_FACT { Text = "FACT" ; };
-    String SC_OPCODE_GET_YEAR { Text = "YEAR" ; };
-    String SC_OPCODE_GET_MONTH { Text = "MONTH" ; };
-    String SC_OPCODE_GET_DAY { Text = "DAY" ; };
-    String SC_OPCODE_GET_HOUR { Text = "HOUR" ; };
-    String SC_OPCODE_GET_MIN { Text = "MINUTE" ; };
-    String SC_OPCODE_GET_SEC { Text = "SECOND" ; };
-    String SC_OPCODE_PLUS_MINUS { Text = "SIGN" ; };
-    String SC_OPCODE_ABS { Text = "ABS" ; };
-    String SC_OPCODE_INT { Text = "INT" ; };
-    String SC_OPCODE_PHI { Text = "PHI" ; };
-    String SC_OPCODE_GAUSS { Text = "GAUSS" ; };
-    String SC_OPCODE_IS_EMPTY { Text = "ISBLANK" ; };
-    String SC_OPCODE_IS_STRING { Text = "ISTEXT" ; };
-    String SC_OPCODE_IS_NON_STRING { Text = "ISNONTEXT" ; };
-    String SC_OPCODE_IS_LOGICAL { Text = "ISLOGICAL" ; };
-    String SC_OPCODE_TYPE { Text = "TYPE" ; };
-    String SC_OPCODE_CELL { Text = "CELL" ; };
-    String SC_OPCODE_IS_REF { Text = "ISREF" ; };
-    String SC_OPCODE_IS_VALUE { Text = "ISNUMBER" ; };
-    String SC_OPCODE_IS_FORMULA { Text = "ISFORMULA" ; };
-    String SC_OPCODE_IS_NV { Text = "ISNA" ; };
-    String SC_OPCODE_IS_ERR { Text = "ISERR" ; };
-    String SC_OPCODE_IS_ERROR { Text = "ISERROR" ; };
-    String SC_OPCODE_IS_EVEN { Text = "ISEVEN" ; };
-    String SC_OPCODE_IS_ODD { Text = "ISODD" ; };
-    String SC_OPCODE_N { Text = "N" ; };
-    String SC_OPCODE_GET_DATE_VALUE { Text = "DATEVALUE" ; };
-    String SC_OPCODE_GET_TIME_VALUE { Text = "TIMEVALUE" ; };
-    String SC_OPCODE_CODE { Text = "CODE" ; };
-    String SC_OPCODE_TRIM { Text = "TRIM" ; };
-    String SC_OPCODE_UPPER { Text = "UPPER" ; };
-    String SC_OPCODE_PROPER { Text = "PROPER" ; };
-    String SC_OPCODE_LOWER { Text = "LOWER" ; };
-    String SC_OPCODE_LEN { Text = "LEN" ; };
-    String SC_OPCODE_T { Text = "T" ; };
-    String SC_OPCODE_VALUE { Text = "VALUE" ; };
-    String SC_OPCODE_CLEAN { Text = "CLEAN" ; };
-    String SC_OPCODE_CHAR { Text = "CHAR" ; };
-    String SC_OPCODE_JIS { Text = "JIS" ; };
-    String SC_OPCODE_ASC { Text = "ASC" ; };
-    String SC_OPCODE_UNICODE { Text = "UNICODE" ; };
-    String SC_OPCODE_UNICHAR { Text = "UNICHAR" ; };
-    String SC_OPCODE_LOG10 { Text = "LOG10" ; };
-    String SC_OPCODE_EVEN { Text = "EVEN" ; };
-    String SC_OPCODE_ODD { Text = "ODD" ; };
-    String SC_OPCODE_STD_NORM_DIST { Text = "LEGACY.NORMSDIST" ; };
-    String SC_OPCODE_STD_NORM_DIST_MS { Text = "COM.MICROSOFT.NORM.S.DIST" ; };
-    String SC_OPCODE_FISHER { Text = "FISHER" ; };
-    String SC_OPCODE_FISHER_INV { Text = "FISHERINV" ; };
-    String SC_OPCODE_S_NORM_INV { Text = "LEGACY.NORMSINV" ; };
-    String SC_OPCODE_S_NORM_INV_MS { Text = "COM.MICROSOFT.NORM.S.INV" ; };
-    String SC_OPCODE_GAMMA_LN { Text = "GAMMALN" ; };
-    String SC_OPCODE_GAMMA_LN_MS { Text = "COM.MICROSOFT.GAMMALN.PRECISE" ; };
-    String SC_OPCODE_ERROR_TYPE { Text = "ORG.OPENOFFICE.ERRORTYPE" ; };
-    String SC_OPCODE_ERROR_TYPE_ODF { Text = "ERROR.TYPE" ; };
-    String SC_OPCODE_FORMULA { Text = "FORMULA"; };
-    String SC_OPCODE_ARC_TAN_2 { Text = "ATAN2" ; };
-    String SC_OPCODE_CEIL_MATH { Text = "COM.MICROSOFT.CEILING.MATH" ; };
-    String SC_OPCODE_CEIL { Text = "CEILING" ; };
-    String SC_OPCODE_CEIL_MS { Text = "COM.MICROSOFT.CEILING" ; };
-    String SC_OPCODE_CEIL_PRECISE { Text = "COM.MICROSOFT.CEILING.PRECISE" ; };
-    String SC_OPCODE_CEIL_ISO { Text = "COM.MICROSOFT.ISO.CEILING" ; };
-    String SC_OPCODE_FLOOR { Text = "FLOOR" ; };
-    String SC_OPCODE_FLOOR_MS { Text = "COM.MICROSOFT.FLOOR" ; };
-    String SC_OPCODE_FLOOR_MATH { Text = "COM.MICROSOFT.FLOOR.MATH" ; };
-    String SC_OPCODE_FLOOR_PRECISE { Text = "COM.MICROSOFT.FLOOR.PRECISE" ; };
-    String SC_OPCODE_ROUND { Text = "ROUND" ; };
-    String SC_OPCODE_ROUND_UP { Text = "ROUNDUP" ; };
-    String SC_OPCODE_ROUND_DOWN { Text = "ROUNDDOWN" ; };
-    String SC_OPCODE_TRUNC { Text = "TRUNC" ; };
-    String SC_OPCODE_LOG { Text = "LOG" ; };
-    String SC_OPCODE_POWER { Text = "POWER" ; };
-    String SC_OPCODE_GCD { Text = "GCD" ; };
-    String SC_OPCODE_LCM { Text = "LCM" ; };
-    String SC_OPCODE_MOD { Text = "MOD" ; };
-    String SC_OPCODE_SUM_PRODUCT { Text = "SUMPRODUCT" ; };
-    String SC_OPCODE_SUM_SQ { Text = "SUMSQ" ; };
-    String SC_OPCODE_SUM_X2MY2 { Text = "SUMX2MY2" ; };
-    String SC_OPCODE_SUM_X2DY2 { Text = "SUMX2PY2" ; };
-    String SC_OPCODE_SUM_XMY2 { Text = "SUMXMY2" ; };
-    String SC_OPCODE_GET_DATE { Text = "DATE" ; };
-    String SC_OPCODE_GET_TIME { Text = "TIME" ; };
-    String SC_OPCODE_GET_DIFF_DATE { Text = "DAYS" ; };
-    String SC_OPCODE_GET_DIFF_DATE_360 { Text = "DAYS360" ; };
-    String SC_OPCODE_GET_DATEDIF { Text = "DATEDIF" ; };
-    String SC_OPCODE_MIN { Text = "MIN" ; };
-    String SC_OPCODE_MIN_A { Text = "MINA" ; };
-    String SC_OPCODE_MAX { Text = "MAX" ; };
-    String SC_OPCODE_MAX_A { Text = "MAXA" ; };
-    String SC_OPCODE_SUM { Text = "SUM" ; };
-    String SC_OPCODE_PRODUCT { Text = "PRODUCT" ; };
-    String SC_OPCODE_AVERAGE { Text = "AVERAGE" ; };
-    String SC_OPCODE_AVERAGE_A { Text = "AVERAGEA" ; };
-    String SC_OPCODE_COUNT { Text = "COUNT" ; };
-    String SC_OPCODE_COUNT_2 { Text = "COUNTA" ; };
-    String SC_OPCODE_NPV { Text = "NPV" ; };
-    String SC_OPCODE_IRR { Text = "IRR" ; };
-    String SC_OPCODE_MIRR { Text = "MIRR" ; };
-    String SC_OPCODE_ISPMT { Text = "ISPMT" ; };
-    String SC_OPCODE_VAR { Text = "VAR" ; };
-    String SC_OPCODE_VAR_A { Text = "VARA" ; };
-    String SC_OPCODE_VAR_P { Text = "VARP" ; };
-    String SC_OPCODE_VAR_P_A { Text = "VARPA" ; };
-    String SC_OPCODE_VAR_P_MS { Text = "COM.MICROSOFT.VAR.P" ; };
-    String SC_OPCODE_VAR_S { Text = "COM.MICROSOFT.VAR.S" ; };
-    String SC_OPCODE_ST_DEV { Text = "STDEV" ; };
-    String SC_OPCODE_ST_DEV_A { Text = "STDEVA" ; };
-    String SC_OPCODE_ST_DEV_P { Text = "STDEVP" ; };
-    String SC_OPCODE_ST_DEV_P_A { Text = "STDEVPA" ; };
-    String SC_OPCODE_ST_DEV_P_MS { Text = "COM.MICROSOFT.STDEV.P" ; };
-    String SC_OPCODE_ST_DEV_S { Text = "COM.MICROSOFT.STDEV.S" ; };
-    String SC_OPCODE_B { Text = "BINOM.DIST.RANGE" ; };
-    String SC_OPCODE_NORM_DIST { Text = "NORMDIST" ; };
-    String SC_OPCODE_NORM_DIST_MS { Text = "COM.MICROSOFT.NORM.DIST" ; };
-    String SC_OPCODE_EXP_DIST { Text = "EXPONDIST" ; };
-    String SC_OPCODE_EXP_DIST_MS { Text = "COM.MICROSOFT.EXPON.DIST" ; };
-    String SC_OPCODE_BINOM_DIST { Text = "BINOMDIST" ; };
-    String SC_OPCODE_BINOM_DIST_MS { Text = "COM.MICROSOFT.BINOM.DIST" ; };
-    String SC_OPCODE_POISSON_DIST { Text = "POISSON" ; };
-    String SC_OPCODE_POISSON_DIST_MS { Text = "COM.MICROSOFT.POISSON.DIST" ; };
-    String SC_OPCODE_COMBIN { Text = "COMBIN" ; };
-    String SC_OPCODE_COMBIN_A { Text = "COMBINA" ; };
-    String SC_OPCODE_PERMUT { Text = "PERMUT" ; };
-    String SC_OPCODE_PERMUTATION_A { Text = "PERMUTATIONA" ; };
-    String SC_OPCODE_PV { Text = "PV" ; };
-    String SC_OPCODE_SYD { Text = "SYD" ; };
-    String SC_OPCODE_DDB { Text = "DDB" ; };
-    String SC_OPCODE_DB { Text = "DB" ; };
-    String SC_OPCODE_VBD { Text = "VDB" ; };
-    String SC_OPCODE_PDURATION { Text = "PDURATION" ; };
-    String SC_OPCODE_SLN { Text = "SLN" ; };
-    String SC_OPCODE_PMT { Text = "PMT" ; };
-    String SC_OPCODE_COLUMNS { Text = "COLUMNS" ; };
-    String SC_OPCODE_ROWS { Text = "ROWS" ; };
-    String SC_OPCODE_SHEETS { Text = "SHEETS" ; };
-    String SC_OPCODE_COLUMN { Text = "COLUMN" ; };
-    String SC_OPCODE_ROW { Text = "ROW" ; };
-    String SC_OPCODE_SHEET { Text = "SHEET" ; };
-    String SC_OPCODE_RRI { Text = "RRI" ; };
-    String SC_OPCODE_FV { Text = "FV" ; };
-    String SC_OPCODE_NPER { Text = "NPER" ; };
-    String SC_OPCODE_RATE { Text = "RATE" ; };
-    String SC_OPCODE_IPMT { Text = "IPMT" ; };
-    String SC_OPCODE_PPMT { Text = "PPMT" ; };
-    String SC_OPCODE_CUM_IPMT { Text = "CUMIPMT" ; };
-    String SC_OPCODE_CUM_PRINC { Text = "CUMPRINC" ; };
-    String SC_OPCODE_EFFECT { Text = "EFFECT" ; };
-    String SC_OPCODE_NOMINAL { Text = "NOMINAL" ; };
-    String SC_OPCODE_SUB_TOTAL { Text = "SUBTOTAL" ; };
-    String SC_OPCODE_DB_SUM { Text = "DSUM" ; };
-    String SC_OPCODE_DB_COUNT { Text = "DCOUNT" ; };
-    String SC_OPCODE_DB_COUNT_2 { Text = "DCOUNTA" ; };
-    String SC_OPCODE_DB_AVERAGE { Text = "DAVERAGE" ; };
-    String SC_OPCODE_DB_GET { Text = "DGET" ; };
-    String SC_OPCODE_DB_MAX { Text = "DMAX" ; };
-    String SC_OPCODE_DB_MIN { Text = "DMIN" ; };
-    String SC_OPCODE_DB_PRODUCT { Text = "DPRODUCT" ; };
-    String SC_OPCODE_DB_STD_DEV { Text = "DSTDEV" ; };
-    String SC_OPCODE_DB_STD_DEV_P { Text = "DSTDEVP" ; };
-    String SC_OPCODE_DB_VAR { Text = "DVAR" ; };
-    String SC_OPCODE_DB_VAR_P { Text = "DVARP" ; };
-    String SC_OPCODE_INDIRECT { Text = "INDIRECT" ; };
-    String SC_OPCODE_ADDRESS { Text = "ADDRESS" ; };
-    String SC_OPCODE_MATCH { Text = "MATCH" ; };
-    String SC_OPCODE_COUNT_EMPTY_CELLS { Text = "COUNTBLANK" ; };
-    String SC_OPCODE_COUNT_IF { Text = "COUNTIF" ; };
-    String SC_OPCODE_SUM_IF { Text = "SUMIF" ; };
-    String SC_OPCODE_AVERAGE_IF { Text = "AVERAGEIF" ; };
-    String SC_OPCODE_SUM_IFS { Text = "SUMIFS" ; };
-    String SC_OPCODE_AVERAGE_IFS { Text = "AVERAGEIFS" ; };
-    String SC_OPCODE_COUNT_IFS { Text = "COUNTIFS" ; };
-    String SC_OPCODE_LOOKUP { Text = "LOOKUP" ; };
-    String SC_OPCODE_V_LOOKUP { Text = "VLOOKUP" ; };
-    String SC_OPCODE_H_LOOKUP { Text = "HLOOKUP" ; };
-    String SC_OPCODE_MULTI_AREA { Text = "ORG.OPENOFFICE.MULTIRANGE" ; };   // legacy for range list (union)
-    String SC_OPCODE_OFFSET { Text = "OFFSET" ; };
-    String SC_OPCODE_INDEX { Text = "INDEX" ; };
-    String SC_OPCODE_AREAS { Text = "AREAS" ; };
-    String SC_OPCODE_CURRENCY { Text = "DOLLAR" ; };
-    String SC_OPCODE_REPLACE { Text = "REPLACE" ; };
-    String SC_OPCODE_FIXED { Text = "FIXED" ; };
-    String SC_OPCODE_FIND { Text = "FIND" ; };
-    String SC_OPCODE_EXACT { Text = "EXACT" ; };
-    String SC_OPCODE_LEFT { Text = "LEFT" ; };
-    String SC_OPCODE_RIGHT { Text = "RIGHT" ; };
-    String SC_OPCODE_SEARCH { Text = "SEARCH" ; };
-    String SC_OPCODE_MID { Text = "MID" ; };
-    String SC_OPCODE_LENB          { Text = "LENB" ; };
-    String SC_OPCODE_RIGHTB        { Text = "RIGHTB" ; };
-    String SC_OPCODE_LEFTB         { Text = "LEFTB" ; };
-    String SC_OPCODE_MIDB          { Text = "MIDB" ; };
-    String SC_OPCODE_TEXT { Text = "TEXT" ; };
-    String SC_OPCODE_SUBSTITUTE { Text = "SUBSTITUTE" ; };
-    String SC_OPCODE_REPT { Text = "REPT" ; };
-    String SC_OPCODE_CONCAT { Text = "CONCATENATE" ; };
-    String SC_OPCODE_CONCAT_MS { Text = "COM.MICROSOFT.CONCAT" ; };
-    String SC_OPCODE_TEXTJOIN_MS { Text = "COM.MICROSOFT.TEXTJOIN" ; };
-    String SC_OPCODE_IFS_MS { Text = "COM.MICROSOFT.IFS" ; };
-    String SC_OPCODE_SWITCH_MS { Text = "COM.MICROSOFT.SWITCH" ; };
-    String SC_OPCODE_MINIFS_MS { Text = "COM.MICROSOFT.MINIFS" ; };
-    String SC_OPCODE_MAXIFS_MS { Text = "COM.MICROSOFT.MAXIFS" ; };
-    String SC_OPCODE_MAT_VALUE { Text = "MVALUE" ; };
-    String SC_OPCODE_MAT_DET { Text = "MDETERM" ; };
-    String SC_OPCODE_MAT_INV { Text = "MINVERSE" ; };
-    String SC_OPCODE_MAT_MULT { Text = "MMULT" ; };
-    String SC_OPCODE_MAT_TRANS { Text = "TRANSPOSE" ; };
-    String SC_OPCODE_MATRIX_UNIT { Text = "MUNIT" ; };
-    String SC_OPCODE_BACK_SOLVER { Text = "ORG.OPENOFFICE.GOALSEEK" ; };
-    String SC_OPCODE_HYP_GEOM_DIST { Text = "HYPGEOMDIST" ; };
-    String SC_OPCODE_HYP_GEOM_DIST_MS { Text = "COM.MICROSOFT.HYPGEOM.DIST" ; };
-    String SC_OPCODE_LOG_NORM_DIST { Text = "LOGNORMDIST" ; };
-    String SC_OPCODE_LOG_NORM_DIST_MS { Text = "COM.MICROSOFT.LOGNORM.DIST" ; };
-    String SC_OPCODE_T_DIST { Text = "LEGACY.TDIST" ; };
-    String SC_OPCODE_T_DIST_2T { Text = "COM.MICROSOFT.T.DIST.2T" ; };
-    String SC_OPCODE_T_DIST_MS { Text = "COM.MICROSOFT.T.DIST" ; };
-    String SC_OPCODE_T_DIST_RT { Text = "COM.MICROSOFT.T.DIST.RT" ; };
-    String SC_OPCODE_F_DIST { Text = "LEGACY.FDIST" ; };
-    String SC_OPCODE_F_DIST_LT { Text = "FDIST" ; };
-    String SC_OPCODE_F_DIST_RT { Text = "COM.MICROSOFT.F.DIST.RT" ; };
-    String SC_OPCODE_CHI_DIST { Text = "LEGACY.CHIDIST" ; };
-    String SC_OPCODE_CHI_DIST_MS { Text = "COM.MICROSOFT.CHISQ.DIST.RT" ; };
-    String SC_OPCODE_WEIBULL { Text = "WEIBULL" ; };
-    String SC_OPCODE_WEIBULL_MS { Text = "COM.MICROSOFT.WEIBULL.DIST" ; };
-    String SC_OPCODE_NEG_BINOM_VERT { Text = "NEGBINOMDIST" ; };
-    String SC_OPCODE_NEG_BINOM_DIST_MS { Text = "COM.MICROSOFT.NEGBINOM.DIST" ; };
-    String SC_OPCODE_CRIT_BINOM { Text = "CRITBINOM" ; };
-    String SC_OPCODE_BINOM_INV { Text = "COM.MICROSOFT.BINOM.INV" ; };
-    String SC_OPCODE_KURT { Text = "KURT" ; };
-    String SC_OPCODE_HAR_MEAN { Text = "HARMEAN" ; };
-    String SC_OPCODE_GEO_MEAN { Text = "GEOMEAN" ; };
-    String SC_OPCODE_STANDARD { Text = "STANDARDIZE" ; };
-    String SC_OPCODE_AVE_DEV { Text = "AVEDEV" ; };
-    String SC_OPCODE_SKEW { Text = "SKEW" ; };
-    String SC_OPCODE_SKEWP   { Text = "SKEWP" ; };
-    String SC_OPCODE_DEV_SQ { Text = "DEVSQ" ; };
-    String SC_OPCODE_MEDIAN { Text = "MEDIAN" ; };
-    String SC_OPCODE_MODAL_VALUE { Text = "MODE" ; };
-    String SC_OPCODE_MODAL_VALUE_MS { Text = "COM.MICROSOFT.MODE.SNGL" ; };
-    String SC_OPCODE_MODAL_VALUE_MULTI { Text = "COM.MICROSOFT.MODE.MULT" ; };
-    String SC_OPCODE_Z_TEST { Text = "ZTEST" ; };
-    String SC_OPCODE_Z_TEST_MS { Text = "COM.MICROSOFT.Z.TEST" ; };
-    String SC_OPCODE_AGGREGATE { Text = "COM.MICROSOFT.AGGREGATE" ; };
-    String SC_OPCODE_T_TEST { Text = "TTEST" ; };
-    String SC_OPCODE_T_TEST_MS { Text = "COM.MICROSOFT.T.TEST" ; };
-    String SC_OPCODE_RANK { Text = "RANK" ; };
-    String SC_OPCODE_PERCENTILE { Text = "PERCENTILE" ; };
-    String SC_OPCODE_PERCENT_RANK { Text = "PERCENTRANK" ; };
-    String SC_OPCODE_PERCENTILE_INC { Text = "COM.MICROSOFT.PERCENTILE.INC" ; };
-    String SC_OPCODE_PERCENT_RANK_INC { Text = "COM.MICROSOFT.PERCENTRANK.INC" ; };
-    String SC_OPCODE_QUARTILE_INC { Text = "COM.MICROSOFT.QUARTILE.INC" ; };
-    String SC_OPCODE_RANK_EQ { Text = "COM.MICROSOFT.RANK.EQ" ; };
-    String SC_OPCODE_PERCENTILE_EXC { Text = "COM.MICROSOFT.PERCENTILE.EXC" ; };
-    String SC_OPCODE_PERCENT_RANK_EXC { Text = "COM.MICROSOFT.PERCENTRANK.EXC" ; };
-    String SC_OPCODE_QUARTILE_EXC { Text = "COM.MICROSOFT.QUARTILE.EXC" ; };
-    String SC_OPCODE_RANK_AVG { Text = "COM.MICROSOFT.RANK.AVG" ; };
-    String SC_OPCODE_LARGE { Text = "LARGE" ; };
-    String SC_OPCODE_SMALL { Text = "SMALL" ; };
-    String SC_OPCODE_FREQUENCY { Text = "FREQUENCY" ; };
-    String SC_OPCODE_QUARTILE { Text = "QUARTILE" ; };
-    String SC_OPCODE_NORM_INV { Text = "NORMINV" ; };
-    String SC_OPCODE_NORM_INV_MS { Text = "COM.MICROSOFT.NORM.INV" ; };
-    String SC_OPCODE_CONFIDENCE { Text = "CONFIDENCE" ; };
-    String SC_OPCODE_CONFIDENCE_N { Text = "COM.MICROSOFT.CONFIDENCE.NORM" ; };
-    String SC_OPCODE_CONFIDENCE_T { Text = "COM.MICROSOFT.CONFIDENCE.T" ; };
-    String SC_OPCODE_F_TEST { Text = "FTEST" ; };
-    String SC_OPCODE_F_TEST_MS { Text = "COM.MICROSOFT.F.TEST" ; };
-    String SC_OPCODE_TRIM_MEAN { Text = "TRIMMEAN" ; };
-    String SC_OPCODE_PROB { Text = "PROB" ; };
-    String SC_OPCODE_CORREL { Text = "CORREL" ; };
-    String SC_OPCODE_COVAR { Text = "COVAR" ; };
-    String SC_OPCODE_COVARIANCE_P { Text = "COM.MICROSOFT.COVARIANCE.P" ; };
-    String SC_OPCODE_COVARIANCE_S { Text = "COM.MICROSOFT.COVARIANCE.S" ; };
-    String SC_OPCODE_PEARSON { Text = "PEARSON" ; };
-    String SC_OPCODE_RSQ { Text = "RSQ" ; };
-    String SC_OPCODE_STEYX { Text = "STEYX" ; };
-    String SC_OPCODE_SLOPE { Text = "SLOPE" ; };
-    String SC_OPCODE_INTERCEPT { Text = "INTERCEPT" ; };
-    String SC_OPCODE_TREND { Text = "TREND" ; };
-    String SC_OPCODE_GROWTH { Text = "GROWTH" ; };
-    String SC_OPCODE_LINEST { Text = "LINEST" ; };
-    String SC_OPCODE_LOGEST { Text = "LOGEST" ; };
-    String SC_OPCODE_FORECAST { Text = "FORECAST" ; };
-    String SC_OPCODE_FORECAST_ETS_ADD { Text = "COM.MICROSOFT.FORECAST.ETS" ; };
-    String SC_OPCODE_FORECAST_ETS_SEA { Text = "COM.MICROSOFT.FORECAST.ETS.SEASONALITY" ; };
-    String SC_OPCODE_FORECAST_ETS_MUL { Text = "ORG.LIBREOFFICE.FORECAST.ETS.MULT" ; };
-    String SC_OPCODE_FORECAST_ETS_PIA { Text = "COM.MICROSOFT.FORECAST.ETS.CONFINT" ; };
-    String SC_OPCODE_FORECAST_ETS_PIM { Text = "ORG.LIBREOFFICE.FORECAST.ETS.PI.MULT" ; };
-    String SC_OPCODE_FORECAST_ETS_STA { Text = "COM.MICROSOFT.FORECAST.ETS.STAT" ; };
-    String SC_OPCODE_FORECAST_ETS_STM { Text = "ORG.LIBREOFFICE.FORECAST.ETS.STAT.MULT" ; };
-    String SC_OPCODE_FORECAST_LIN { Text = "COM.MICROSOFT.FORECAST.LINEAR" ; };
-    String SC_OPCODE_CHI_INV { Text = "LEGACY.CHIINV" ; };
-    String SC_OPCODE_CHI_INV_MS { Text = "COM.MICROSOFT.CHISQ.INV.RT" ; };
-    String SC_OPCODE_GAMMA_DIST { Text = "GAMMADIST" ; };
-    String SC_OPCODE_GAMMA_DIST_MS { Text = "COM.MICROSOFT.GAMMA.DIST" ; };
-    String SC_OPCODE_GAMMA_INV { Text = "GAMMAINV" ; };
-    String SC_OPCODE_GAMMA_INV_MS { Text = "COM.MICROSOFT.GAMMA.INV" ; };
-    String SC_OPCODE_T_INV { Text = "TINV" ; };
-    String SC_OPCODE_T_INV_2T { Text = "COM.MICROSOFT.T.INV.2T" ; };
-    String SC_OPCODE_T_INV_MS { Text = "COM.MICROSOFT.T.INV" ; };
-    String SC_OPCODE_F_INV { Text = "LEGACY.FINV" ; };
-    String SC_OPCODE_F_INV_LT { Text = "FINV" ; };
-    String SC_OPCODE_F_INV_RT { Text = "COM.MICROSOFT.F.INV.RT" ; };
-    String SC_OPCODE_CHI_TEST { Text = "LEGACY.CHITEST" ; };
-    String SC_OPCODE_CHI_TEST_MS { Text = "COM.MICROSOFT.CHISQ.TEST" ; };
-    String SC_OPCODE_LOG_INV { Text = "LOGINV" ; };
-    String SC_OPCODE_LOG_INV_MS { Text = "COM.MICROSOFT.LOGNORM.INV" ; };
-    String SC_OPCODE_TABLE_OP { Text = "MULTIPLE.OPERATIONS" ; };
-    String SC_OPCODE_BETA_DIST { Text = "BETADIST" ; };
-    String SC_OPCODE_BETA_INV { Text = "BETAINV" ; };
-    String SC_OPCODE_BETA_DIST_MS { Text = "COM.MICROSOFT.BETA.DIST" ; };
-    String SC_OPCODE_BETA_INV_MS { Text = "COM.MICROSOFT.BETA.INV" ; };
-    String SC_OPCODE_WEEK { Text = "WEEKNUM" ; };
-    String SC_OPCODE_ISOWEEKNUM { Text = "ISOWEEKNUM" ; };
-    String SC_OPCODE_WEEKNUM_OOO { Text = "ORG.LIBREOFFICE.WEEKNUM_OOO" ; };
-    String SC_OPCODE_EASTERSUNDAY { Text = "ORG.OPENOFFICE.EASTERSUNDAY" ; };
-    String SC_OPCODE_GET_DAY_OF_WEEK { Text = "WEEKDAY" ; };
-    String SC_OPCODE_NETWORKDAYS { Text = "NETWORKDAYS" ; };
-    String SC_OPCODE_NETWORKDAYS_MS { Text = "COM.MICROSOFT.NETWORKDAYS.INTL" ; };
-    String SC_OPCODE_WORKDAY_MS { Text = "COM.MICROSOFT.WORKDAY.INTL" ; };
-    String SC_OPCODE_NO_NAME { Text = "#NAME!" ; };
-    String SC_OPCODE_STYLE { Text = "ORG.OPENOFFICE.STYLE" ; };
-    String SC_OPCODE_DDE { Text = "DDE" ; };
-    String SC_OPCODE_BASE { Text = "BASE" ; };
-    String SC_OPCODE_DECIMAL { Text = "DECIMAL" ; };
-    String SC_OPCODE_CONVERT_OOO { Text = "ORG.OPENOFFICE.CONVERT" ; };
-    String SC_OPCODE_ROMAN { Text = "ROMAN" ; };
-    String SC_OPCODE_ARABIC { Text = "ARABIC" ; };
-    String SC_OPCODE_HYPERLINK { Text = "HYPERLINK" ; };
-    String SC_OPCODE_INFO { Text = "INFO" ; };
-    String SC_OPCODE_BAHTTEXT { Text = "COM.MICROSOFT.BAHTTEXT" ; };
-    String SC_OPCODE_GET_PIVOT_DATA { Text = "GETPIVOTDATA" ; };
-    String SC_OPCODE_EUROCONVERT { Text = "EUROCONVERT" ; };
-    String SC_OPCODE_NUMBERVALUE { Text = "NUMBERVALUE" ; };
-    String SC_OPCODE_GAMMA { Text = "GAMMA" ; };
-    String SC_OPCODE_CHISQ_DIST { Text = "CHISQDIST" ; };
-    String SC_OPCODE_CHISQ_DIST_MS { Text = "COM.MICROSOFT.CHISQ.DIST" ; };
-    String SC_OPCODE_CHISQ_INV { Text = "CHISQINV" ;};
-    String SC_OPCODE_CHISQ_INV_MS { Text = "COM.MICROSOFT.CHISQ.INV" ;};
-    String SC_OPCODE_BITAND        { Text = "BITAND" ;};
-    String SC_OPCODE_BITOR         { Text = "BITOR" ;};
-    String SC_OPCODE_BITXOR        { Text = "BITXOR" ;};
-    String SC_OPCODE_BITRSHIFT     { Text = "BITRSHIFT" ;};
-    String SC_OPCODE_BITLSHIFT     { Text = "BITLSHIFT" ;};
-    /* BEGIN defined ERROR.TYPE() values. */
-    String SC_OPCODE_ERROR_NULL    { Text = "#NULL!"  ; };
-    String SC_OPCODE_ERROR_DIVZERO { Text = "#DIV/0!" ; };
-    String SC_OPCODE_ERROR_VALUE   { Text = "#VALUE!" ; };
-    String SC_OPCODE_ERROR_REF     { Text = "#REF!"   ; };
-    String SC_OPCODE_ERROR_NAME    { Text = "#NAME?"  ; };
-    String SC_OPCODE_ERROR_NUM     { Text = "#NUM!"   ; };
-    String SC_OPCODE_ERROR_NA      { Text = "#N/A"    ; };
-    /* END defined ERROR.TYPE() values. */
-    String SC_OPCODE_FILTERXML     { Text = "COM.MICROSOFT.FILTERXML";};
-    String SC_OPCODE_WEBSERVICE    { Text = "COM.MICROSOFT.WEBSERVICE"; };
-    String SC_OPCODE_COLOR         { Text = "ORG.LIBREOFFICE.COLOR"; };
-    String SC_OPCODE_ERF_MS { Text = "COM.MICROSOFT.ERF.PRECISE" ; };
-    String SC_OPCODE_ERFC_MS { Text = "COM.MICROSOFT.ERFC.PRECISE" ; };
-    String SC_OPCODE_ENCODEURL     { Text = "COM.MICROSOFT.ENCODEURL"; };
-    String SC_OPCODE_RAWSUBTRACT    { Text = "ORG.LIBREOFFICE.RAWSUBTRACT"; };
+    ItemList [ en-US ] =
+    {
+        < "IF" ; SC_OPCODE_IF; >;
+        < "IFERROR" ; SC_OPCODE_IF_ERROR; >;
+        < "IFNA" ; SC_OPCODE_IF_NA; >;
+        < "CHOOSE" ; SC_OPCODE_CHOOSE; >;
+        < "(" ; SC_OPCODE_OPEN; >;
+        < ")" ; SC_OPCODE_CLOSE; >;
+        // SC_OPCODE_TABLE_REF_... not supported in ODFF
+        < "{" ; SC_OPCODE_ARRAY_OPEN; >;
+        < "}" ; SC_OPCODE_ARRAY_CLOSE; >;
+        < "|" ; SC_OPCODE_ARRAY_ROW_SEP; >;
+        < ";" ; SC_OPCODE_ARRAY_COL_SEP; >;
+        < ";" ; SC_OPCODE_SEP; >;
+        < "%" ; SC_OPCODE_PERCENT_SIGN; >;
+        < "+" ; SC_OPCODE_ADD; >;
+        < "-" ; SC_OPCODE_SUB; >;
+        < "*" ; SC_OPCODE_MUL; >;
+        < "/" ; SC_OPCODE_DIV; >;
+        < "&" ; SC_OPCODE_AMPERSAND; >;
+        < "^" ; SC_OPCODE_POW; >;
+        < "=" ; SC_OPCODE_EQUAL; >;
+        < "<>" ; SC_OPCODE_NOT_EQUAL; >;
+        < "<" ; SC_OPCODE_LESS; >;
+        < ">" ; SC_OPCODE_GREATER; >;
+        < "<=" ; SC_OPCODE_LESS_EQUAL; >;
+        < ">=" ; SC_OPCODE_GREATER_EQUAL; >;
+        < "AND" ; SC_OPCODE_AND; >;
+        < "OR" ; SC_OPCODE_OR; >;
+        < "XOR" ; SC_OPCODE_XOR; >;
+        < "!" ; SC_OPCODE_INTERSECT; >;
+        < "~" ; SC_OPCODE_UNION; >;
+        < ":" ; SC_OPCODE_RANGE; >;
+        < "NOT" ; SC_OPCODE_NOT; >;
+        < "NEG" ; SC_OPCODE_NEG; >;
+        < "-" ; SC_OPCODE_NEG_SUB; >;
+        < "PI" ; SC_OPCODE_PI; >;
+        < "RAND" ; SC_OPCODE_RANDOM; >;
+        < "TRUE" ; SC_OPCODE_TRUE; >;
+        < "FALSE" ; SC_OPCODE_FALSE; >;
+        < "TODAY" ; SC_OPCODE_GET_ACT_DATE; >;
+        < "NOW" ; SC_OPCODE_GET_ACT_TIME; >;
+        < "NA" ; SC_OPCODE_NO_VALUE; >;
+        < "ORG.OPENOFFICE.CURRENT" ; SC_OPCODE_CURRENT; >;
+        < "DEGREES" ; SC_OPCODE_DEG; >;
+        < "RADIANS" ; SC_OPCODE_RAD; >;
+        < "SIN" ; SC_OPCODE_SIN; >;
+        < "COS" ; SC_OPCODE_COS; >;
+        < "TAN" ; SC_OPCODE_TAN; >;
+        < "COT" ; SC_OPCODE_COT; >;
+        < "ASIN" ; SC_OPCODE_ARC_SIN; >;
+        < "ACOS" ; SC_OPCODE_ARC_COS; >;
+        < "ATAN" ; SC_OPCODE_ARC_TAN; >;
+        < "ACOT" ; SC_OPCODE_ARC_COT; >;
+        < "SINH" ; SC_OPCODE_SIN_HYP; >;
+        < "COSH" ; SC_OPCODE_COS_HYP; >;
+        < "TANH" ; SC_OPCODE_TAN_HYP; >;
+        < "COTH" ; SC_OPCODE_COT_HYP; >;
+        < "ASINH" ; SC_OPCODE_ARC_SIN_HYP; >;
+        < "ACOSH" ; SC_OPCODE_ARC_COS_HYP; >;
+        < "ATANH" ; SC_OPCODE_ARC_TAN_HYP; >;
+        < "ACOTH" ; SC_OPCODE_ARC_COT_HYP; >;
+        < "CSC" ; SC_OPCODE_COSECANT; >;
+        < "SEC" ; SC_OPCODE_SECANT; >;
+        < "CSCH" ; SC_OPCODE_COSECANT_HYP; >;
+        < "SECH" ; SC_OPCODE_SECANT_HYP; >;
+        < "EXP" ; SC_OPCODE_EXP; >;
+        < "LN" ; SC_OPCODE_LN; >;
+        < "SQRT" ; SC_OPCODE_SQRT; >;
+        < "FACT" ; SC_OPCODE_FACT; >;
+        < "YEAR" ; SC_OPCODE_GET_YEAR; >;
+        < "MONTH" ; SC_OPCODE_GET_MONTH; >;
+        < "DAY" ; SC_OPCODE_GET_DAY; >;
+        < "HOUR" ; SC_OPCODE_GET_HOUR; >;
+        < "MINUTE" ; SC_OPCODE_GET_MIN; >;
+        < "SECOND" ; SC_OPCODE_GET_SEC; >;
+        < "SIGN" ; SC_OPCODE_PLUS_MINUS; >;
+        < "ABS" ; SC_OPCODE_ABS; >;
+        < "INT" ; SC_OPCODE_INT; >;
+        < "PHI" ; SC_OPCODE_PHI; >;
+        < "GAUSS" ; SC_OPCODE_GAUSS; >;
+        < "ISBLANK" ; SC_OPCODE_IS_EMPTY; >;
+        < "ISTEXT" ; SC_OPCODE_IS_STRING; >;
+        < "ISNONTEXT" ; SC_OPCODE_IS_NON_STRING; >;
+        < "ISLOGICAL" ; SC_OPCODE_IS_LOGICAL; >;
+        < "TYPE" ; SC_OPCODE_TYPE; >;
+        < "CELL" ; SC_OPCODE_CELL; >;
+        < "ISREF" ; SC_OPCODE_IS_REF; >;
+        < "ISNUMBER" ; SC_OPCODE_IS_VALUE; >;
+        < "ISFORMULA" ; SC_OPCODE_IS_FORMULA; >;
+        < "ISNA" ; SC_OPCODE_IS_NV; >;
+        < "ISERR" ; SC_OPCODE_IS_ERR; >;
+        < "ISERROR" ; SC_OPCODE_IS_ERROR; >;
+        < "ISEVEN" ; SC_OPCODE_IS_EVEN; >;
+        < "ISODD" ; SC_OPCODE_IS_ODD; >;
+        < "N" ; SC_OPCODE_N; >;
+        < "DATEVALUE" ; SC_OPCODE_GET_DATE_VALUE; >;
+        < "TIMEVALUE" ; SC_OPCODE_GET_TIME_VALUE; >;
+        < "CODE" ; SC_OPCODE_CODE; >;
+        < "TRIM" ; SC_OPCODE_TRIM; >;
+        < "UPPER" ; SC_OPCODE_UPPER; >;
+        < "PROPER" ; SC_OPCODE_PROPER; >;
+        < "LOWER" ; SC_OPCODE_LOWER; >;
+        < "LEN" ; SC_OPCODE_LEN; >;
+        < "T" ; SC_OPCODE_T; >;
+        < "VALUE" ; SC_OPCODE_VALUE; >;
+        < "CLEAN" ; SC_OPCODE_CLEAN; >;
+        < "CHAR" ; SC_OPCODE_CHAR; >;
+        < "JIS" ; SC_OPCODE_JIS; >;
+        < "ASC" ; SC_OPCODE_ASC; >;
+        < "UNICODE" ; SC_OPCODE_UNICODE; >;
+        < "UNICHAR" ; SC_OPCODE_UNICHAR; >;
+        < "LOG10" ; SC_OPCODE_LOG10; >;
+        < "EVEN" ; SC_OPCODE_EVEN; >;
+        < "ODD" ; SC_OPCODE_ODD; >;
+        < "LEGACY.NORMSDIST" ; SC_OPCODE_STD_NORM_DIST; >;
+        < "COM.MICROSOFT.NORM.S.DIST" ; SC_OPCODE_STD_NORM_DIST_MS; >;
+        < "FISHER" ; SC_OPCODE_FISHER; >;
+        < "FISHERINV" ; SC_OPCODE_FISHER_INV; >;
+        < "LEGACY.NORMSINV" ; SC_OPCODE_S_NORM_INV; >;
+        < "COM.MICROSOFT.NORM.S.INV" ; SC_OPCODE_S_NORM_INV_MS; >;
+        < "GAMMALN" ; SC_OPCODE_GAMMA_LN; >;
+        < "COM.MICROSOFT.GAMMALN.PRECISE" ; SC_OPCODE_GAMMA_LN_MS; >;
+        < "ORG.OPENOFFICE.ERRORTYPE" ; SC_OPCODE_ERROR_TYPE; >;
+        < "ERROR.TYPE" ; SC_OPCODE_ERROR_TYPE_ODF; >;
+        < "FORMULA" ; SC_OPCODE_FORMULA; >;
+        < "ATAN2" ; SC_OPCODE_ARC_TAN_2; >;
+        < "COM.MICROSOFT.CEILING.MATH" ; SC_OPCODE_CEIL_MATH; >;
+        < "CEILING" ; SC_OPCODE_CEIL; >;
+        < "COM.MICROSOFT.CEILING" ; SC_OPCODE_CEIL_MS; >;
+        < "COM.MICROSOFT.CEILING.PRECISE" ; SC_OPCODE_CEIL_PRECISE; >;
+        < "COM.MICROSOFT.ISO.CEILING" ; SC_OPCODE_CEIL_ISO; >;
+        < "FLOOR" ; SC_OPCODE_FLOOR; >;
+        < "COM.MICROSOFT.FLOOR" ; SC_OPCODE_FLOOR_MS; >;
+        < "COM.MICROSOFT.FLOOR.MATH" ; SC_OPCODE_FLOOR_MATH; >;
+        < "COM.MICROSOFT.FLOOR.PRECISE" ; SC_OPCODE_FLOOR_PRECISE; >;
+        < "ROUND" ; SC_OPCODE_ROUND; >;
+        < "ROUNDUP" ; SC_OPCODE_ROUND_UP; >;
+        < "ROUNDDOWN" ; SC_OPCODE_ROUND_DOWN; >;
+        < "TRUNC" ; SC_OPCODE_TRUNC; >;
+        < "LOG" ; SC_OPCODE_LOG; >;
+        < "POWER" ; SC_OPCODE_POWER; >;
+        < "GCD" ; SC_OPCODE_GCD; >;
+        < "LCM" ; SC_OPCODE_LCM; >;
+        < "MOD" ; SC_OPCODE_MOD; >;
+        < "SUMPRODUCT" ; SC_OPCODE_SUM_PRODUCT; >;
+        < "SUMSQ" ; SC_OPCODE_SUM_SQ; >;
+        < "SUMX2MY2" ; SC_OPCODE_SUM_X2MY2; >;
+        < "SUMX2PY2" ; SC_OPCODE_SUM_X2DY2; >;
+        < "SUMXMY2" ; SC_OPCODE_SUM_XMY2; >;
+        < "DATE" ; SC_OPCODE_GET_DATE; >;
+        < "TIME" ; SC_OPCODE_GET_TIME; >;
+        < "DAYS" ; SC_OPCODE_GET_DIFF_DATE; >;
+        < "DAYS360" ; SC_OPCODE_GET_DIFF_DATE_360; >;
+        < "DATEDIF" ; SC_OPCODE_GET_DATEDIF; >;
+        < "MIN" ; SC_OPCODE_MIN; >;
+        < "MINA" ; SC_OPCODE_MIN_A; >;
+        < "MAX" ; SC_OPCODE_MAX; >;
+        < "MAXA" ; SC_OPCODE_MAX_A; >;
+        < "SUM" ; SC_OPCODE_SUM; >;
+        < "PRODUCT" ; SC_OPCODE_PRODUCT; >;
+        < "AVERAGE" ; SC_OPCODE_AVERAGE; >;
+        < "AVERAGEA" ; SC_OPCODE_AVERAGE_A; >;
+        < "COUNT" ; SC_OPCODE_COUNT; >;
+        < "COUNTA" ; SC_OPCODE_COUNT_2; >;
+        < "NPV" ; SC_OPCODE_NPV; >;
+        < "IRR" ; SC_OPCODE_IRR; >;
+        < "MIRR" ; SC_OPCODE_MIRR; >;
+        < "ISPMT" ; SC_OPCODE_ISPMT; >;
+        < "VAR" ; SC_OPCODE_VAR; >;
+        < "VARA" ; SC_OPCODE_VAR_A; >;
+        < "VARP" ; SC_OPCODE_VAR_P; >;
+        < "VARPA" ; SC_OPCODE_VAR_P_A; >;
+        < "COM.MICROSOFT.VAR.P" ; SC_OPCODE_VAR_P_MS; >;
+        < "COM.MICROSOFT.VAR.S" ; SC_OPCODE_VAR_S; >;
+        < "STDEV" ; SC_OPCODE_ST_DEV; >;
+        < "STDEVA" ; SC_OPCODE_ST_DEV_A; >;
+        < "STDEVP" ; SC_OPCODE_ST_DEV_P; >;
+        < "STDEVPA" ; SC_OPCODE_ST_DEV_P_A; >;
+        < "COM.MICROSOFT.STDEV.P" ; SC_OPCODE_ST_DEV_P_MS; >;
+        < "COM.MICROSOFT.STDEV.S" ; SC_OPCODE_ST_DEV_S; >;
+        < "BINOM.DIST.RANGE" ; SC_OPCODE_B; >;
+        < "NORMDIST" ; SC_OPCODE_NORM_DIST; >;
+        < "COM.MICROSOFT.NORM.DIST" ; SC_OPCODE_NORM_DIST_MS; >;
+        < "EXPONDIST" ; SC_OPCODE_EXP_DIST; >;
+        < "COM.MICROSOFT.EXPON.DIST" ; SC_OPCODE_EXP_DIST_MS; >;
+        < "BINOMDIST" ; SC_OPCODE_BINOM_DIST; >;
+        < "COM.MICROSOFT.BINOM.DIST" ; SC_OPCODE_BINOM_DIST_MS; >;
+        < "POISSON" ; SC_OPCODE_POISSON_DIST; >;
+        < "COM.MICROSOFT.POISSON.DIST" ; SC_OPCODE_POISSON_DIST_MS; >;
+        < "COMBIN" ; SC_OPCODE_COMBIN; >;
+        < "COMBINA" ; SC_OPCODE_COMBIN_A; >;
+        < "PERMUT" ; SC_OPCODE_PERMUT; >;
+        < "PERMUTATIONA" ; SC_OPCODE_PERMUTATION_A; >;
+        < "PV" ; SC_OPCODE_PV; >;
+        < "SYD" ; SC_OPCODE_SYD; >;
+        < "DDB" ; SC_OPCODE_DDB; >;
+        < "DB" ; SC_OPCODE_DB; >;
+        < "VDB" ; SC_OPCODE_VBD; >;
+        < "PDURATION" ; SC_OPCODE_PDURATION; >;
+        < "SLN" ; SC_OPCODE_SLN; >;
+        < "PMT" ; SC_OPCODE_PMT; >;
+        < "COLUMNS" ; SC_OPCODE_COLUMNS; >;
+        < "ROWS" ; SC_OPCODE_ROWS; >;
+        < "SHEETS" ; SC_OPCODE_SHEETS; >;
+        < "COLUMN" ; SC_OPCODE_COLUMN; >;
+        < "ROW" ; SC_OPCODE_ROW; >;
+        < "SHEET" ; SC_OPCODE_SHEET; >;
+        < "RRI" ; SC_OPCODE_RRI; >;
+        < "FV" ; SC_OPCODE_FV; >;
+        < "NPER" ; SC_OPCODE_NPER; >;
+        < "RATE" ; SC_OPCODE_RATE; >;
+        < "IPMT" ; SC_OPCODE_IPMT; >;
+        < "PPMT" ; SC_OPCODE_PPMT; >;
+        < "CUMIPMT" ; SC_OPCODE_CUM_IPMT; >;
+        < "CUMPRINC" ; SC_OPCODE_CUM_PRINC; >;
+        < "EFFECT" ; SC_OPCODE_EFFECT; >;
+        < "NOMINAL" ; SC_OPCODE_NOMINAL; >;
+        < "SUBTOTAL" ; SC_OPCODE_SUB_TOTAL; >;
+        < "DSUM" ; SC_OPCODE_DB_SUM; >;
+        < "DCOUNT" ; SC_OPCODE_DB_COUNT; >;
+        < "DCOUNTA" ; SC_OPCODE_DB_COUNT_2; >;
+        < "DAVERAGE" ; SC_OPCODE_DB_AVERAGE; >;
+        < "DGET" ; SC_OPCODE_DB_GET; >;
+        < "DMAX" ; SC_OPCODE_DB_MAX; >;
+        < "DMIN" ; SC_OPCODE_DB_MIN; >;
+        < "DPRODUCT" ; SC_OPCODE_DB_PRODUCT; >;
+        < "DSTDEV" ; SC_OPCODE_DB_STD_DEV; >;
+        < "DSTDEVP" ; SC_OPCODE_DB_STD_DEV_P; >;
+        < "DVAR" ; SC_OPCODE_DB_VAR; >;
+        < "DVARP" ; SC_OPCODE_DB_VAR_P; >;
+        < "INDIRECT" ; SC_OPCODE_INDIRECT; >;
+        < "ADDRESS" ; SC_OPCODE_ADDRESS; >;
+        < "MATCH" ; SC_OPCODE_MATCH; >;
+        < "COUNTBLANK" ; SC_OPCODE_COUNT_EMPTY_CELLS; >;
+        < "COUNTIF" ; SC_OPCODE_COUNT_IF; >;
+        < "SUMIF" ; SC_OPCODE_SUM_IF; >;
+        < "AVERAGEIF" ; SC_OPCODE_AVERAGE_IF; >;
+        < "SUMIFS" ; SC_OPCODE_SUM_IFS; >;
+        < "AVERAGEIFS" ; SC_OPCODE_AVERAGE_IFS; >;
+        < "COUNTIFS" ; SC_OPCODE_COUNT_IFS; >;
+        < "LOOKUP" ; SC_OPCODE_LOOKUP; >;
+        < "VLOOKUP" ; SC_OPCODE_V_LOOKUP; >;
+        < "HLOOKUP" ; SC_OPCODE_H_LOOKUP; >;
+        < "ORG.OPENOFFICE.MULTIRANGE" ; SC_OPCODE_MULTI_AREA; >;  // legacy for range list (union)
+        < "OFFSET" ; SC_OPCODE_OFFSET; >;
+        < "INDEX" ; SC_OPCODE_INDEX; >;
+        < "AREAS" ; SC_OPCODE_AREAS; >;
+        < "DOLLAR" ; SC_OPCODE_CURRENCY; >;
+        < "REPLACE" ; SC_OPCODE_REPLACE; >;
+        < "FIXED" ; SC_OPCODE_FIXED; >;
+        < "FIND" ; SC_OPCODE_FIND; >;
+        < "EXACT" ; SC_OPCODE_EXACT; >;
+        < "LEFT" ; SC_OPCODE_LEFT; >;
+        < "RIGHT" ; SC_OPCODE_RIGHT; >;
+        < "SEARCH" ; SC_OPCODE_SEARCH; >;
+        < "MID" ; SC_OPCODE_MID; >;
+        < "LENB" ; SC_OPCODE_LENB; >;
+        < "RIGHTB" ; SC_OPCODE_RIGHTB; >;
+        < "LEFTB" ; SC_OPCODE_LEFTB; >;
+        < "MIDB" ; SC_OPCODE_MIDB; >;
+        < "TEXT" ; SC_OPCODE_TEXT; >;
+        < "SUBSTITUTE" ; SC_OPCODE_SUBSTITUTE; >;
+        < "REPT" ; SC_OPCODE_REPT; >;
+        < "CONCATENATE" ; SC_OPCODE_CONCAT; >;
+        < "COM.MICROSOFT.CONCAT" ; SC_OPCODE_CONCAT_MS; >;
+        < "COM.MICROSOFT.TEXTJOIN" ; SC_OPCODE_TEXTJOIN_MS; >;
+        < "COM.MICROSOFT.IFS" ; SC_OPCODE_IFS_MS; >;
+        < "COM.MICROSOFT.SWITCH" ; SC_OPCODE_SWITCH_MS; >;
+        < "COM.MICROSOFT.MINIFS" ; SC_OPCODE_MINIFS_MS; >;
+        < "COM.MICROSOFT.MAXIFS" ; SC_OPCODE_MAXIFS_MS; >;
+        < "MVALUE" ; SC_OPCODE_MAT_VALUE; >;
+        < "MDETERM" ; SC_OPCODE_MAT_DET; >;
+        < "MINVERSE" ; SC_OPCODE_MAT_INV; >;
+        < "MMULT" ; SC_OPCODE_MAT_MULT; >;
+        < "TRANSPOSE" ; SC_OPCODE_MAT_TRANS; >;
+        < "MUNIT" ; SC_OPCODE_MATRIX_UNIT; >;
+        < "ORG.OPENOFFICE.GOALSEEK" ; SC_OPCODE_BACK_SOLVER; >;
+        < "HYPGEOMDIST" ; SC_OPCODE_HYP_GEOM_DIST; >;
+        < "COM.MICROSOFT.HYPGEOM.DIST" ; SC_OPCODE_HYP_GEOM_DIST_MS; >;
+        < "LOGNORMDIST" ; SC_OPCODE_LOG_NORM_DIST; >;
+        < "COM.MICROSOFT.LOGNORM.DIST" ; SC_OPCODE_LOG_NORM_DIST_MS; >;
+        < "LEGACY.TDIST" ; SC_OPCODE_T_DIST; >;
+        < "COM.MICROSOFT.T.DIST.2T" ; SC_OPCODE_T_DIST_2T; >;
+        < "COM.MICROSOFT.T.DIST" ; SC_OPCODE_T_DIST_MS; >;
+        < "COM.MICROSOFT.T.DIST.RT" ; SC_OPCODE_T_DIST_RT; >;
+        < "LEGACY.FDIST" ; SC_OPCODE_F_DIST; >;
+        < "FDIST" ; SC_OPCODE_F_DIST_LT; >;
+        < "COM.MICROSOFT.F.DIST.RT" ; SC_OPCODE_F_DIST_RT; >;
+        < "LEGACY.CHIDIST" ; SC_OPCODE_CHI_DIST; >;
+        < "COM.MICROSOFT.CHISQ.DIST.RT" ; SC_OPCODE_CHI_DIST_MS; >;
+        < "WEIBULL" ; SC_OPCODE_WEIBULL; >;
+        < "COM.MICROSOFT.WEIBULL.DIST" ; SC_OPCODE_WEIBULL_MS; >;
+        < "NEGBINOMDIST" ; SC_OPCODE_NEG_BINOM_VERT; >;
+        < "COM.MICROSOFT.NEGBINOM.DIST" ; SC_OPCODE_NEG_BINOM_DIST_MS; >;
+        < "CRITBINOM" ; SC_OPCODE_CRIT_BINOM; >;
+        < "COM.MICROSOFT.BINOM.INV" ; SC_OPCODE_BINOM_INV; >;
+        < "KURT" ; SC_OPCODE_KURT; >;
+        < "HARMEAN" ; SC_OPCODE_HAR_MEAN; >;
+        < "GEOMEAN" ; SC_OPCODE_GEO_MEAN; >;
+        < "STANDARDIZE" ; SC_OPCODE_STANDARD; >;
+        < "AVEDEV" ; SC_OPCODE_AVE_DEV; >;
+        < "SKEW" ; SC_OPCODE_SKEW; >;
+        < "SKEWP" ; SC_OPCODE_SKEWP; >;
+        < "DEVSQ" ; SC_OPCODE_DEV_SQ; >;
+        < "MEDIAN" ; SC_OPCODE_MEDIAN; >;
+        < "MODE" ; SC_OPCODE_MODAL_VALUE; >;
+        < "COM.MICROSOFT.MODE.SNGL" ; SC_OPCODE_MODAL_VALUE_MS; >;
+        < "COM.MICROSOFT.MODE.MULT" ; SC_OPCODE_MODAL_VALUE_MULTI; >;
+        < "ZTEST" ; SC_OPCODE_Z_TEST; >;
+        < "COM.MICROSOFT.Z.TEST" ; SC_OPCODE_Z_TEST_MS; >;
+        < "COM.MICROSOFT.AGGREGATE" ; SC_OPCODE_AGGREGATE; >;
+        < "TTEST" ; SC_OPCODE_T_TEST; >;
+        < "COM.MICROSOFT.T.TEST" ; SC_OPCODE_T_TEST_MS; >;
+        < "RANK" ; SC_OPCODE_RANK; >;
+        < "PERCENTILE" ; SC_OPCODE_PERCENTILE; >;
+        < "PERCENTRANK" ; SC_OPCODE_PERCENT_RANK; >;
+        < "COM.MICROSOFT.PERCENTILE.INC" ; SC_OPCODE_PERCENTILE_INC; >;
+        < "COM.MICROSOFT.PERCENTRANK.INC" ; SC_OPCODE_PERCENT_RANK_INC; >;
+        < "COM.MICROSOFT.QUARTILE.INC" ; SC_OPCODE_QUARTILE_INC; >;
+        < "COM.MICROSOFT.RANK.EQ" ; SC_OPCODE_RANK_EQ; >;
+        < "COM.MICROSOFT.PERCENTILE.EXC" ; SC_OPCODE_PERCENTILE_EXC; >;
+        < "COM.MICROSOFT.PERCENTRANK.EXC" ; SC_OPCODE_PERCENT_RANK_EXC; >;
+        < "COM.MICROSOFT.QUARTILE.EXC" ; SC_OPCODE_QUARTILE_EXC; >;
+        < "COM.MICROSOFT.RANK.AVG" ; SC_OPCODE_RANK_AVG; >;
+        < "LARGE" ; SC_OPCODE_LARGE; >;
+        < "SMALL" ; SC_OPCODE_SMALL; >;
+        < "FREQUENCY" ; SC_OPCODE_FREQUENCY; >;
+        < "QUARTILE" ; SC_OPCODE_QUARTILE; >;
+        < "NORMINV" ; SC_OPCODE_NORM_INV; >;
+        < "COM.MICROSOFT.NORM.INV" ; SC_OPCODE_NORM_INV_MS; >;
+        < "CONFIDENCE" ; SC_OPCODE_CONFIDENCE; >;
+        < "COM.MICROSOFT.CONFIDENCE.NORM" ; SC_OPCODE_CONFIDENCE_N; >;
+        < "COM.MICROSOFT.CONFIDENCE.T" ; SC_OPCODE_CONFIDENCE_T; >;
+        < "FTEST" ; SC_OPCODE_F_TEST; >;
+        < "COM.MICROSOFT.F.TEST" ; SC_OPCODE_F_TEST_MS; >;
+        < "TRIMMEAN" ; SC_OPCODE_TRIM_MEAN; >;
+        < "PROB" ; SC_OPCODE_PROB; >;
+        < "CORREL" ; SC_OPCODE_CORREL; >;
+        < "COVAR" ; SC_OPCODE_COVAR; >;
+        < "COM.MICROSOFT.COVARIANCE.P" ; SC_OPCODE_COVARIANCE_P; >;
+        < "COM.MICROSOFT.COVARIANCE.S" ; SC_OPCODE_COVARIANCE_S; >;
+        < "PEARSON" ; SC_OPCODE_PEARSON; >;
+        < "RSQ" ; SC_OPCODE_RSQ; >;
+        < "STEYX" ; SC_OPCODE_STEYX; >;
+        < "SLOPE" ; SC_OPCODE_SLOPE; >;
+        < "INTERCEPT" ; SC_OPCODE_INTERCEPT; >;
+        < "TREND" ; SC_OPCODE_TREND; >;
+        < "GROWTH" ; SC_OPCODE_GROWTH; >;
+        < "LINEST" ; SC_OPCODE_LINEST; >;
+        < "LOGEST" ; SC_OPCODE_LOGEST; >;
+        < "FORECAST" ; SC_OPCODE_FORECAST; >;
+        < "COM.MICROSOFT.FORECAST.ETS" ; SC_OPCODE_FORECAST_ETS_ADD; >;
+        < "COM.MICROSOFT.FORECAST.ETS.SEASONALITY" ; SC_OPCODE_FORECAST_ETS_SEA; >;
+        < "ORG.LIBREOFFICE.FORECAST.ETS.MULT" ; SC_OPCODE_FORECAST_ETS_MUL; >;
+        < "COM.MICROSOFT.FORECAST.ETS.CONFINT" ; SC_OPCODE_FORECAST_ETS_PIA; >;
+        < "ORG.LIBREOFFICE.FORECAST.ETS.PI.MULT" ; SC_OPCODE_FORECAST_ETS_PIM; >;
+        < "COM.MICROSOFT.FORECAST.ETS.STAT" ; SC_OPCODE_FORECAST_ETS_STA; >;
+        < "ORG.LIBREOFFICE.FORECAST.ETS.STAT.MULT" ; SC_OPCODE_FORECAST_ETS_STM; >;
+        < "COM.MICROSOFT.FORECAST.LINEAR" ; SC_OPCODE_FORECAST_LIN; >;
+        < "LEGACY.CHIINV" ; SC_OPCODE_CHI_INV; >;
+        < "COM.MICROSOFT.CHISQ.INV.RT" ; SC_OPCODE_CHI_INV_MS; >;
+        < "GAMMADIST" ; SC_OPCODE_GAMMA_DIST; >;
+        < "COM.MICROSOFT.GAMMA.DIST" ; SC_OPCODE_GAMMA_DIST_MS; >;
+        < "GAMMAINV" ; SC_OPCODE_GAMMA_INV; >;
+        < "COM.MICROSOFT.GAMMA.INV" ; SC_OPCODE_GAMMA_INV_MS; >;
+        < "TINV" ; SC_OPCODE_T_INV; >;
+        < "COM.MICROSOFT.T.INV.2T" ; SC_OPCODE_T_INV_2T; >;
+        < "COM.MICROSOFT.T.INV" ; SC_OPCODE_T_INV_MS; >;
+        < "LEGACY.FINV" ; SC_OPCODE_F_INV; >;
+        < "FINV" ; SC_OPCODE_F_INV_LT; >;
+        < "COM.MICROSOFT.F.INV.RT" ; SC_OPCODE_F_INV_RT; >;
+        < "LEGACY.CHITEST" ; SC_OPCODE_CHI_TEST; >;
+        < "COM.MICROSOFT.CHISQ.TEST" ; SC_OPCODE_CHI_TEST_MS; >;
+        < "LOGINV" ; SC_OPCODE_LOG_INV; >;
+        < "COM.MICROSOFT.LOGNORM.INV" ; SC_OPCODE_LOG_INV_MS; >;
+        < "MULTIPLE.OPERATIONS" ; SC_OPCODE_TABLE_OP; >;
+        < "BETADIST" ; SC_OPCODE_BETA_DIST; >;
+        < "BETAINV" ; SC_OPCODE_BETA_INV; >;
+        < "COM.MICROSOFT.BETA.DIST" ; SC_OPCODE_BETA_DIST_MS; >;
+        < "COM.MICROSOFT.BETA.INV" ; SC_OPCODE_BETA_INV_MS; >;
+        < "WEEKNUM" ; SC_OPCODE_WEEK; >;
+        < "ISOWEEKNUM" ; SC_OPCODE_ISOWEEKNUM; >;
+        < "ORG.LIBREOFFICE.WEEKNUM_OOO" ; SC_OPCODE_WEEKNUM_OOO; >;
+        < "ORG.OPENOFFICE.EASTERSUNDAY" ; SC_OPCODE_EASTERSUNDAY; >;
+        < "WEEKDAY" ; SC_OPCODE_GET_DAY_OF_WEEK; >;
+        < "NETWORKDAYS" ; SC_OPCODE_NETWORKDAYS; >;
+        < "COM.MICROSOFT.NETWORKDAYS.INTL" ; SC_OPCODE_NETWORKDAYS_MS; >;
+        < "COM.MICROSOFT.WORKDAY.INTL" ; SC_OPCODE_WORKDAY_MS; >;
+        < "#NAME!" ; SC_OPCODE_NO_NAME; >;
+        < "ORG.OPENOFFICE.STYLE" ; SC_OPCODE_STYLE; >;
+        < "DDE" ; SC_OPCODE_DDE; >;
+        < "BASE" ; SC_OPCODE_BASE; >;
+        < "DECIMAL" ; SC_OPCODE_DECIMAL; >;
+        < "ORG.OPENOFFICE.CONVERT" ; SC_OPCODE_CONVERT_OOO; >;
+        < "ROMAN" ; SC_OPCODE_ROMAN; >;
+        < "ARABIC" ; SC_OPCODE_ARABIC; >;
+        < "HYPERLINK" ; SC_OPCODE_HYPERLINK; >;
+        < "INFO" ; SC_OPCODE_INFO; >;
+        < "COM.MICROSOFT.BAHTTEXT" ; SC_OPCODE_BAHTTEXT; >;
+        < "GETPIVOTDATA" ; SC_OPCODE_GET_PIVOT_DATA; >;
+        < "EUROCONVERT" ; SC_OPCODE_EUROCONVERT; >;
+        < "NUMBERVALUE" ; SC_OPCODE_NUMBERVALUE; >;
+        < "GAMMA" ; SC_OPCODE_GAMMA; >;
+        < "CHISQDIST" ; SC_OPCODE_CHISQ_DIST; >;
+        < "COM.MICROSOFT.CHISQ.DIST" ; SC_OPCODE_CHISQ_DIST_MS; >;
+        < "CHISQINV" ; SC_OPCODE_CHISQ_INV; >;
+        < "COM.MICROSOFT.CHISQ.INV" ; SC_OPCODE_CHISQ_INV_MS; >;
+        < "BITAND" ; SC_OPCODE_BITAND; >;
+        < "BITOR" ; SC_OPCODE_BITOR; >;
+        < "BITXOR" ; SC_OPCODE_BITXOR; >;
+        < "BITRSHIFT" ; SC_OPCODE_BITRSHIFT; >;
+        < "BITLSHIFT" ; SC_OPCODE_BITLSHIFT; >;
+        /* BEGIN defined ERROR.TYPE() values. */
+        < "#NULL!" ; SC_OPCODE_ERROR_NULL; >;
+        < "#DIV/0!" ; SC_OPCODE_ERROR_DIVZERO; >;
+        < "#VALUE!" ; SC_OPCODE_ERROR_VALUE; >;
+        < "#REF!" ; SC_OPCODE_ERROR_REF; >;
+        < "#NAME?" ; SC_OPCODE_ERROR_NAME; >;
+        < "#NUM!" ; SC_OPCODE_ERROR_NUM; >;
+        < "#N/A" ; SC_OPCODE_ERROR_NA; >;
+        /* END defined ERROR.TYPE() values. */
+        < "COM.MICROSOFT.FILTERXML" ; SC_OPCODE_FILTERXML; >;
+        < "COM.MICROSOFT.WEBSERVICE" ; SC_OPCODE_WEBSERVICE; >;
+        < "ORG.LIBREOFFICE.COLOR" ; SC_OPCODE_COLOR; >;
+        < "COM.MICROSOFT.ERF.PRECISE" ; SC_OPCODE_ERF_MS; >;
+        < "COM.MICROSOFT.ERFC.PRECISE" ; SC_OPCODE_ERFC_MS; >;
+        < "COM.MICROSOFT.ENCODEURL" ; SC_OPCODE_ENCODEURL; >;
+        < "ORG.LIBREOFFICE.RAWSUBTRACT" ; SC_OPCODE_RAWSUBTRACT; >;
+    };
 };
 
 /** These function names are used in the OOXML XLSX import/export. */
-Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML
+StringArray RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML
 {
-    String SC_OPCODE_IF { Text = "IF" ; };
-    String SC_OPCODE_IF_ERROR { Text = "IFERROR" ; };
-    String SC_OPCODE_IF_NA { Text = "_xlfn.IFNA" ; };
-    String SC_OPCODE_CHOOSE { Text = "CHOOSE" ; };
-    String SC_OPCODE_OPEN { Text = "(" ; };
-    String SC_OPCODE_CLOSE { Text = ")" ; };
-    String SC_OPCODE_TABLE_REF_OPEN { Text = "[" ; };
-    String SC_OPCODE_TABLE_REF_CLOSE { Text = "]" ; };
-    String SC_OPCODE_TABLE_REF_ITEM_ALL { Text = "#All" ; };
-    String SC_OPCODE_TABLE_REF_ITEM_HEADERS { Text = "#Headers" ; };
-    String SC_OPCODE_TABLE_REF_ITEM_DATA { Text = "#Data" ; };
-    String SC_OPCODE_TABLE_REF_ITEM_TOTALS { Text = "#Totals" ; };
-    String SC_OPCODE_TABLE_REF_ITEM_THIS_ROW { Text = "#This Row" ; };
-    String SC_OPCODE_ARRAY_OPEN { Text = "{" ; };
-    String SC_OPCODE_ARRAY_CLOSE { Text = "}" ; };
-    String SC_OPCODE_ARRAY_ROW_SEP { Text = ";" ; };
-    String SC_OPCODE_ARRAY_COL_SEP { Text = "," ; };
-    String SC_OPCODE_SEP { Text = "," ; };
-    String SC_OPCODE_PERCENT_SIGN { Text = "%" ; };
-    String SC_OPCODE_ADD { Text = "+" ; };
-    String SC_OPCODE_SUB { Text = "-" ; };
-    String SC_OPCODE_MUL { Text = "*" ; };
-    String SC_OPCODE_DIV { Text = "/" ; };
-    String SC_OPCODE_AMPERSAND { Text = "&" ; };
-    String SC_OPCODE_POW { Text = "^" ; };
-    String SC_OPCODE_EQUAL { Text = "=" ; };
-    String SC_OPCODE_NOT_EQUAL { Text = "<>" ; };
-    String SC_OPCODE_LESS { Text = "<" ; };
-    String SC_OPCODE_GREATER { Text = ">" ; };
-    String SC_OPCODE_LESS_EQUAL { Text = "<=" ; };
-    String SC_OPCODE_GREATER_EQUAL { Text = ">=" ; };
-    String SC_OPCODE_AND { Text = "AND" ; };
-    String SC_OPCODE_OR { Text = "OR" ; };
-    String SC_OPCODE_XOR { Text = "_xlfn.XOR" ; };
-    String SC_OPCODE_INTERSECT { Text = " " ; };
-    String SC_OPCODE_UNION { Text = "~" ; };
-    String SC_OPCODE_RANGE { Text = ":" ; };
-    String SC_OPCODE_NOT { Text = "NOT" ; };
-    String SC_OPCODE_NEG { Text = "NEG" ; };
-    String SC_OPCODE_NEG_SUB { Text = "-" ; };
-    String SC_OPCODE_PI { Text = "PI" ; };
-    String SC_OPCODE_RANDOM { Text = "RAND" ; };
-    String SC_OPCODE_TRUE { Text = "TRUE" ; };
-    String SC_OPCODE_FALSE { Text = "FALSE" ; };
-    String SC_OPCODE_GET_ACT_DATE { Text = "TODAY" ; };
-    String SC_OPCODE_GET_ACT_TIME { Text = "NOW" ; };
-    String SC_OPCODE_NO_VALUE { Text = "NA" ; };
-    String SC_OPCODE_CURRENT { Text = "_xlfn.ORG.OPENOFFICE.CURRENT" ; };
-    String SC_OPCODE_DEG { Text = "DEGREES" ; };
-    String SC_OPCODE_RAD { Text = "RADIANS" ; };
-    String SC_OPCODE_SIN { Text = "SIN" ; };
-    String SC_OPCODE_COS { Text = "COS" ; };
-    String SC_OPCODE_TAN { Text = "TAN" ; };
-    String SC_OPCODE_COT { Text = "_xlfn.COT" ; };
-    String SC_OPCODE_ARC_SIN { Text = "ASIN" ; };
-    String SC_OPCODE_ARC_COS { Text = "ACOS" ; };
-    String SC_OPCODE_ARC_TAN { Text = "ATAN" ; };
-    String SC_OPCODE_ARC_COT { Text = "_xlfn.ACOT" ; };
-    String SC_OPCODE_SIN_HYP { Text = "SINH" ; };
-    String SC_OPCODE_COS_HYP { Text = "COSH" ; };
-    String SC_OPCODE_TAN_HYP { Text = "TANH" ; };
-    String SC_OPCODE_COT_HYP { Text = "_xlfn.COTH" ; };
-    String SC_OPCODE_ARC_SIN_HYP { Text = "ASINH" ; };
-    String SC_OPCODE_ARC_COS_HYP { Text = "ACOSH" ; };
-    String SC_OPCODE_ARC_TAN_HYP { Text = "ATANH" ; };
-    String SC_OPCODE_ARC_COT_HYP { Text = "_xlfn.ACOTH" ; };
-    String SC_OPCODE_COSECANT { Text = "_xlfn.CSC" ; };
-    String SC_OPCODE_SECANT { Text = "_xlfn.SEC" ; };
-    String SC_OPCODE_COSECANT_HYP { Text = "_xlfn.CSCH" ; };
-    String SC_OPCODE_SECANT_HYP { Text = "_xlfn.SECH" ; };
-    String SC_OPCODE_EXP { Text = "EXP" ; };
-    String SC_OPCODE_LN { Text = "LN" ; };
-    String SC_OPCODE_SQRT { Text = "SQRT" ; };
-    String SC_OPCODE_FACT { Text = "FACT" ; };
-    String SC_OPCODE_GET_YEAR { Text = "YEAR" ; };
-    String SC_OPCODE_GET_MONTH { Text = "MONTH" ; };
-    String SC_OPCODE_GET_DAY { Text = "DAY" ; };
-    String SC_OPCODE_GET_HOUR { Text = "HOUR" ; };
-    String SC_OPCODE_GET_MIN { Text = "MINUTE" ; };
-    String SC_OPCODE_GET_SEC { Text = "SECOND" ; };
-    String SC_OPCODE_PLUS_MINUS { Text = "SIGN" ; };
-    String SC_OPCODE_ABS { Text = "ABS" ; };
-    String SC_OPCODE_INT { Text = "INT" ; };
-    String SC_OPCODE_PHI { Text = "_xlfn.PHI" ; };
-    String SC_OPCODE_GAUSS { Text = "_xlfn.GAUSS" ; };
-    String SC_OPCODE_IS_EMPTY { Text = "ISBLANK" ; };
-    String SC_OPCODE_IS_STRING { Text = "ISTEXT" ; };
-    String SC_OPCODE_IS_NON_STRING { Text = "ISNONTEXT" ; };
-    String SC_OPCODE_IS_LOGICAL { Text = "ISLOGICAL" ; };
-    String SC_OPCODE_TYPE { Text = "TYPE" ; };
-    String SC_OPCODE_CELL { Text = "CELL" ; };
-    String SC_OPCODE_IS_REF { Text = "ISREF" ; };
-    String SC_OPCODE_IS_VALUE { Text = "ISNUMBER" ; };
-    String SC_OPCODE_IS_FORMULA { Text = "_xlfn.ISFORMULA" ; };
-    String SC_OPCODE_IS_NV { Text = "ISNA" ; };
-    String SC_OPCODE_IS_ERR { Text = "ISERR" ; };
-    String SC_OPCODE_IS_ERROR { Text = "ISERROR" ; };
-    String SC_OPCODE_IS_EVEN { Text = "ISEVEN" ; };
-    String SC_OPCODE_IS_ODD { Text = "ISODD" ; };
-    String SC_OPCODE_N { Text = "N" ; };
-    String SC_OPCODE_GET_DATE_VALUE { Text = "DATEVALUE" ; };
-    String SC_OPCODE_GET_TIME_VALUE { Text = "TIMEVALUE" ; };
-    String SC_OPCODE_CODE { Text = "CODE" ; };
-    String SC_OPCODE_TRIM { Text = "TRIM" ; };
-    String SC_OPCODE_UPPER { Text = "UPPER" ; };
-    String SC_OPCODE_PROPER { Text = "PROPER" ; };
-    String SC_OPCODE_LOWER { Text = "LOWER" ; };
-    String SC_OPCODE_LEN { Text = "LEN" ; };
-    String SC_OPCODE_T { Text = "T" ; };
-    String SC_OPCODE_VALUE { Text = "VALUE" ; };
-    String SC_OPCODE_CLEAN { Text = "CLEAN" ; };
-    String SC_OPCODE_CHAR { Text = "CHAR" ; };
-    String SC_OPCODE_JIS { Text = "JIS" ; };
-    String SC_OPCODE_ASC { Text = "ASC" ; };
-    String SC_OPCODE_UNICODE { Text = "_xlfn.UNICODE" ; };
-    String SC_OPCODE_UNICHAR { Text = "_xlfn.UNICHAR" ; };
-    String SC_OPCODE_LOG10 { Text = "LOG10" ; };
-    String SC_OPCODE_EVEN { Text = "EVEN" ; };
-    String SC_OPCODE_ODD { Text = "ODD" ; };
-    String SC_OPCODE_STD_NORM_DIST { Text = "NORMSDIST" ; };
-    String SC_OPCODE_STD_NORM_DIST_MS { Text = "_xlfn.NORM.S.DIST" ; };
-    String SC_OPCODE_FISHER { Text = "FISHER" ; };
-    String SC_OPCODE_FISHER_INV { Text = "FISHERINV" ; };
-    String SC_OPCODE_S_NORM_INV { Text = "NORMSINV" ; };
-    String SC_OPCODE_S_NORM_INV_MS { Text = "_xlfn.NORM.S.INV" ; };
-    String SC_OPCODE_GAMMA_LN { Text = "GAMMALN" ; };
-    String SC_OPCODE_GAMMA_LN_MS { Text = "_xlfn.GAMMALN.PRECISE" ; };
-    String SC_OPCODE_ERROR_TYPE { Text = "_xlfn.ORG.OPENOFFICE.ERRORTYPE" ; };
-    String SC_OPCODE_ERROR_TYPE_ODF { Text = "ERROR.TYPE" ; };
-    String SC_OPCODE_FORMULA { Text = "_xlfn.FORMULATEXT"; };
-    String SC_OPCODE_ARC_TAN_2 { Text = "ATAN2" ; };
-    String SC_OPCODE_CEIL_MATH { Text = "_xlfn.CEILING.MATH" ; };
-    String SC_OPCODE_CEIL { Text = "_xlfn.CEILING.MATH" ; };
-    String SC_OPCODE_CEIL_MS { Text = "CEILING" ; };
-    String SC_OPCODE_CEIL_PRECISE { Text = "_xlfn.CEILING.PRECISE" ; };
-    String SC_OPCODE_CEIL_ISO { Text = "ISO.CEILING" ; };
-    String SC_OPCODE_FLOOR_MS { Text = "FLOOR" ; };
-    String SC_OPCODE_FLOOR_MATH { Text = "_xlfn.FLOOR.MATH" ; };
-    String SC_OPCODE_FLOOR { Text = "_xlfn.FLOOR.MATH" ; };
-    String SC_OPCODE_FLOOR_PRECISE { Text = "_xlfn.FLOOR.PRECISE" ; };
-    String SC_OPCODE_ROUND { Text = "ROUND" ; };
-    String SC_OPCODE_ROUND_UP { Text = "ROUNDUP" ; };
-    String SC_OPCODE_ROUND_DOWN { Text = "ROUNDDOWN" ; };
-    String SC_OPCODE_TRUNC { Text = "TRUNC" ; };
-    String SC_OPCODE_LOG { Text = "LOG" ; };
-    String SC_OPCODE_POWER { Text = "POWER" ; };
-    String SC_OPCODE_GCD { Text = "GCD" ; };
-    String SC_OPCODE_LCM { Text = "LCM" ; };
-    String SC_OPCODE_MOD { Text = "MOD" ; };
-    String SC_OPCODE_SUM_PRODUCT { Text = "SUMPRODUCT" ; };
-    String SC_OPCODE_SUM_SQ { Text = "SUMSQ" ; };
-    String SC_OPCODE_SUM_X2MY2 { Text = "SUMX2MY2" ; };
-    String SC_OPCODE_SUM_X2DY2 { Text = "SUMX2PY2" ; };
-    String SC_OPCODE_SUM_XMY2 { Text = "SUMXMY2" ; };
-    String SC_OPCODE_GET_DATE { Text = "DATE" ; };
-    String SC_OPCODE_GET_TIME { Text = "TIME" ; };
-    String SC_OPCODE_GET_DIFF_DATE { Text = "_xlfn.DAYS" ; };
-    String SC_OPCODE_GET_DIFF_DATE_360 { Text = "DAYS360" ; };
-    String SC_OPCODE_GET_DATEDIF { Text = "DATEDIF" ; };
-    String SC_OPCODE_MIN { Text = "MIN" ; };
-    String SC_OPCODE_MIN_A { Text = "MINA" ; };
-    String SC_OPCODE_MAX { Text = "MAX" ; };
-    String SC_OPCODE_MAX_A { Text = "MAXA" ; };
-    String SC_OPCODE_SUM { Text = "SUM" ; };
-    String SC_OPCODE_PRODUCT { Text = "PRODUCT" ; };
-    String SC_OPCODE_AVERAGE { Text = "AVERAGE" ; };
-    String SC_OPCODE_AVERAGE_A { Text = "AVERAGEA" ; };
-    String SC_OPCODE_COUNT { Text = "COUNT" ; };
-    String SC_OPCODE_COUNT_2 { Text = "COUNTA" ; };
-    String SC_OPCODE_NPV { Text = "NPV" ; };
-    String SC_OPCODE_IRR { Text = "IRR" ; };
-    String SC_OPCODE_MIRR { Text = "MIRR" ; };
-    String SC_OPCODE_ISPMT { Text = "ISPMT" ; };
-    String SC_OPCODE_VAR { Text = "VAR" ; };
-    String SC_OPCODE_VAR_A { Text = "VARA" ; };
-    String SC_OPCODE_VAR_P { Text = "VARP" ; };
-    String SC_OPCODE_VAR_P_A { Text = "VARPA" ; };
-    String SC_OPCODE_VAR_P_MS { Text = "_xlfn.VAR.P" ; };
-    String SC_OPCODE_VAR_S { Text = "_xlfn.VAR.S" ; };
-    String SC_OPCODE_ST_DEV { Text = "STDEV" ; };
-    String SC_OPCODE_ST_DEV_A { Text = "STDEVA" ; };
-    String SC_OPCODE_ST_DEV_P { Text = "STDEVP" ; };
-    String SC_OPCODE_ST_DEV_P_A { Text = "STDEVPA" ; };
-    String SC_OPCODE_ST_DEV_P_MS { Text = "_xlfn.STDEV.P" ; };
-    String SC_OPCODE_ST_DEV_S { Text = "_xlfn.STDEV.S" ; };
-    String SC_OPCODE_B { Text = "B" ; };
-    String SC_OPCODE_NORM_DIST { Text = "NORMDIST" ; };
-    String SC_OPCODE_NORM_DIST_MS { Text = "_xlfn.NORM.DIST" ; };
-    String SC_OPCODE_EXP_DIST { Text = "EXPONDIST" ; };
-    String SC_OPCODE_EXP_DIST_MS { Text = "_xlfn.EXPON.DIST" ; };
-    String SC_OPCODE_BINOM_DIST { Text = "BINOMDIST" ; };
-    String SC_OPCODE_BINOM_DIST_MS { Text = "_xlfn.BINOM.DIST" ; };
-    String SC_OPCODE_POISSON_DIST { Text = "POISSON" ; };
-    String SC_OPCODE_POISSON_DIST_MS { Text = "_xlfn.POISSON.DIST" ; };
-    String SC_OPCODE_COMBIN { Text = "COMBIN" ; };
-    String SC_OPCODE_COMBIN_A { Text = "_xlfn.COMBINA" ; };
-    String SC_OPCODE_PERMUT { Text = "PERMUT" ; };
-    String SC_OPCODE_PERMUTATION_A { Text = "_xlfn.PERMUTATIONA" ; };
-    String SC_OPCODE_PV { Text = "PV" ; };
-    String SC_OPCODE_SYD { Text = "SYD" ; };
-    String SC_OPCODE_DDB { Text = "DDB" ; };
-    String SC_OPCODE_DB { Text = "DB" ; };
-    String SC_OPCODE_VBD { Text = "VDB" ; };
-    String SC_OPCODE_PDURATION { Text = "_xlfn.PDURATION" ; };
-    String SC_OPCODE_SLN { Text = "SLN" ; };
-    String SC_OPCODE_PMT { Text = "PMT" ; };
-    String SC_OPCODE_COLUMNS { Text = "COLUMNS" ; };
-    String SC_OPCODE_ROWS { Text = "ROWS" ; };
-    String SC_OPCODE_SHEETS { Text = "_xlfn.SHEETS" ; };
-    String SC_OPCODE_COLUMN { Text = "COLUMN" ; };
-    String SC_OPCODE_ROW { Text = "ROW" ; };
-    String SC_OPCODE_SHEET { Text = "_xlfn.SHEET" ; };
-    String SC_OPCODE_RRI { Text = "_xlfn.RRI" ; };
-    String SC_OPCODE_FV { Text = "FV" ; };
-    String SC_OPCODE_NPER { Text = "NPER" ; };
-    String SC_OPCODE_RATE { Text = "RATE" ; };
-    String SC_OPCODE_IPMT { Text = "IPMT" ; };
-    String SC_OPCODE_PPMT { Text = "PPMT" ; };
-    String SC_OPCODE_CUM_IPMT { Text = "CUMIPMT" ; };
-    String SC_OPCODE_CUM_PRINC { Text = "CUMPRINC" ; };
-    String SC_OPCODE_EFFECT { Text = "EFFECT" ; };
-    String SC_OPCODE_NOMINAL { Text = "NOMINAL" ; };
-    String SC_OPCODE_SUB_TOTAL { Text = "SUBTOTAL" ; };
-    String SC_OPCODE_DB_SUM { Text = "DSUM" ; };
-    String SC_OPCODE_DB_COUNT { Text = "DCOUNT" ; };
-    String SC_OPCODE_DB_COUNT_2 { Text = "DCOUNTA" ; };
-    String SC_OPCODE_DB_AVERAGE { Text = "DAVERAGE" ; };
-    String SC_OPCODE_DB_GET { Text = "DGET" ; };
-    String SC_OPCODE_DB_MAX { Text = "DMAX" ; };
-    String SC_OPCODE_DB_MIN { Text = "DMIN" ; };
-    String SC_OPCODE_DB_PRODUCT { Text = "DPRODUCT" ; };
-    String SC_OPCODE_DB_STD_DEV { Text = "DSTDEV" ; };
-    String SC_OPCODE_DB_STD_DEV_P { Text = "DSTDEVP" ; };
-    String SC_OPCODE_DB_VAR { Text = "DVAR" ; };
-    String SC_OPCODE_DB_VAR_P { Text = "DVARP" ; };
-    String SC_OPCODE_INDIRECT { Text = "INDIRECT" ; };
-    String SC_OPCODE_ADDRESS { Text = "ADDRESS" ; };
-    String SC_OPCODE_MATCH { Text = "MATCH" ; };
-    String SC_OPCODE_COUNT_EMPTY_CELLS { Text = "COUNTBLANK" ; };
-    String SC_OPCODE_COUNT_IF { Text = "COUNTIF" ; };
-    String SC_OPCODE_SUM_IF { Text = "SUMIF" ; };
-    String SC_OPCODE_AVERAGE_IF { Text = "AVERAGEIF" ; };
-    String SC_OPCODE_SUM_IFS { Text = "SUMIFS" ; };
-    String SC_OPCODE_AVERAGE_IFS { Text = "AVERAGEIFS" ; };
-    String SC_OPCODE_COUNT_IFS { Text = "COUNTIFS" ; };
-    String SC_OPCODE_LOOKUP { Text = "LOOKUP" ; };
-    String SC_OPCODE_V_LOOKUP { Text = "VLOOKUP" ; };
-    String SC_OPCODE_H_LOOKUP { Text = "HLOOKUP" ; };
-    String SC_OPCODE_MULTI_AREA { Text = "_xlfn.ORG.OPENOFFICE.MULTIRANGE" ; };      // legacy for range list (union)
-    String SC_OPCODE_OFFSET { Text = "OFFSET" ; };
-    String SC_OPCODE_INDEX { Text = "INDEX" ; };
-    String SC_OPCODE_AREAS { Text = "AREAS" ; };
-    String SC_OPCODE_CURRENCY { Text = "DOLLAR" ; };
-    String SC_OPCODE_REPLACE { Text = "REPLACE" ; };
-    String SC_OPCODE_FIXED { Text = "FIXED" ; };
-    String SC_OPCODE_FIND { Text = "FIND" ; };
-    String SC_OPCODE_EXACT { Text = "EXACT" ; };
-    String SC_OPCODE_LEFT { Text = "LEFT" ; };
-    String SC_OPCODE_RIGHT { Text = "RIGHT" ; };
-    String SC_OPCODE_SEARCH { Text = "SEARCH" ; };
-    String SC_OPCODE_MID { Text = "MID" ; };
-    String SC_OPCODE_LENB { Text = "LENB" ; };
-    String SC_OPCODE_RIGHTB { Text = "RIGHTB" ; };
-    String SC_OPCODE_LEFTB { Text = "LEFTB" ; };
-    String SC_OPCODE_MIDB { Text = "MIDB" ; };
-    String SC_OPCODE_TEXT { Text = "TEXT" ; };
-    String SC_OPCODE_SUBSTITUTE { Text = "SUBSTITUTE" ; };
-    String SC_OPCODE_REPT { Text = "REPT" ; };
-    String SC_OPCODE_CONCAT { Text = "CONCATENATE" ; };
-    String SC_OPCODE_CONCAT_MS { Text = "_xlfn.CONCAT" ; };
-    String SC_OPCODE_TEXTJOIN_MS { Text = "_xlfn.TEXTJOIN" ; };
-    String SC_OPCODE_IFS_MS { Text = "_xlfn.IFS" ; };
-    String SC_OPCODE_SWITCH_MS { Text = "_xlfn.SWITCH" ; };
-    String SC_OPCODE_MINIFS_MS { Text = "_xlfn.MINIFS" ; };
-    String SC_OPCODE_MAXIFS_MS { Text = "_xlfn.MAXIFS" ; };
-    String SC_OPCODE_MAT_VALUE { Text = "MVALUE" ; };
-    String SC_OPCODE_MAT_DET { Text = "MDETERM" ; };
-    String SC_OPCODE_MAT_INV { Text = "MINVERSE" ; };
-    String SC_OPCODE_MAT_MULT { Text = "MMULT" ; };
-    String SC_OPCODE_MAT_TRANS { Text = "TRANSPOSE" ; };
-    String SC_OPCODE_MATRIX_UNIT { Text = "_xlfn.MUNIT" ; };
-    String SC_OPCODE_BACK_SOLVER { Text = "_xlfn.ORG.OPENOFFICE.GOALSEEK" ; };
-    String SC_OPCODE_HYP_GEOM_DIST { Text = "HYPGEOMDIST" ; };
-    String SC_OPCODE_HYP_GEOM_DIST_MS { Text = "_xlfn.HYPGEOM.DIST" ; };
-    String SC_OPCODE_LOG_NORM_DIST { Text = "LOGNORMDIST" ; };
-    String SC_OPCODE_LOG_NORM_DIST_MS { Text = "_xlfn.LOGNORM.DIST" ; };
-    String SC_OPCODE_T_DIST { Text = "TDIST" ; };
-    String SC_OPCODE_T_DIST_2T { Text = "_xlfn.T.DIST.2T" ; };
-    String SC_OPCODE_T_DIST_MS { Text = "_xlfn.T.DIST" ; };
-    String SC_OPCODE_T_DIST_RT { Text = "_xlfn.T.DIST.RT" ; };
-    String SC_OPCODE_F_DIST { Text = "FDIST" ; };
-    String SC_OPCODE_F_DIST_LT { Text = "_xlfn.F.DIST" ; };
-    String SC_OPCODE_F_DIST_RT { Text = "_xlfn.F.DIST.RT" ; };
-    String SC_OPCODE_CHI_DIST { Text = "CHIDIST" ; };
-    String SC_OPCODE_CHI_DIST_MS { Text = "_xlfn.CHISQ.DIST.RT" ; };
-    String SC_OPCODE_WEIBULL { Text = "WEIBULL" ; };
-    String SC_OPCODE_WEIBULL_MS { Text = "_xlfn.WEIBULL.DIST" ; };
-    String SC_OPCODE_NEG_BINOM_VERT { Text = "NEGBINOMDIST" ; };
-    String SC_OPCODE_NEG_BINOM_DIST_MS { Text = "_xlfn.NEGBINOM.DIST" ; };
-    String SC_OPCODE_CRIT_BINOM { Text = "CRITBINOM" ; };
-    String SC_OPCODE_BINOM_INV { Text = "_xlfn.BINOM.INV" ; };
-    String SC_OPCODE_KURT { Text = "KURT" ; };
-    String SC_OPCODE_HAR_MEAN { Text = "HARMEAN" ; };
-    String SC_OPCODE_GEO_MEAN { Text = "GEOMEAN" ; };
-    String SC_OPCODE_STANDARD { Text = "STANDARDIZE" ; };
-    String SC_OPCODE_AVE_DEV { Text = "AVEDEV" ; };
-    String SC_OPCODE_SKEW { Text = "SKEW" ; };
-    String SC_OPCODE_SKEWP   { Text = "_xlfn.SKEW.P" ; };
-    String SC_OPCODE_DEV_SQ { Text = "DEVSQ" ; };
-    String SC_OPCODE_MEDIAN { Text = "MEDIAN" ; };
-    String SC_OPCODE_MODAL_VALUE { Text = "MODE" ; };
-    String SC_OPCODE_MODAL_VALUE_MS { Text = "_xlfn.MODE.SNGL" ; };
-    String SC_OPCODE_MODAL_VALUE_MULTI { Text = "_xlfn.MODE.MULT" ; };
-    String SC_OPCODE_Z_TEST { Text = "ZTEST" ; };
-    String SC_OPCODE_Z_TEST_MS { Text = "_xlfn.Z.TEST" ; };
-    String SC_OPCODE_AGGREGATE { Text = "_xlfn.AGGREGATE" ; };
-    String SC_OPCODE_T_TEST { Text = "TTEST" ; };
-    String SC_OPCODE_T_TEST_MS { Text = "_xlfn.T.TEST" ; };
-    String SC_OPCODE_RANK { Text = "RANK" ; };
-    String SC_OPCODE_PERCENTILE { Text = "PERCENTILE" ; };
-    String SC_OPCODE_PERCENT_RANK { Text = "PERCENTRANK" ; };
-    String SC_OPCODE_PERCENTILE_INC { Text = "_xlfn.PERCENTILE.INC" ; };
-    String SC_OPCODE_PERCENT_RANK_INC { Text = "_xlfn.PERCENTRANK.INC" ; };
-    String SC_OPCODE_QUARTILE_INC { Text = "_xlfn.QUARTILE.INC" ; };
-    String SC_OPCODE_RANK_EQ { Text = "_xlfn.RANK.EQ" ; };
-    String SC_OPCODE_PERCENTILE_EXC { Text = "_xlfn.PERCENTILE.EXC" ; };
-    String SC_OPCODE_PERCENT_RANK_EXC { Text = "_xlfn.PERCENTRANK.EXC" ; };
-    String SC_OPCODE_QUARTILE_EXC { Text = "_xlfn.QUARTILE.EXC" ; };
-    String SC_OPCODE_RANK_AVG { Text = "_xlfn.RANK.AVG" ; };
-    String SC_OPCODE_LARGE { Text = "LARGE" ; };
-    String SC_OPCODE_SMALL { Text = "SMALL" ; };
-    String SC_OPCODE_FREQUENCY { Text = "FREQUENCY" ; };
-    String SC_OPCODE_QUARTILE { Text = "QUARTILE" ; };
-    String SC_OPCODE_NORM_INV { Text = "NORMINV" ; };
-    String SC_OPCODE_NORM_INV_MS { Text = "_xlfn.NORM.INV" ; };
-    String SC_OPCODE_CONFIDENCE { Text = "CONFIDENCE" ; };
-    String SC_OPCODE_CONFIDENCE_N { Text = "_xlfn.CONFIDENCE.NORM" ; };
-    String SC_OPCODE_CONFIDENCE_T { Text = "_xlfn.CONFIDENCE.T" ; };
-    String SC_OPCODE_F_TEST { Text = "FTEST" ; };
-    String SC_OPCODE_F_TEST_MS { Text = "_xlfn.F.TEST" ; };
-    String SC_OPCODE_TRIM_MEAN { Text = "TRIMMEAN" ; };
-    String SC_OPCODE_PROB { Text = "PROB" ; };
-    String SC_OPCODE_CORREL { Text = "CORREL" ; };
-    String SC_OPCODE_COVAR { Text = "COVAR" ; };
-    String SC_OPCODE_COVARIANCE_P { Text = "_xlfn.COVARIANCE.P" ; };
-    String SC_OPCODE_COVARIANCE_S { Text = "_xlfn.COVARIANCE.S" ; };
-    String SC_OPCODE_PEARSON { Text = "PEARSON" ; };
-    String SC_OPCODE_RSQ { Text = "RSQ" ; };
-    String SC_OPCODE_STEYX { Text = "STEYX" ; };
-    String SC_OPCODE_SLOPE { Text = "SLOPE" ; };
-    String SC_OPCODE_INTERCEPT { Text = "INTERCEPT" ; };
-    String SC_OPCODE_TREND { Text = "TREND" ; };
-    String SC_OPCODE_GROWTH { Text = "GROWTH" ; };
-    String SC_OPCODE_LINEST { Text = "LINEST" ; };
-    String SC_OPCODE_LOGEST { Text = "LOGEST" ; };
-    String SC_OPCODE_FORECAST { Text = "FORECAST" ; };
-    String SC_OPCODE_FORECAST_ETS_ADD { Text = "_xlfn.FORECAST.ETS" ; };
-    String SC_OPCODE_FORECAST_ETS_SEA { Text = "_xlfn.FORECAST.ETS.SEASONALITY" ; };
-    String SC_OPCODE_FORECAST_ETS_MUL { Text = "_xlfn.ORG.LIBREOFFICE.FORECAST.ETS.MULT" ; };
-    String SC_OPCODE_FORECAST_ETS_PIA { Text = "_xlfn.FORECAST.ETS.CONFINT" ; };
-    String SC_OPCODE_FORECAST_ETS_PIM { Text = "_xlfn.ORG.LIBREOFFICE.FORECAST.ETS.PI.MULT" ; };
-    String SC_OPCODE_FORECAST_ETS_STA { Text = "_xlfn.FORECAST.ETS.STAT" ; };
-    String SC_OPCODE_FORECAST_ETS_STM { Text = "_xlfn.ORG.LIBREOFFICE.FORECAST.ETS.STAT.MULT" ; };
-    String SC_OPCODE_FORECAST_LIN { Text = "_xlfn.FORECAST.LINEAR" ; };
-    String SC_OPCODE_CHI_INV { Text = "CHIINV" ; };
-    String SC_OPCODE_CHI_INV_MS { Text = "_xlfn.CHISQ.INV.RT" ; };
-    String SC_OPCODE_GAMMA_DIST { Text = "GAMMADIST" ; };
-    String SC_OPCODE_GAMMA_DIST_MS { Text = "_xlfn.GAMMA.DIST" ; };
-    String SC_OPCODE_GAMMA_INV { Text = "GAMMAINV" ; };
-    String SC_OPCODE_GAMMA_INV_MS { Text = "_xlfn.GAMMA.INV" ; };
-    String SC_OPCODE_T_INV { Text = "TINV" ; };
-    String SC_OPCODE_T_INV_2T { Text = "_xlfn.T.INV.2T" ; };
-    String SC_OPCODE_T_INV_MS { Text = "_xlfn.T.INV" ; };
-    String SC_OPCODE_F_INV { Text = "FINV" ; };
-    String SC_OPCODE_F_INV_LT { Text = "_xlfn.F.INV" ; };
-    String SC_OPCODE_F_INV_RT { Text = "_xlfn.F.INV.RT" ; };
-    String SC_OPCODE_CHI_TEST { Text = "CHITEST" ; };
-    String SC_OPCODE_CHI_TEST_MS { Text = "_xlfn.CHISQ.TEST" ; };
-    String SC_OPCODE_LOG_INV { Text = "LOGINV" ; };
-    String SC_OPCODE_LOG_INV_MS { Text = "_xlfn.LOGNORM.INV" ; };
-    String SC_OPCODE_TABLE_OP { Text = "TABLE" ; };
-    String SC_OPCODE_BETA_DIST { Text = "BETADIST" ; };
-    String SC_OPCODE_BETA_INV { Text = "BETAINV" ; };
-    String SC_OPCODE_BETA_DIST_MS { Text = "_xlfn.BETA.DIST" ; };
-    String SC_OPCODE_BETA_INV_MS { Text = "_xlfn.BETA.INV" ; };
-    String SC_OPCODE_WEEK { Text = "WEEKNUM" ; };
-    String SC_OPCODE_ISOWEEKNUM { Text = "_xlfn.ISOWEEKNUM" ; };
-    String SC_OPCODE_WEEKNUM_OOO { Text = "_xlfn.ORG.LIBREOFFICE.WEEKNUM_OOO" ; };
-    String SC_OPCODE_EASTERSUNDAY { Text = "_xlfn.ORG.OPENOFFICE.EASTERSUNDAY" ; };
-    String SC_OPCODE_GET_DAY_OF_WEEK { Text = "WEEKDAY" ; };
-    String SC_OPCODE_NETWORKDAYS { Text = "NETWORKDAYS" ; };
-    String SC_OPCODE_NETWORKDAYS_MS { Text = "NETWORKDAYS.INTL" ; };
-    String SC_OPCODE_WORKDAY_MS { Text = "WORKDAY.INTL" ; };
-    String SC_OPCODE_NO_NAME { Text = "#NAME!" ; };
-    String SC_OPCODE_STYLE { Text = "_xlfn.ORG.OPENOFFICE.STYLE" ; };
-    String SC_OPCODE_DDE { Text = "DDE" ; };
-    String SC_OPCODE_BASE { Text = "_xlfn.BASE" ; };
-    String SC_OPCODE_DECIMAL { Text = "_xlfn.DECIMAL" ; };
-    String SC_OPCODE_CONVERT_OOO { Text = "_xlfn.ORG.OPENOFFICE.CONVERT" ; };
-    String SC_OPCODE_ROMAN { Text = "ROMAN" ; };
-    String SC_OPCODE_ARABIC { Text = "_xlfn.ARABIC" ; };
-    String SC_OPCODE_HYPERLINK { Text = "HYPERLINK" ; };
-    String SC_OPCODE_INFO { Text = "INFO" ; };
-    String SC_OPCODE_BAHTTEXT { Text = "_xlfn.BAHTTEXT" ; };
-    String SC_OPCODE_GET_PIVOT_DATA { Text = "GETPIVOTDATA" ; };
-    String SC_OPCODE_EUROCONVERT { Text = "EUROCONVERT" ; };
-    String SC_OPCODE_NUMBERVALUE { Text = "_xlfn.NUMBERVALUE" ; };
-    String SC_OPCODE_GAMMA { Text = "_xlfn.GAMMA" ; };
-    String SC_OPCODE_CHISQ_DIST { Text = "CHISQDIST" ; };
-    String SC_OPCODE_CHISQ_DIST_MS { Text = "_xlfn.CHISQ.DIST" ; };
-    String SC_OPCODE_CHISQ_INV { Text = "CHISQINV" ;};
-    String SC_OPCODE_CHISQ_INV_MS { Text = "_xlfn.CHISQ.INV" ;};
-    String SC_OPCODE_BITAND    { Text = "_xlfn.BITAND" ;};
-    String SC_OPCODE_BITOR    { Text = "_xlfn.BITOR" ;};
-    String SC_OPCODE_BITXOR    { Text = "_xlfn.BITXOR" ;};
-    String SC_OPCODE_BITRSHIFT    { Text = "_xlfn.BITRSHIFT" ;};
-    String SC_OPCODE_BITLSHIFT    { Text = "_xlfn.BITLSHIFT" ;};
-    /* BEGIN defined ERROR.TYPE() values. */
-    String SC_OPCODE_ERROR_NULL    { Text = "#NULL!"  ; };
-    String SC_OPCODE_ERROR_DIVZERO { Text = "#DIV/0!" ; };
-    String SC_OPCODE_ERROR_VALUE   { Text = "#VALUE!" ; };
-    String SC_OPCODE_ERROR_REF     { Text = "#REF!"   ; };
-    String SC_OPCODE_ERROR_NAME    { Text = "#NAME?"  ; };
-    String SC_OPCODE_ERROR_NUM     { Text = "#NUM!"   ; };
-    String SC_OPCODE_ERROR_NA      { Text = "#N/A"    ; };
-    /* END defined ERROR.TYPE() values. */
-    String SC_OPCODE_FILTERXML     { Text = "_xlfn.FILTERXML";};
-    String SC_OPCODE_WEBSERVICE    { Text = "_xlfn.WEBSERVICE"; };
-    String SC_OPCODE_COLOR         { Text = "_xlfn.ORG.LIBREOFFICE.COLOR"; };
-    String SC_OPCODE_ERF_MS { Text = "_xlfn.ERF.PRECISE" ; };
-    String SC_OPCODE_ERFC_MS { Text = "_xlfn.ERFC.PRECISE" ; };
-    String SC_OPCODE_ENCODEURL     { Text = "_xlfn.ENCODEURL"; };
-    String SC_OPCODE_RAWSUBTRACT    { Text = "_xlfn.ORG.LIBREOFFICE.RAWSUBTRACT"; };
+    ItemList [ en-US ] =
+    {
+        < "IF" ; SC_OPCODE_IF; >;
+        < "IFERROR" ; SC_OPCODE_IF_ERROR; >;
+        < "_xlfn.IFNA" ; SC_OPCODE_IF_NA; >;
+        < "CHOOSE" ; SC_OPCODE_CHOOSE; >;
+        < "(" ; SC_OPCODE_OPEN; >;
+        < ")" ; SC_OPCODE_CLOSE; >;
+        < "[" ; SC_OPCODE_TABLE_REF_OPEN; >;
+        < "]" ; SC_OPCODE_TABLE_REF_CLOSE; >;
+        < "#All" ; SC_OPCODE_TABLE_REF_ITEM_ALL; >;
+        < "#Headers" ; SC_OPCODE_TABLE_REF_ITEM_HEADERS; >;
+        < "#Data" ; SC_OPCODE_TABLE_REF_ITEM_DATA; >;
+        < "#Totals" ; SC_OPCODE_TABLE_REF_ITEM_TOTALS; >;
+        < "#This Row" ; SC_OPCODE_TABLE_REF_ITEM_THIS_ROW; >;
+        < "{" ; SC_OPCODE_ARRAY_OPEN; >;
+        < "}" ; SC_OPCODE_ARRAY_CLOSE; >;
+        < ";" ; SC_OPCODE_ARRAY_ROW_SEP; >;
+        < "," ; SC_OPCODE_ARRAY_COL_SEP; >;
+        < "," ; SC_OPCODE_SEP; >;
+        < "%" ; SC_OPCODE_PERCENT_SIGN; >;
+        < "+" ; SC_OPCODE_ADD; >;
+        < "-" ; SC_OPCODE_SUB; >;
+        < "*" ; SC_OPCODE_MUL; >;
+        < "/" ; SC_OPCODE_DIV; >;
+        < "&" ; SC_OPCODE_AMPERSAND; >;
+        < "^" ; SC_OPCODE_POW; >;
+        < "=" ; SC_OPCODE_EQUAL; >;
+        < "<>" ; SC_OPCODE_NOT_EQUAL; >;
+        < "<" ; SC_OPCODE_LESS; >;
+        < ">" ; SC_OPCODE_GREATER; >;
+        < "<=" ; SC_OPCODE_LESS_EQUAL; >;
+        < ">=" ; SC_OPCODE_GREATER_EQUAL; >;
+        < "AND" ; SC_OPCODE_AND; >;
+        < "OR" ; SC_OPCODE_OR; >;
+        < "_xlfn.XOR" ; SC_OPCODE_XOR; >;
+        < " " ; SC_OPCODE_INTERSECT; >;
+        < "~" ; SC_OPCODE_UNION; >;
+        < ":" ; SC_OPCODE_RANGE; >;
+        < "NOT" ; SC_OPCODE_NOT; >;
+        < "NEG" ; SC_OPCODE_NEG; >;
+        < "-" ; SC_OPCODE_NEG_SUB; >;
+        < "PI" ; SC_OPCODE_PI; >;
+        < "RAND" ; SC_OPCODE_RANDOM; >;
+        < "TRUE" ; SC_OPCODE_TRUE; >;
+        < "FALSE" ; SC_OPCODE_FALSE; >;
+        < "TODAY" ; SC_OPCODE_GET_ACT_DATE; >;
+        < "NOW" ; SC_OPCODE_GET_ACT_TIME; >;
+        < "NA" ; SC_OPCODE_NO_VALUE; >;
+        < "_xlfn.ORG.OPENOFFICE.CURRENT" ; SC_OPCODE_CURRENT; >;
+        < "DEGREES" ; SC_OPCODE_DEG; >;
+        < "RADIANS" ; SC_OPCODE_RAD; >;
+        < "SIN" ; SC_OPCODE_SIN; >;
+        < "COS" ; SC_OPCODE_COS; >;
+        < "TAN" ; SC_OPCODE_TAN; >;
+        < "_xlfn.COT" ; SC_OPCODE_COT; >;
+        < "ASIN" ; SC_OPCODE_ARC_SIN; >;
+        < "ACOS" ; SC_OPCODE_ARC_COS; >;
+        < "ATAN" ; SC_OPCODE_ARC_TAN; >;
+        < "_xlfn.ACOT" ; SC_OPCODE_ARC_COT; >;
+        < "SINH" ; SC_OPCODE_SIN_HYP; >;
+        < "COSH" ; SC_OPCODE_COS_HYP; >;
+        < "TANH" ; SC_OPCODE_TAN_HYP; >;
+        < "_xlfn.COTH" ; SC_OPCODE_COT_HYP; >;
+        < "ASINH" ; SC_OPCODE_ARC_SIN_HYP; >;
+        < "ACOSH" ; SC_OPCODE_ARC_COS_HYP; >;
+        < "ATANH" ; SC_OPCODE_ARC_TAN_HYP; >;
+        < "_xlfn.ACOTH" ; SC_OPCODE_ARC_COT_HYP; >;
+        < "_xlfn.CSC" ; SC_OPCODE_COSECANT; >;
+        < "_xlfn.SEC" ; SC_OPCODE_SECANT; >;
+        < "_xlfn.CSCH" ; SC_OPCODE_COSECANT_HYP; >;
+        < "_xlfn.SECH" ; SC_OPCODE_SECANT_HYP; >;
+        < "EXP" ; SC_OPCODE_EXP; >;
+        < "LN" ; SC_OPCODE_LN; >;
+        < "SQRT" ; SC_OPCODE_SQRT; >;
+        < "FACT" ; SC_OPCODE_FACT; >;
+        < "YEAR" ; SC_OPCODE_GET_YEAR; >;
+        < "MONTH" ; SC_OPCODE_GET_MONTH; >;
+        < "DAY" ; SC_OPCODE_GET_DAY; >;
+        < "HOUR" ; SC_OPCODE_GET_HOUR; >;
+        < "MINUTE" ; SC_OPCODE_GET_MIN; >;
+        < "SECOND" ; SC_OPCODE_GET_SEC; >;
+        < "SIGN" ; SC_OPCODE_PLUS_MINUS; >;
+        < "ABS" ; SC_OPCODE_ABS; >;
+        < "INT" ; SC_OPCODE_INT; >;
+        < "_xlfn.PHI" ; SC_OPCODE_PHI; >;
+        < "_xlfn.GAUSS" ; SC_OPCODE_GAUSS; >;
+        < "ISBLANK" ; SC_OPCODE_IS_EMPTY; >;
+        < "ISTEXT" ; SC_OPCODE_IS_STRING; >;
+        < "ISNONTEXT" ; SC_OPCODE_IS_NON_STRING; >;
+        < "ISLOGICAL" ; SC_OPCODE_IS_LOGICAL; >;
+        < "TYPE" ; SC_OPCODE_TYPE; >;
+        < "CELL" ; SC_OPCODE_CELL; >;
+        < "ISREF" ; SC_OPCODE_IS_REF; >;
+        < "ISNUMBER" ; SC_OPCODE_IS_VALUE; >;
+        < "_xlfn.ISFORMULA" ; SC_OPCODE_IS_FORMULA; >;
+        < "ISNA" ; SC_OPCODE_IS_NV; >;
+        < "ISERR" ; SC_OPCODE_IS_ERR; >;
+        < "ISERROR" ; SC_OPCODE_IS_ERROR; >;
+        < "ISEVEN" ; SC_OPCODE_IS_EVEN; >;
+        < "ISODD" ; SC_OPCODE_IS_ODD; >;
+        < "N" ; SC_OPCODE_N; >;
+        < "DATEVALUE" ; SC_OPCODE_GET_DATE_VALUE; >;
+        < "TIMEVALUE" ; SC_OPCODE_GET_TIME_VALUE; >;
+        < "CODE" ; SC_OPCODE_CODE; >;
+        < "TRIM" ; SC_OPCODE_TRIM; >;
+        < "UPPER" ; SC_OPCODE_UPPER; >;
+        < "PROPER" ; SC_OPCODE_PROPER; >;
+        < "LOWER" ; SC_OPCODE_LOWER; >;
+        < "LEN" ; SC_OPCODE_LEN; >;
+        < "T" ; SC_OPCODE_T; >;
+        < "VALUE" ; SC_OPCODE_VALUE; >;
+        < "CLEAN" ; SC_OPCODE_CLEAN; >;
+        < "CHAR" ; SC_OPCODE_CHAR; >;
+        < "JIS" ; SC_OPCODE_JIS; >;
+        < "ASC" ; SC_OPCODE_ASC; >;
+        < "_xlfn.UNICODE" ; SC_OPCODE_UNICODE; >;
+        < "_xlfn.UNICHAR" ; SC_OPCODE_UNICHAR; >;
+        < "LOG10" ; SC_OPCODE_LOG10; >;
+        < "EVEN" ; SC_OPCODE_EVEN; >;
+        < "ODD" ; SC_OPCODE_ODD; >;
+        < "NORMSDIST" ; SC_OPCODE_STD_NORM_DIST; >;
+        < "_xlfn.NORM.S.DIST" ; SC_OPCODE_STD_NORM_DIST_MS; >;
+        < "FISHER" ; SC_OPCODE_FISHER; >;
+        < "FISHERINV" ; SC_OPCODE_FISHER_INV; >;
+        < "NORMSINV" ; SC_OPCODE_S_NORM_INV; >;
+        < "_xlfn.NORM.S.INV" ; SC_OPCODE_S_NORM_INV_MS; >;
+        < "GAMMALN" ; SC_OPCODE_GAMMA_LN; >;
+        < "_xlfn.GAMMALN.PRECISE" ; SC_OPCODE_GAMMA_LN_MS; >;
+        < "_xlfn.ORG.OPENOFFICE.ERRORTYPE" ; SC_OPCODE_ERROR_TYPE; >;
+        < "ERROR.TYPE" ; SC_OPCODE_ERROR_TYPE_ODF; >;
+        < "_xlfn.FORMULATEXT" ; SC_OPCODE_FORMULA; >;
+        < "ATAN2" ; SC_OPCODE_ARC_TAN_2; >;
+        < "_xlfn.CEILING.MATH" ; SC_OPCODE_CEIL_MATH; >;
+        < "_xlfn.CEILING.MATH" ; SC_OPCODE_CEIL; >;
+        < "CEILING" ; SC_OPCODE_CEIL_MS; >;
+        < "_xlfn.CEILING.PRECISE" ; SC_OPCODE_CEIL_PRECISE; >;
+        < "ISO.CEILING" ; SC_OPCODE_CEIL_ISO; >;
+        < "FLOOR" ; SC_OPCODE_FLOOR_MS; >;
+        < "_xlfn.FLOOR.MATH" ; SC_OPCODE_FLOOR_MATH; >;
+        < "_xlfn.FLOOR.MATH" ; SC_OPCODE_FLOOR; >;
+        < "_xlfn.FLOOR.PRECISE" ; SC_OPCODE_FLOOR_PRECISE; >;
+        < "ROUND" ; SC_OPCODE_ROUND; >;
+        < "ROUNDUP" ; SC_OPCODE_ROUND_UP; >;
+        < "ROUNDDOWN" ; SC_OPCODE_ROUND_DOWN; >;
+        < "TRUNC" ; SC_OPCODE_TRUNC; >;
+        < "LOG" ; SC_OPCODE_LOG; >;
+        < "POWER" ; SC_OPCODE_POWER; >;
+        < "GCD" ; SC_OPCODE_GCD; >;
+        < "LCM" ; SC_OPCODE_LCM; >;
+        < "MOD" ; SC_OPCODE_MOD; >;
+        < "SUMPRODUCT" ; SC_OPCODE_SUM_PRODUCT; >;
+        < "SUMSQ" ; SC_OPCODE_SUM_SQ; >;
+        < "SUMX2MY2" ; SC_OPCODE_SUM_X2MY2; >;
+        < "SUMX2PY2" ; SC_OPCODE_SUM_X2DY2; >;
+        < "SUMXMY2" ; SC_OPCODE_SUM_XMY2; >;
+        < "DATE" ; SC_OPCODE_GET_DATE; >;
+        < "TIME" ; SC_OPCODE_GET_TIME; >;
+        < "_xlfn.DAYS" ; SC_OPCODE_GET_DIFF_DATE; >;
+        < "DAYS360" ; SC_OPCODE_GET_DIFF_DATE_360; >;
+        < "DATEDIF" ; SC_OPCODE_GET_DATEDIF; >;
+        < "MIN" ; SC_OPCODE_MIN; >;
+        < "MINA" ; SC_OPCODE_MIN_A; >;
+        < "MAX" ; SC_OPCODE_MAX; >;
+        < "MAXA" ; SC_OPCODE_MAX_A; >;
+        < "SUM" ; SC_OPCODE_SUM; >;
+        < "PRODUCT" ; SC_OPCODE_PRODUCT; >;
+        < "AVERAGE" ; SC_OPCODE_AVERAGE; >;
+        < "AVERAGEA" ; SC_OPCODE_AVERAGE_A; >;
+        < "COUNT" ; SC_OPCODE_COUNT; >;
+        < "COUNTA" ; SC_OPCODE_COUNT_2; >;
+        < "NPV" ; SC_OPCODE_NPV; >;
+        < "IRR" ; SC_OPCODE_IRR; >;
+        < "MIRR" ; SC_OPCODE_MIRR; >;
+        < "ISPMT" ; SC_OPCODE_ISPMT; >;
+        < "VAR" ; SC_OPCODE_VAR; >;
+        < "VARA" ; SC_OPCODE_VAR_A; >;
+        < "VARP" ; SC_OPCODE_VAR_P; >;
+        < "VARPA" ; SC_OPCODE_VAR_P_A; >;
+        < "_xlfn.VAR.P" ; SC_OPCODE_VAR_P_MS; >;
+        < "_xlfn.VAR.S" ; SC_OPCODE_VAR_S; >;
+        < "STDEV" ; SC_OPCODE_ST_DEV; >;
+        < "STDEVA" ; SC_OPCODE_ST_DEV_A; >;
+        < "STDEVP" ; SC_OPCODE_ST_DEV_P; >;
+        < "STDEVPA" ; SC_OPCODE_ST_DEV_P_A; >;
+        < "_xlfn.STDEV.P" ; SC_OPCODE_ST_DEV_P_MS; >;
+        < "_xlfn.STDEV.S" ; SC_OPCODE_ST_DEV_S; >;
+        < "B" ; SC_OPCODE_B; >;
+        < "NORMDIST" ; SC_OPCODE_NORM_DIST; >;
+        < "_xlfn.NORM.DIST" ; SC_OPCODE_NORM_DIST_MS; >;
+        < "EXPONDIST" ; SC_OPCODE_EXP_DIST; >;
+        < "_xlfn.EXPON.DIST" ; SC_OPCODE_EXP_DIST_MS; >;
+        < "BINOMDIST" ; SC_OPCODE_BINOM_DIST; >;
+        < "_xlfn.BINOM.DIST" ; SC_OPCODE_BINOM_DIST_MS; >;
+        < "POISSON" ; SC_OPCODE_POISSON_DIST; >;
+        < "_xlfn.POISSON.DIST" ; SC_OPCODE_POISSON_DIST_MS; >;
+        < "COMBIN" ; SC_OPCODE_COMBIN; >;
+        < "_xlfn.COMBINA" ; SC_OPCODE_COMBIN_A; >;
+        < "PERMUT" ; SC_OPCODE_PERMUT; >;
+        < "_xlfn.PERMUTATIONA" ; SC_OPCODE_PERMUTATION_A; >;
+        < "PV" ; SC_OPCODE_PV; >;
+        < "SYD" ; SC_OPCODE_SYD; >;
+        < "DDB" ; SC_OPCODE_DDB; >;
+        < "DB" ; SC_OPCODE_DB; >;
+        < "VDB" ; SC_OPCODE_VBD; >;
+        < "_xlfn.PDURATION" ; SC_OPCODE_PDURATION; >;
+        < "SLN" ; SC_OPCODE_SLN; >;
+        < "PMT" ; SC_OPCODE_PMT; >;
+        < "COLUMNS" ; SC_OPCODE_COLUMNS; >;
+        < "ROWS" ; SC_OPCODE_ROWS; >;
+        < "_xlfn.SHEETS" ; SC_OPCODE_SHEETS; >;
+        < "COLUMN" ; SC_OPCODE_COLUMN; >;
+        < "ROW" ; SC_OPCODE_ROW; >;
+        < "_xlfn.SHEET" ; SC_OPCODE_SHEET; >;
+        < "_xlfn.RRI" ; SC_OPCODE_RRI; >;
+        < "FV" ; SC_OPCODE_FV; >;
+        < "NPER" ; SC_OPCODE_NPER; >;
+        < "RATE" ; SC_OPCODE_RATE; >;
+        < "IPMT" ; SC_OPCODE_IPMT; >;
+        < "PPMT" ; SC_OPCODE_PPMT; >;
+        < "CUMIPMT" ; SC_OPCODE_CUM_IPMT; >;
+        < "CUMPRINC" ; SC_OPCODE_CUM_PRINC; >;
+        < "EFFECT" ; SC_OPCODE_EFFECT; >;
+        < "NOMINAL" ; SC_OPCODE_NOMINAL; >;
+        < "SUBTOTAL" ; SC_OPCODE_SUB_TOTAL; >;
+        < "DSUM" ; SC_OPCODE_DB_SUM; >;
+        < "DCOUNT" ; SC_OPCODE_DB_COUNT; >;
+        < "DCOUNTA" ; SC_OPCODE_DB_COUNT_2; >;
+        < "DAVERAGE" ; SC_OPCODE_DB_AVERAGE; >;
+        < "DGET" ; SC_OPCODE_DB_GET; >;
+        < "DMAX" ; SC_OPCODE_DB_MAX; >;
+        < "DMIN" ; SC_OPCODE_DB_MIN; >;
+        < "DPRODUCT" ; SC_OPCODE_DB_PRODUCT; >;
+        < "DSTDEV" ; SC_OPCODE_DB_STD_DEV; >;
+        < "DSTDEVP" ; SC_OPCODE_DB_STD_DEV_P; >;
+        < "DVAR" ; SC_OPCODE_DB_VAR; >;
+        < "DVARP" ; SC_OPCODE_DB_VAR_P; >;
+        < "INDIRECT" ; SC_OPCODE_INDIRECT; >;
+        < "ADDRESS" ; SC_OPCODE_ADDRESS; >;
+        < "MATCH" ; SC_OPCODE_MATCH; >;
+        < "COUNTBLANK" ; SC_OPCODE_COUNT_EMPTY_CELLS; >;
+        < "COUNTIF" ; SC_OPCODE_COUNT_IF; >;
+        < "SUMIF" ; SC_OPCODE_SUM_IF; >;
+        < "AVERAGEIF" ; SC_OPCODE_AVERAGE_IF; >;
+        < "SUMIFS" ; SC_OPCODE_SUM_IFS; >;
+        < "AVERAGEIFS" ; SC_OPCODE_AVERAGE_IFS; >;
+        < "COUNTIFS" ; SC_OPCODE_COUNT_IFS; >;
+        < "LOOKUP" ; SC_OPCODE_LOOKUP; >;
+        < "VLOOKUP" ; SC_OPCODE_V_LOOKUP; >;
+        < "HLOOKUP" ; SC_OPCODE_H_LOOKUP; >;
+        < "_xlfn.ORG.OPENOFFICE.MULTIRANGE" ; SC_OPCODE_MULTI_AREA; >;  // legacy for range list (union)
+        < "OFFSET" ; SC_OPCODE_OFFSET; >;
+        < "INDEX" ; SC_OPCODE_INDEX; >;
+        < "AREAS" ; SC_OPCODE_AREAS; >;
+        < "DOLLAR" ; SC_OPCODE_CURRENCY; >;
+        < "REPLACE" ; SC_OPCODE_REPLACE; >;
+        < "FIXED" ; SC_OPCODE_FIXED; >;
+        < "FIND" ; SC_OPCODE_FIND; >;
+        < "EXACT" ; SC_OPCODE_EXACT; >;
+        < "LEFT" ; SC_OPCODE_LEFT; >;
+        < "RIGHT" ; SC_OPCODE_RIGHT; >;
+        < "SEARCH" ; SC_OPCODE_SEARCH; >;
+        < "MID" ; SC_OPCODE_MID; >;
+        < "LENB" ; SC_OPCODE_LENB; >;
+        < "RIGHTB" ; SC_OPCODE_RIGHTB; >;
+        < "LEFTB" ; SC_OPCODE_LEFTB; >;
+        < "MIDB" ; SC_OPCODE_MIDB; >;
+        < "TEXT" ; SC_OPCODE_TEXT; >;
+        < "SUBSTITUTE" ; SC_OPCODE_SUBSTITUTE; >;
+        < "REPT" ; SC_OPCODE_REPT; >;
+        < "CONCATENATE" ; SC_OPCODE_CONCAT; >;
+        < "_xlfn.CONCAT" ; SC_OPCODE_CONCAT_MS; >;
+        < "_xlfn.TEXTJOIN" ; SC_OPCODE_TEXTJOIN_MS; >;
+        < "_xlfn.IFS" ; SC_OPCODE_IFS_MS; >;
+        < "_xlfn.SWITCH" ; SC_OPCODE_SWITCH_MS; >;
+        < "_xlfn.MINIFS" ; SC_OPCODE_MINIFS_MS; >;
+        < "_xlfn.MAXIFS" ; SC_OPCODE_MAXIFS_MS; >;
+        < "MVALUE" ; SC_OPCODE_MAT_VALUE; >;
+        < "MDETERM" ; SC_OPCODE_MAT_DET; >;
+        < "MINVERSE" ; SC_OPCODE_MAT_INV; >;
+        < "MMULT" ; SC_OPCODE_MAT_MULT; >;
+        < "TRANSPOSE" ; SC_OPCODE_MAT_TRANS; >;
+        < "_xlfn.MUNIT" ; SC_OPCODE_MATRIX_UNIT; >;
+        < "_xlfn.ORG.OPENOFFICE.GOALSEEK" ; SC_OPCODE_BACK_SOLVER; >;
+        < "HYPGEOMDIST" ; SC_OPCODE_HYP_GEOM_DIST; >;
+        < "_xlfn.HYPGEOM.DIST" ; SC_OPCODE_HYP_GEOM_DIST_MS; >;
+        < "LOGNORMDIST" ; SC_OPCODE_LOG_NORM_DIST; >;
+        < "_xlfn.LOGNORM.DIST" ; SC_OPCODE_LOG_NORM_DIST_MS; >;
+        < "TDIST" ; SC_OPCODE_T_DIST; >;
+        < "_xlfn.T.DIST.2T" ; SC_OPCODE_T_DIST_2T; >;
+        < "_xlfn.T.DIST" ; SC_OPCODE_T_DIST_MS; >;
+        < "_xlfn.T.DIST.RT" ; SC_OPCODE_T_DIST_RT; >;
+        < "FDIST" ; SC_OPCODE_F_DIST; >;
+        < "_xlfn.F.DIST" ; SC_OPCODE_F_DIST_LT; >;
+        < "_xlfn.F.DIST.RT" ; SC_OPCODE_F_DIST_RT; >;
+        < "CHIDIST" ; SC_OPCODE_CHI_DIST; >;
+        < "_xlfn.CHISQ.DIST.RT" ; SC_OPCODE_CHI_DIST_MS; >;
+        < "WEIBULL" ; SC_OPCODE_WEIBULL; >;
+        < "_xlfn.WEIBULL.DIST" ; SC_OPCODE_WEIBULL_MS; >;
+        < "NEGBINOMDIST" ; SC_OPCODE_NEG_BINOM_VERT; >;
+        < "_xlfn.NEGBINOM.DIST" ; SC_OPCODE_NEG_BINOM_DIST_MS; >;
+        < "CRITBINOM" ; SC_OPCODE_CRIT_BINOM; >;
+        < "_xlfn.BINOM.INV" ; SC_OPCODE_BINOM_INV; >;
+        < "KURT" ; SC_OPCODE_KURT; >;
+        < "HARMEAN" ; SC_OPCODE_HAR_MEAN; >;
+        < "GEOMEAN" ; SC_OPCODE_GEO_MEAN; >;
+        < "STANDARDIZE" ; SC_OPCODE_STANDARD; >;
+        < "AVEDEV" ; SC_OPCODE_AVE_DEV; >;
+        < "SKEW" ; SC_OPCODE_SKEW; >;
+        < "_xlfn.SKEW.P" ; SC_OPCODE_SKEWP; >;
+        < "DEVSQ" ; SC_OPCODE_DEV_SQ; >;
+        < "MEDIAN" ; SC_OPCODE_MEDIAN; >;
+        < "MODE" ; SC_OPCODE_MODAL_VALUE; >;
+        < "_xlfn.MODE.SNGL" ; SC_OPCODE_MODAL_VALUE_MS; >;
+        < "_xlfn.MODE.MULT" ; SC_OPCODE_MODAL_VALUE_MULTI; >;
+        < "ZTEST" ; SC_OPCODE_Z_TEST; >;
+        < "_xlfn.Z.TEST" ; SC_OPCODE_Z_TEST_MS; >;
+        < "_xlfn.AGGREGATE" ; SC_OPCODE_AGGREGATE; >;
+        < "TTEST" ; SC_OPCODE_T_TEST; >;
+        < "_xlfn.T.TEST" ; SC_OPCODE_T_TEST_MS; >;
+        < "RANK" ; SC_OPCODE_RANK; >;
+        < "PERCENTILE" ; SC_OPCODE_PERCENTILE; >;
+        < "PERCENTRANK" ; SC_OPCODE_PERCENT_RANK; >;
+        < "_xlfn.PERCENTILE.INC" ; SC_OPCODE_PERCENTILE_INC; >;
+        < "_xlfn.PERCENTRANK.INC" ; SC_OPCODE_PERCENT_RANK_INC; >;
+        < "_xlfn.QUARTILE.INC" ; SC_OPCODE_QUARTILE_INC; >;
+        < "_xlfn.RANK.EQ" ; SC_OPCODE_RANK_EQ; >;
+        < "_xlfn.PERCENTILE.EXC" ; SC_OPCODE_PERCENTILE_EXC; >;
+        < "_xlfn.PERCENTRANK.EXC" ; SC_OPCODE_PERCENT_RANK_EXC; >;
+        < "_xlfn.QUARTILE.EXC" ; SC_OPCODE_QUARTILE_EXC; >;
+        < "_xlfn.RANK.AVG" ; SC_OPCODE_RANK_AVG; >;
+        < "LARGE" ; SC_OPCODE_LARGE; >;
+        < "SMALL" ; SC_OPCODE_SMALL; >;
+        < "FREQUENCY" ; SC_OPCODE_FREQUENCY; >;
+        < "QUARTILE" ; SC_OPCODE_QUARTILE; >;
+        < "NORMINV" ; SC_OPCODE_NORM_INV; >;
+        < "_xlfn.NORM.INV" ; SC_OPCODE_NORM_INV_MS; >;
+        < "CONFIDENCE" ; SC_OPCODE_CONFIDENCE; >;
+        < "_xlfn.CONFIDENCE.NORM" ; SC_OPCODE_CONFIDENCE_N; >;
+        < "_xlfn.CONFIDENCE.T" ; SC_OPCODE_CONFIDENCE_T; >;
+        < "FTEST" ; SC_OPCODE_F_TEST; >;
+        < "_xlfn.F.TEST" ; SC_OPCODE_F_TEST_MS; >;
+        < "TRIMMEAN" ; SC_OPCODE_TRIM_MEAN; >;
+        < "PROB" ; SC_OPCODE_PROB; >;
+        < "CORREL" ; SC_OPCODE_CORREL; >;
+        < "COVAR" ; SC_OPCODE_COVAR; >;
+        < "_xlfn.COVARIANCE.P" ; SC_OPCODE_COVARIANCE_P; >;
+        < "_xlfn.COVARIANCE.S" ; SC_OPCODE_COVARIANCE_S; >;
+        < "PEARSON" ; SC_OPCODE_PEARSON; >;
+        < "RSQ" ; SC_OPCODE_RSQ; >;
+        < "STEYX" ; SC_OPCODE_STEYX; >;
+        < "SLOPE" ; SC_OPCODE_SLOPE; >;
+        < "INTERCEPT" ; SC_OPCODE_INTERCEPT; >;
+        < "TREND" ; SC_OPCODE_TREND; >;
+        < "GROWTH" ; SC_OPCODE_GROWTH; >;
+        < "LINEST" ; SC_OPCODE_LINEST; >;
+        < "LOGEST" ; SC_OPCODE_LOGEST; >;
+        < "FORECAST" ; SC_OPCODE_FORECAST; >;
+        < "_xlfn.FORECAST.ETS" ; SC_OPCODE_FORECAST_ETS_ADD; >;
+        < "_xlfn.FORECAST.ETS.SEASONALITY" ; SC_OPCODE_FORECAST_ETS_SEA; >;
+        < "_xlfn.ORG.LIBREOFFICE.FORECAST.ETS.MULT" ; SC_OPCODE_FORECAST_ETS_MUL; >;
+        < "_xlfn.FORECAST.ETS.CONFINT" ; SC_OPCODE_FORECAST_ETS_PIA; >;
+        < "_xlfn.ORG.LIBREOFFICE.FORECAST.ETS.PI.MULT" ; SC_OPCODE_FORECAST_ETS_PIM; >;
+        < "_xlfn.FORECAST.ETS.STAT" ; SC_OPCODE_FORECAST_ETS_STA; >;
+        < "_xlfn.ORG.LIBREOFFICE.FORECAST.ETS.STAT.MULT" ; SC_OPCODE_FORECAST_ETS_STM; >;
+        < "_xlfn.FORECAST.LINEAR" ; SC_OPCODE_FORECAST_LIN; >;
+        < "CHIINV" ; SC_OPCODE_CHI_INV; >;
+        < "_xlfn.CHISQ.INV.RT" ; SC_OPCODE_CHI_INV_MS; >;
+        < "GAMMADIST" ; SC_OPCODE_GAMMA_DIST; >;
+        < "_xlfn.GAMMA.DIST" ; SC_OPCODE_GAMMA_DIST_MS; >;
+        < "GAMMAINV" ; SC_OPCODE_GAMMA_INV; >;
+        < "_xlfn.GAMMA.INV" ; SC_OPCODE_GAMMA_INV_MS; >;
+        < "TINV" ; SC_OPCODE_T_INV; >;
+        < "_xlfn.T.INV.2T" ; SC_OPCODE_T_INV_2T; >;
+        < "_xlfn.T.INV" ; SC_OPCODE_T_INV_MS; >;
+        < "FINV" ; SC_OPCODE_F_INV; >;
+        < "_xlfn.F.INV" ; SC_OPCODE_F_INV_LT; >;
+        < "_xlfn.F.INV.RT" ; SC_OPCODE_F_INV_RT; >;
+        < "CHITEST" ; SC_OPCODE_CHI_TEST; >;
+        < "_xlfn.CHISQ.TEST" ; SC_OPCODE_CHI_TEST_MS; >;
+        < "LOGINV" ; SC_OPCODE_LOG_INV; >;
+        < "_xlfn.LOGNORM.INV" ; SC_OPCODE_LOG_INV_MS; >;
+        < "TABLE" ; SC_OPCODE_TABLE_OP; >;
+        < "BETADIST" ; SC_OPCODE_BETA_DIST; >;
+        < "BETAINV" ; SC_OPCODE_BETA_INV; >;
+        < "_xlfn.BETA.DIST" ; SC_OPCODE_BETA_DIST_MS; >;
+        < "_xlfn.BETA.INV" ; SC_OPCODE_BETA_INV_MS; >;
+        < "WEEKNUM" ; SC_OPCODE_WEEK; >;
+        < "_xlfn.ISOWEEKNUM" ; SC_OPCODE_ISOWEEKNUM; >;
+        < "_xlfn.ORG.LIBREOFFICE.WEEKNUM_OOO" ; SC_OPCODE_WEEKNUM_OOO; >;
+        < "_xlfn.ORG.OPENOFFICE.EASTERSUNDAY" ; SC_OPCODE_EASTERSUNDAY; >;
+        < "WEEKDAY" ; SC_OPCODE_GET_DAY_OF_WEEK; >;
+        < "NETWORKDAYS" ; SC_OPCODE_NETWORKDAYS; >;
+        < "NETWORKDAYS.INTL" ; SC_OPCODE_NETWORKDAYS_MS; >;
+        < "WORKDAY.INTL" ; SC_OPCODE_WORKDAY_MS; >;
+        < "#NAME!" ; SC_OPCODE_NO_NAME; >;
+        < "_xlfn.ORG.OPENOFFICE.STYLE" ; SC_OPCODE_STYLE; >;
+        < "DDE" ; SC_OPCODE_DDE; >;
+        < "_xlfn.BASE" ; SC_OPCODE_BASE; >;
+        < "_xlfn.DECIMAL" ; SC_OPCODE_DECIMAL; >;
+        < "_xlfn.ORG.OPENOFFICE.CONVERT" ; SC_OPCODE_CONVERT_OOO; >;
+        < "ROMAN" ; SC_OPCODE_ROMAN; >;
+        < "_xlfn.ARABIC" ; SC_OPCODE_ARABIC; >;
+        < "HYPERLINK" ; SC_OPCODE_HYPERLINK; >;
+        < "INFO" ; SC_OPCODE_INFO; >;
+        < "_xlfn.BAHTTEXT" ; SC_OPCODE_BAHTTEXT; >;
+        < "GETPIVOTDATA" ; SC_OPCODE_GET_PIVOT_DATA; >;
+        < "EUROCONVERT" ; SC_OPCODE_EUROCONVERT; >;
+        < "_xlfn.NUMBERVALUE" ; SC_OPCODE_NUMBERVALUE; >;
+        < "_xlfn.GAMMA" ; SC_OPCODE_GAMMA; >;
+        < "CHISQDIST" ; SC_OPCODE_CHISQ_DIST; >;
+        < "_xlfn.CHISQ.DIST" ; SC_OPCODE_CHISQ_DIST_MS; >;
+        < "CHISQINV" ; SC_OPCODE_CHISQ_INV; >;
+        < "_xlfn.CHISQ.INV" ; SC_OPCODE_CHISQ_INV_MS; >;
+        < "_xlfn.BITAND" ; SC_OPCODE_BITAND; >;
+        < "_xlfn.BITOR" ; SC_OPCODE_BITOR; >;
+        < "_xlfn.BITXOR" ; SC_OPCODE_BITXOR; >;
+        < "_xlfn.BITRSHIFT" ; SC_OPCODE_BITRSHIFT; >;
+        < "_xlfn.BITLSHIFT" ; SC_OPCODE_BITLSHIFT; >;
+        < "#NULL!" ; SC_OPCODE_ERROR_NULL; >;
+        < "#DIV/0!" ; SC_OPCODE_ERROR_DIVZERO; >;
+        < "#VALUE!" ; SC_OPCODE_ERROR_VALUE; >;
+        < "#REF!" ; SC_OPCODE_ERROR_REF; >;
+        < "#NAME?" ; SC_OPCODE_ERROR_NAME; >;
+        < "#NUM!" ; SC_OPCODE_ERROR_NUM; >;
+        < "#N/A" ; SC_OPCODE_ERROR_NA; >;
+        /* END defined ERROR.TYPE() values. */
+        < "_xlfn.FILTERXML" ; SC_OPCODE_FILTERXML; >;
+        < "_xlfn.WEBSERVICE" ; SC_OPCODE_WEBSERVICE; >;
+        < "_xlfn.ORG.LIBREOFFICE.COLOR" ; SC_OPCODE_COLOR; >;
+        < "_xlfn.ERF.PRECISE" ; SC_OPCODE_ERF_MS; >;
+        < "_xlfn.ERFC.PRECISE" ; SC_OPCODE_ERFC_MS; >;
+        < "_xlfn.ENCODEURL" ; SC_OPCODE_ENCODEURL; >;
+        < "_xlfn.ORG.LIBREOFFICE.RAWSUBTRACT" ; SC_OPCODE_RAWSUBTRACT; >;
+    };
 };
 
 /** These English names are used to store/load ODF v1.0/v1.1. */
@@ -901,441 +906,444 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML
 // If there is a reason for another name for some function then add an
 // *additional* name to be recognized to sc/source/core/tool/compiler.cxx
 // ScCompiler::IsOpCode() in the else if (mxSymbols->isPODF()) block.
-Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_PODF
+StringArray RID_STRLIST_FUNCTION_NAMES_ENGLISH_PODF
 {
-    String SC_OPCODE_IF { Text = "IF" ; };
-    String SC_OPCODE_IF_ERROR { Text = "IFERROR" ; };
-    String SC_OPCODE_IF_NA { Text = "IFNA" ; };
-    String SC_OPCODE_CHOOSE { Text = "CHOOSE" ; };
-    String SC_OPCODE_OPEN { Text = "(" ; };
-    String SC_OPCODE_CLOSE { Text = ")" ; };
-    String SC_OPCODE_TABLE_REF_OPEN { Text = "[" ; };
-    String SC_OPCODE_TABLE_REF_CLOSE { Text = "]" ; };
-    String SC_OPCODE_TABLE_REF_ITEM_ALL { Text = "#All" ; };
-    String SC_OPCODE_TABLE_REF_ITEM_HEADERS { Text = "#Headers" ; };
-    String SC_OPCODE_TABLE_REF_ITEM_DATA { Text = "#Data" ; };
-    String SC_OPCODE_TABLE_REF_ITEM_TOTALS { Text = "#Totals" ; };
-    String SC_OPCODE_TABLE_REF_ITEM_THIS_ROW { Text = "#This Row" ; };
-    String SC_OPCODE_ARRAY_OPEN { Text = "{" ; };
-    String SC_OPCODE_ARRAY_CLOSE { Text = "}" ; };
-    String SC_OPCODE_ARRAY_ROW_SEP { Text = "|" ; };
-    String SC_OPCODE_ARRAY_COL_SEP { Text = ";" ; };
-    String SC_OPCODE_SEP { Text = ";" ; };
-    String SC_OPCODE_PERCENT_SIGN { Text = "%" ; };
-    String SC_OPCODE_ADD { Text = "+" ; };
-    String SC_OPCODE_SUB { Text = "-" ; };
-    String SC_OPCODE_MUL { Text = "*" ; };
-    String SC_OPCODE_DIV { Text = "/" ; };
-    String SC_OPCODE_AMPERSAND { Text = "&" ; };
-    String SC_OPCODE_POW { Text = "^" ; };
-    String SC_OPCODE_EQUAL { Text = "=" ; };
-    String SC_OPCODE_NOT_EQUAL { Text = "<>" ; };
-    String SC_OPCODE_LESS { Text = "<" ; };
-    String SC_OPCODE_GREATER { Text = ">" ; };
-    String SC_OPCODE_LESS_EQUAL { Text = "<=" ; };
-    String SC_OPCODE_GREATER_EQUAL { Text = ">=" ; };
-    String SC_OPCODE_AND { Text = "AND" ; };
-    String SC_OPCODE_OR { Text = "OR" ; };
-    String SC_OPCODE_XOR { Text = "XOR" ; };
-    String SC_OPCODE_INTERSECT { Text = "!" ; };
-    String SC_OPCODE_UNION { Text = "~" ; };
-    String SC_OPCODE_RANGE { Text = ":" ; };
-    String SC_OPCODE_NOT { Text = "NOT" ; };
-    String SC_OPCODE_NEG { Text = "NEG" ; };
-    String SC_OPCODE_NEG_SUB { Text = "-" ; };
-    String SC_OPCODE_PI { Text = "PI" ; };
-    String SC_OPCODE_RANDOM { Text = "RAND" ; };
-    String SC_OPCODE_TRUE { Text = "TRUE" ; };
-    String SC_OPCODE_FALSE { Text = "FALSE" ; };
-    String SC_OPCODE_GET_ACT_DATE { Text = "TODAY" ; };
-    String SC_OPCODE_GET_ACT_TIME { Text = "NOW" ; };
-    String SC_OPCODE_NO_VALUE { Text = "NA" ; };
-    String SC_OPCODE_CURRENT { Text = "CURRENT" ; };
-    String SC_OPCODE_DEG { Text = "DEGREES" ; };
-    String SC_OPCODE_RAD { Text = "RADIANS" ; };
-    String SC_OPCODE_SIN { Text = "SIN" ; };
-    String SC_OPCODE_COS { Text = "COS" ; };
-    String SC_OPCODE_TAN { Text = "TAN" ; };
-    String SC_OPCODE_COT { Text = "COT" ; };
-    String SC_OPCODE_ARC_SIN { Text = "ASIN" ; };
-    String SC_OPCODE_ARC_COS { Text = "ACOS" ; };
-    String SC_OPCODE_ARC_TAN { Text = "ATAN" ; };
-    String SC_OPCODE_ARC_COT { Text = "ACOT" ; };
-    String SC_OPCODE_SIN_HYP { Text = "SINH" ; };
-    String SC_OPCODE_COS_HYP { Text = "COSH" ; };
-    String SC_OPCODE_TAN_HYP { Text = "TANH" ; };
-    String SC_OPCODE_COT_HYP { Text = "COTH" ; };
-    String SC_OPCODE_ARC_SIN_HYP { Text = "ASINH" ; };
-    String SC_OPCODE_ARC_COS_HYP { Text = "ACOSH" ; };
-    String SC_OPCODE_ARC_TAN_HYP { Text = "ATANH" ; };
-    String SC_OPCODE_ARC_COT_HYP { Text = "ACOTH" ; };
-    String SC_OPCODE_COSECANT { Text = "CSC" ; };
-    String SC_OPCODE_SECANT { Text = "SEC" ; };
-    String SC_OPCODE_COSECANT_HYP { Text = "CSCH" ; };
-    String SC_OPCODE_SECANT_HYP { Text = "SECH" ; };
-    String SC_OPCODE_EXP { Text = "EXP" ; };
-    String SC_OPCODE_LN { Text = "LN" ; };
-    String SC_OPCODE_SQRT { Text = "SQRT" ; };
-    String SC_OPCODE_FACT { Text = "FACT" ; };
-    String SC_OPCODE_GET_YEAR { Text = "YEAR" ; };
-    String SC_OPCODE_GET_MONTH { Text = "MONTH" ; };
-    String SC_OPCODE_GET_DAY { Text = "DAY" ; };
-    String SC_OPCODE_GET_HOUR { Text = "HOUR" ; };
-    String SC_OPCODE_GET_MIN { Text = "MINUTE" ; };
-    String SC_OPCODE_GET_SEC { Text = "SECOND" ; };
-    String SC_OPCODE_PLUS_MINUS { Text = "SIGN" ; };
-    String SC_OPCODE_ABS { Text = "ABS" ; };
-    String SC_OPCODE_INT { Text = "INT" ; };
-    String SC_OPCODE_PHI { Text = "PHI" ; };
-    String SC_OPCODE_GAUSS { Text = "GAUSS" ; };
-    String SC_OPCODE_IS_EMPTY { Text = "ISBLANK" ; };
-    String SC_OPCODE_IS_STRING { Text = "ISTEXT" ; };
-    String SC_OPCODE_IS_NON_STRING { Text = "ISNONTEXT" ; };
-    String SC_OPCODE_IS_LOGICAL { Text = "ISLOGICAL" ; };
-    String SC_OPCODE_TYPE { Text = "TYPE" ; };
-    String SC_OPCODE_CELL { Text = "CELL" ; };
-    String SC_OPCODE_IS_REF { Text = "ISREF" ; };
-    String SC_OPCODE_IS_VALUE { Text = "ISNUMBER" ; };
-    String SC_OPCODE_IS_FORMULA { Text = "ISFORMULA" ; };
-    String SC_OPCODE_IS_NV { Text = "ISNA" ; };
-    String SC_OPCODE_IS_ERR { Text = "ISERR" ; };
-    String SC_OPCODE_IS_ERROR { Text = "ISERROR" ; };
-    String SC_OPCODE_IS_EVEN { Text = "ISEVEN" ; };
-    String SC_OPCODE_IS_ODD { Text = "ISODD" ; };
-    String SC_OPCODE_N { Text = "N" ; };
-    String SC_OPCODE_GET_DATE_VALUE { Text = "DATEVALUE" ; };
-    String SC_OPCODE_GET_TIME_VALUE { Text = "TIMEVALUE" ; };
-    String SC_OPCODE_CODE { Text = "CODE" ; };
-    String SC_OPCODE_TRIM { Text = "TRIM" ; };
-    String SC_OPCODE_UPPER { Text = "UPPER" ; };
-    String SC_OPCODE_PROPER { Text = "PROPER" ; };
-    String SC_OPCODE_LOWER { Text = "LOWER" ; };
-    String SC_OPCODE_LEN { Text = "LEN" ; };
-    String SC_OPCODE_T { Text = "T" ; };
-    String SC_OPCODE_VALUE { Text = "VALUE" ; };
-    String SC_OPCODE_CLEAN { Text = "CLEAN" ; };

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list