Bump version to 6.4-15
[LibreOffice.git] / include / formula / opcode.hxx
blobb969a004700753eaf0170b70650f61b9e785b707
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef INCLUDED_FORMULA_OPCODE_HXX
21 #define INCLUDED_FORMULA_OPCODE_HXX
23 #include <sstream>
25 #include <formula/compiler.hxx>
26 #include <sal/types.h>
28 enum OpCode : sal_uInt16
30 // Special commands
31 ocPush = SC_OPCODE_PUSH,
32 ocCall = SC_OPCODE_CALL,
33 ocStop = SC_OPCODE_STOP,
34 ocExternal = SC_OPCODE_EXTERNAL,
35 ocName = SC_OPCODE_NAME,
36 // Jump commands
37 ocIf = SC_OPCODE_IF,
38 ocIfError = SC_OPCODE_IF_ERROR,
39 ocIfNA = SC_OPCODE_IF_NA,
40 ocChoose = SC_OPCODE_CHOOSE,
41 // Parentheses and separators
42 ocOpen = SC_OPCODE_OPEN,
43 ocClose = SC_OPCODE_CLOSE,
44 ocTableRefOpen = SC_OPCODE_TABLE_REF_OPEN,
45 ocTableRefClose = SC_OPCODE_TABLE_REF_CLOSE,
46 ocSep = SC_OPCODE_SEP,
47 ocArrayOpen = SC_OPCODE_ARRAY_OPEN,
48 ocArrayClose = SC_OPCODE_ARRAY_CLOSE,
49 ocArrayRowSep = SC_OPCODE_ARRAY_ROW_SEP,
50 ocArrayColSep = SC_OPCODE_ARRAY_COL_SEP,
51 // Special OpCodes
52 ocMissing = SC_OPCODE_MISSING,
53 ocBad = SC_OPCODE_BAD,
54 ocStringXML = SC_OPCODE_STRINGXML,
55 ocSpaces = SC_OPCODE_SPACES,
56 ocMatRef = SC_OPCODE_MAT_REF,
57 ocTableRefItemAll = SC_OPCODE_TABLE_REF_ITEM_ALL,
58 ocTableRefItemHeaders = SC_OPCODE_TABLE_REF_ITEM_HEADERS,
59 ocTableRefItemData = SC_OPCODE_TABLE_REF_ITEM_DATA,
60 ocTableRefItemTotals = SC_OPCODE_TABLE_REF_ITEM_TOTALS,
61 ocTableRefItemThisRow = SC_OPCODE_TABLE_REF_ITEM_THIS_ROW,
62 ocSkip = SC_OPCODE_SKIP,
63 // Access commands
64 ocDBArea = SC_OPCODE_DB_AREA,
65 ocTableRef = SC_OPCODE_TABLE_REF,
66 ocMacro = SC_OPCODE_MACRO,
67 ocColRowName = SC_OPCODE_COL_ROW_NAME,
68 ocColRowNameAuto = SC_OPCODE_COL_ROW_NAME_AUTO,
69 // Percent operator _follows_ value
70 ocPercentSign = SC_OPCODE_PERCENT_SIGN,
71 // Error constants
72 ocErrNull = SC_OPCODE_ERROR_NULL,
73 ocErrDivZero = SC_OPCODE_ERROR_DIVZERO,
74 ocErrValue = SC_OPCODE_ERROR_VALUE,
75 ocErrRef = SC_OPCODE_ERROR_REF,
76 ocErrName = SC_OPCODE_ERROR_NAME,
77 ocErrNum = SC_OPCODE_ERROR_NUM,
78 ocErrNA = SC_OPCODE_ERROR_NA,
79 // Binary operators
80 ocAdd = SC_OPCODE_ADD,
81 ocSub = SC_OPCODE_SUB,
82 ocMul = SC_OPCODE_MUL,
83 ocDiv = SC_OPCODE_DIV,
84 ocAmpersand = SC_OPCODE_AMPERSAND,
85 ocPow = SC_OPCODE_POW,
86 ocEqual = SC_OPCODE_EQUAL,
87 ocNotEqual = SC_OPCODE_NOT_EQUAL,
88 ocLess = SC_OPCODE_LESS,
89 ocGreater = SC_OPCODE_GREATER,
90 ocLessEqual = SC_OPCODE_LESS_EQUAL,
91 ocGreaterEqual = SC_OPCODE_GREATER_EQUAL,
92 ocAnd = SC_OPCODE_AND,
93 ocOr = SC_OPCODE_OR,
94 ocXor = SC_OPCODE_XOR,
95 ocIntersect = SC_OPCODE_INTERSECT,
96 ocUnion = SC_OPCODE_UNION,
97 ocRange = SC_OPCODE_RANGE,
98 // Unary operators
99 ocNegSub = SC_OPCODE_NEG_SUB,
100 // Functions with no parameters
101 ocPi = SC_OPCODE_PI,
102 ocRandom = SC_OPCODE_RANDOM,
103 ocTrue = SC_OPCODE_TRUE,
104 ocFalse = SC_OPCODE_FALSE,
105 ocGetActDate = SC_OPCODE_GET_ACT_DATE,
106 ocGetActTime = SC_OPCODE_GET_ACT_TIME,
107 ocNotAvail = SC_OPCODE_NO_VALUE,
108 ocCurrent = SC_OPCODE_CURRENT,
109 // Functions with one parameter
110 ocNot = SC_OPCODE_NOT,
111 ocNeg = SC_OPCODE_NEG,
112 ocDeg = SC_OPCODE_DEG,
113 ocRad = SC_OPCODE_RAD,
114 ocSin = SC_OPCODE_SIN,
115 ocCos = SC_OPCODE_COS,
116 ocTan = SC_OPCODE_TAN,
117 ocCot = SC_OPCODE_COT,
118 ocArcSin = SC_OPCODE_ARC_SIN,
119 ocArcCos = SC_OPCODE_ARC_COS,
120 ocArcTan = SC_OPCODE_ARC_TAN,
121 ocArcCot = SC_OPCODE_ARC_COT,
122 ocSinHyp = SC_OPCODE_SIN_HYP,
123 ocCosHyp = SC_OPCODE_COS_HYP,
124 ocTanHyp = SC_OPCODE_TAN_HYP,
125 ocCotHyp = SC_OPCODE_COT_HYP,
126 ocArcSinHyp = SC_OPCODE_ARC_SIN_HYP,
127 ocArcCosHyp = SC_OPCODE_ARC_COS_HYP,
128 ocArcTanHyp = SC_OPCODE_ARC_TAN_HYP,
129 ocArcCotHyp = SC_OPCODE_ARC_COT_HYP,
130 ocCosecant = SC_OPCODE_COSECANT,
131 ocSecant = SC_OPCODE_SECANT,
132 ocCosecantHyp = SC_OPCODE_COSECANT_HYP,
133 ocSecantHyp = SC_OPCODE_SECANT_HYP,
134 ocExp = SC_OPCODE_EXP,
135 ocLn = SC_OPCODE_LN,
136 ocSqrt = SC_OPCODE_SQRT,
137 ocFact = SC_OPCODE_FACT,
138 ocGetYear = SC_OPCODE_GET_YEAR,
139 ocGetMonth = SC_OPCODE_GET_MONTH,
140 ocGetDay = SC_OPCODE_GET_DAY,
141 ocGetHour = SC_OPCODE_GET_HOUR,
142 ocGetMin = SC_OPCODE_GET_MIN,
143 ocGetSec = SC_OPCODE_GET_SEC,
144 ocPlusMinus = SC_OPCODE_PLUS_MINUS,
145 ocAbs = SC_OPCODE_ABS,
146 ocInt = SC_OPCODE_INT,
147 ocPhi = SC_OPCODE_PHI,
148 ocGauss = SC_OPCODE_GAUSS,
149 ocIsEmpty = SC_OPCODE_IS_EMPTY,
150 ocIsString = SC_OPCODE_IS_STRING,
151 ocIsNonString = SC_OPCODE_IS_NON_STRING,
152 ocIsLogical = SC_OPCODE_IS_LOGICAL,
153 ocType = SC_OPCODE_TYPE,
154 ocCell = SC_OPCODE_CELL,
155 ocIsRef = SC_OPCODE_IS_REF,
156 ocIsValue = SC_OPCODE_IS_VALUE,
157 ocIsFormula = SC_OPCODE_IS_FORMULA,
158 ocIsNA = SC_OPCODE_IS_NV,
159 ocIsErr = SC_OPCODE_IS_ERR,
160 ocIsError = SC_OPCODE_IS_ERROR,
161 ocIsEven = SC_OPCODE_IS_EVEN,
162 ocIsOdd = SC_OPCODE_IS_ODD,
163 ocN = SC_OPCODE_N,
164 // String functions
165 ocGetDateValue = SC_OPCODE_GET_DATE_VALUE,
166 ocGetTimeValue = SC_OPCODE_GET_TIME_VALUE,
167 ocCode = SC_OPCODE_CODE,
168 ocTrim = SC_OPCODE_TRIM,
169 ocUpper = SC_OPCODE_UPPER,
170 ocProper = SC_OPCODE_PROPER,
171 ocLower = SC_OPCODE_LOWER,
172 ocLen = SC_OPCODE_LEN,
173 ocT = SC_OPCODE_T,
174 ocValue = SC_OPCODE_VALUE,
175 ocClean = SC_OPCODE_CLEAN,
176 ocChar = SC_OPCODE_CHAR,
177 ocLog10 = SC_OPCODE_LOG10,
178 ocEven = SC_OPCODE_EVEN,
179 ocOdd = SC_OPCODE_ODD,
180 ocStdNormDist = SC_OPCODE_STD_NORM_DIST,
181 ocStdNormDist_MS = SC_OPCODE_STD_NORM_DIST_MS,
182 ocFisher = SC_OPCODE_FISHER,
183 ocFisherInv = SC_OPCODE_FISHER_INV,
184 ocSNormInv = SC_OPCODE_S_NORM_INV,
185 ocSNormInv_MS = SC_OPCODE_S_NORM_INV_MS,
186 ocGammaLn = SC_OPCODE_GAMMA_LN,
187 ocGammaLn_MS = SC_OPCODE_GAMMA_LN_MS,
188 ocGamma = SC_OPCODE_GAMMA,
189 ocErrorType = SC_OPCODE_ERROR_TYPE,
190 ocErrorType_ODF = SC_OPCODE_ERROR_TYPE_ODF,
191 ocFormula = SC_OPCODE_FORMULA,
192 ocArabic = SC_OPCODE_ARABIC,
193 ocInfo = SC_OPCODE_INFO,
194 ocBahtText = SC_OPCODE_BAHTTEXT,
195 ocJis = SC_OPCODE_JIS,
196 ocAsc = SC_OPCODE_ASC,
197 ocUnicode = SC_OPCODE_UNICODE,
198 ocUnichar = SC_OPCODE_UNICHAR,
199 // Functions with more than one parameters
200 ocArcTan2 = SC_OPCODE_ARC_TAN_2,
201 ocCeil = SC_OPCODE_CEIL,
202 ocCeil_MS = SC_OPCODE_CEIL_MS,
203 ocCeil_Precise = SC_OPCODE_CEIL_PRECISE,
204 ocCeil_ISO = SC_OPCODE_CEIL_ISO,
205 ocCeil_Math = SC_OPCODE_CEIL_MATH,
206 ocFloor = SC_OPCODE_FLOOR,
207 ocFloor_MS = SC_OPCODE_FLOOR_MS,
208 ocFloor_Math = SC_OPCODE_FLOOR_MATH,
209 ocFloor_Precise = SC_OPCODE_FLOOR_PRECISE,
210 ocRound = SC_OPCODE_ROUND,
211 ocRoundUp = SC_OPCODE_ROUND_UP,
212 ocRoundDown = SC_OPCODE_ROUND_DOWN,
213 ocTrunc = SC_OPCODE_TRUNC,
214 ocLog = SC_OPCODE_LOG,
215 ocPower = SC_OPCODE_POWER,
216 ocGCD = SC_OPCODE_GCD,
217 ocLCM = SC_OPCODE_LCM,
218 ocMod = SC_OPCODE_MOD,
219 ocSumProduct = SC_OPCODE_SUM_PRODUCT,
220 ocSumSQ = SC_OPCODE_SUM_SQ,
221 ocSumX2MY2 = SC_OPCODE_SUM_X2MY2,
222 ocSumX2DY2 = SC_OPCODE_SUM_X2DY2,
223 ocSumXMY2 = SC_OPCODE_SUM_XMY2,
224 ocGetDate = SC_OPCODE_GET_DATE,
225 ocGetTime = SC_OPCODE_GET_TIME,
226 ocGetDiffDate = SC_OPCODE_GET_DIFF_DATE,
227 ocGetDiffDate360 = SC_OPCODE_GET_DIFF_DATE_360,
228 ocGetDateDif = SC_OPCODE_GET_DATEDIF,
229 ocMin = SC_OPCODE_MIN,
230 ocMax = SC_OPCODE_MAX,
231 ocSum = SC_OPCODE_SUM,
232 ocProduct = SC_OPCODE_PRODUCT,
233 ocAverage = SC_OPCODE_AVERAGE,
234 ocCount = SC_OPCODE_COUNT,
235 ocCount2 = SC_OPCODE_COUNT_2,
236 ocNPV = SC_OPCODE_NPV,
237 ocIRR = SC_OPCODE_IRR,
238 ocMIRR = SC_OPCODE_MIRR,
239 ocISPMT = SC_OPCODE_ISPMT,
240 ocVar = SC_OPCODE_VAR,
241 ocVarP = SC_OPCODE_VAR_P,
242 ocVarP_MS = SC_OPCODE_VAR_P_MS,
243 ocVarS = SC_OPCODE_VAR_S,
244 ocStDev = SC_OPCODE_ST_DEV,
245 ocStDevP = SC_OPCODE_ST_DEV_P,
246 ocStDevP_MS = SC_OPCODE_ST_DEV_P_MS,
247 ocStDevS = SC_OPCODE_ST_DEV_S,
248 ocB = SC_OPCODE_B,
249 ocNormDist = SC_OPCODE_NORM_DIST,
250 ocNormDist_MS = SC_OPCODE_NORM_DIST_MS,
251 ocExpDist = SC_OPCODE_EXP_DIST,
252 ocExpDist_MS = SC_OPCODE_EXP_DIST_MS,
253 ocBinomDist = SC_OPCODE_BINOM_DIST,
254 ocBinomDist_MS = SC_OPCODE_BINOM_DIST_MS,
255 ocBinomInv = SC_OPCODE_BINOM_INV,
256 ocPoissonDist = SC_OPCODE_POISSON_DIST,
257 ocPoissonDist_MS = SC_OPCODE_POISSON_DIST_MS,
258 ocCombin = SC_OPCODE_COMBIN,
259 ocCombinA = SC_OPCODE_COMBIN_A,
260 ocPermut = SC_OPCODE_PERMUT,
261 ocPermutationA = SC_OPCODE_PERMUTATION_A,
262 ocPV = SC_OPCODE_PV,
263 ocSYD = SC_OPCODE_SYD,
264 ocDDB = SC_OPCODE_DDB,
265 ocDB = SC_OPCODE_DB,
266 ocVBD = SC_OPCODE_VBD,
267 ocPDuration = SC_OPCODE_PDURATION,
268 ocSLN = SC_OPCODE_SLN,
269 ocPMT = SC_OPCODE_PMT,
270 ocColumns = SC_OPCODE_COLUMNS,
271 ocRows = SC_OPCODE_ROWS,
272 ocColumn = SC_OPCODE_COLUMN,
273 ocRow = SC_OPCODE_ROW,
274 ocRRI = SC_OPCODE_RRI,
275 ocFV = SC_OPCODE_FV,
276 ocNper = SC_OPCODE_NPER,
277 ocRate = SC_OPCODE_RATE,
278 ocIpmt = SC_OPCODE_IPMT,
279 ocPpmt = SC_OPCODE_PPMT,
280 ocCumIpmt = SC_OPCODE_CUM_IPMT,
281 ocCumPrinc = SC_OPCODE_CUM_PRINC,
282 ocEffect = SC_OPCODE_EFFECT,
283 ocNominal = SC_OPCODE_NOMINAL,
284 ocSubTotal = SC_OPCODE_SUB_TOTAL,
285 ocRawSubtract = SC_OPCODE_RAWSUBTRACT,
286 ocIfs_MS = SC_OPCODE_IFS_MS,
287 ocSwitch_MS = SC_OPCODE_SWITCH_MS,
288 ocMinIfs_MS = SC_OPCODE_MINIFS_MS,
289 ocMaxIfs_MS = SC_OPCODE_MAXIFS_MS,
290 ocRoundSig = SC_OPCODE_ROUNDSIG,
291 // Database functions
292 ocDBSum = SC_OPCODE_DB_SUM,
293 ocDBCount = SC_OPCODE_DB_COUNT,
294 ocDBCount2 = SC_OPCODE_DB_COUNT_2,
295 ocDBAverage = SC_OPCODE_DB_AVERAGE,
296 ocDBGet = SC_OPCODE_DB_GET,
297 ocDBMax = SC_OPCODE_DB_MAX,
298 ocDBMin = SC_OPCODE_DB_MIN,
299 ocDBProduct = SC_OPCODE_DB_PRODUCT,
300 ocDBStdDev = SC_OPCODE_DB_STD_DEV,
301 ocDBStdDevP = SC_OPCODE_DB_STD_DEV_P,
302 ocDBVar = SC_OPCODE_DB_VAR,
303 ocDBVarP = SC_OPCODE_DB_VAR_P,
304 // Management functions
305 ocIndirect = SC_OPCODE_INDIRECT,
306 ocAddress = SC_OPCODE_ADDRESS,
307 ocMatch = SC_OPCODE_MATCH,
308 ocCountEmptyCells = SC_OPCODE_COUNT_EMPTY_CELLS,
309 ocCountIf = SC_OPCODE_COUNT_IF,
310 ocSumIf = SC_OPCODE_SUM_IF,
311 ocAverageIf = SC_OPCODE_AVERAGE_IF,
312 ocSumIfs = SC_OPCODE_SUM_IFS,
313 ocAverageIfs = SC_OPCODE_AVERAGE_IFS,
314 ocCountIfs = SC_OPCODE_COUNT_IFS,
315 ocLookup = SC_OPCODE_LOOKUP,
316 ocVLookup = SC_OPCODE_V_LOOKUP,
317 ocHLookup = SC_OPCODE_H_LOOKUP,
318 ocMultiArea = SC_OPCODE_MULTI_AREA,
319 ocOffset = SC_OPCODE_OFFSET,
320 ocIndex = SC_OPCODE_INDEX,
321 ocAreas = SC_OPCODE_AREAS,
322 // String functions
323 ocCurrency = SC_OPCODE_CURRENCY,
324 ocReplace = SC_OPCODE_REPLACE,
325 ocFixed = SC_OPCODE_FIXED,
326 ocFind = SC_OPCODE_FIND,
327 ocExact = SC_OPCODE_EXACT,
328 ocLeft = SC_OPCODE_LEFT,
329 ocRight = SC_OPCODE_RIGHT,
330 ocSearch = SC_OPCODE_SEARCH,
331 ocMid = SC_OPCODE_MID,
332 ocText = SC_OPCODE_TEXT,
333 ocSubstitute = SC_OPCODE_SUBSTITUTE,
334 ocRept = SC_OPCODE_REPT,
335 ocConcat = SC_OPCODE_CONCAT,
336 ocConcat_MS = SC_OPCODE_CONCAT_MS,
337 ocTextJoin_MS = SC_OPCODE_TEXTJOIN_MS,
338 ocLenB = SC_OPCODE_LENB,
339 ocRightB = SC_OPCODE_RIGHTB,
340 ocLeftB = SC_OPCODE_LEFTB,
341 ocMidB = SC_OPCODE_MIDB,
342 ocReplaceB = SC_OPCODE_REPLACEB,
343 ocFindB = SC_OPCODE_FINDB,
344 ocSearchB = SC_OPCODE_SEARCHB,
345 ocNumberValue = SC_OPCODE_NUMBERVALUE,
346 ocRegex = SC_OPCODE_REGEX,
347 // Matrix functions
348 ocMatValue = SC_OPCODE_MAT_VALUE,
349 ocMatDet = SC_OPCODE_MAT_DET,
350 ocMatInv = SC_OPCODE_MAT_INV,
351 ocMatMult = SC_OPCODE_MAT_MULT,
352 ocMatTrans = SC_OPCODE_MAT_TRANS,
353 ocMatrixUnit = SC_OPCODE_MATRIX_UNIT,
354 // BackSolver
355 ocBackSolver = SC_OPCODE_BACK_SOLVER,
356 // Statistical functions
357 ocHypGeomDist = SC_OPCODE_HYP_GEOM_DIST,
358 ocHypGeomDist_MS = SC_OPCODE_HYP_GEOM_DIST_MS,
359 ocLogNormDist = SC_OPCODE_LOG_NORM_DIST,
360 ocLogNormDist_MS = SC_OPCODE_LOG_NORM_DIST_MS,
361 ocTDist = SC_OPCODE_T_DIST,
362 ocTDist_MS = SC_OPCODE_T_DIST_MS,
363 ocTDist_RT = SC_OPCODE_T_DIST_RT,
364 ocTDist_2T = SC_OPCODE_T_DIST_2T,
365 ocFDist = SC_OPCODE_F_DIST,
366 ocFDist_LT = SC_OPCODE_F_DIST_LT,
367 ocFDist_RT = SC_OPCODE_F_DIST_RT,
368 ocChiDist = SC_OPCODE_CHI_DIST,
369 ocChiDist_MS = SC_OPCODE_CHI_DIST_MS,
370 ocChiSqDist = SC_OPCODE_CHISQ_DIST,
371 ocChiSqDist_MS = SC_OPCODE_CHISQ_DIST_MS,
372 ocChiSqInv = SC_OPCODE_CHISQ_INV,
373 ocChiSqInv_MS = SC_OPCODE_CHISQ_INV_MS,
374 ocWeibull = SC_OPCODE_WEIBULL,
375 ocWeibull_MS = SC_OPCODE_WEIBULL_MS,
376 ocNegBinomVert = SC_OPCODE_NEG_BINOM_VERT,
377 ocNegBinomDist_MS = SC_OPCODE_NEG_BINOM_DIST_MS,
378 ocCritBinom = SC_OPCODE_CRIT_BINOM,
379 ocKurt = SC_OPCODE_KURT,
380 ocHarMean = SC_OPCODE_HAR_MEAN,
381 ocGeoMean = SC_OPCODE_GEO_MEAN,
382 ocStandard = SC_OPCODE_STANDARD,
383 ocAveDev = SC_OPCODE_AVE_DEV,
384 ocSkew = SC_OPCODE_SKEW,
385 ocSkewp = SC_OPCODE_SKEWP,
386 ocDevSq = SC_OPCODE_DEV_SQ,
387 ocMedian = SC_OPCODE_MEDIAN,
388 ocModalValue = SC_OPCODE_MODAL_VALUE,
389 ocModalValue_MS = SC_OPCODE_MODAL_VALUE_MS,
390 ocModalValue_Multi = SC_OPCODE_MODAL_VALUE_MULTI,
391 ocZTest = SC_OPCODE_Z_TEST,
392 ocZTest_MS = SC_OPCODE_Z_TEST_MS,
393 ocAggregate = SC_OPCODE_AGGREGATE,
394 ocTTest = SC_OPCODE_T_TEST,
395 ocTTest_MS = SC_OPCODE_T_TEST_MS,
396 ocRank = SC_OPCODE_RANK,
397 ocPercentile = SC_OPCODE_PERCENTILE,
398 ocPercentrank = SC_OPCODE_PERCENT_RANK,
399 ocPercentile_Inc = SC_OPCODE_PERCENTILE_INC,
400 ocPercentrank_Inc = SC_OPCODE_PERCENT_RANK_INC,
401 ocQuartile_Inc = SC_OPCODE_QUARTILE_INC,
402 ocRank_Eq = SC_OPCODE_RANK_EQ,
403 ocPercentile_Exc = SC_OPCODE_PERCENTILE_EXC,
404 ocPercentrank_Exc = SC_OPCODE_PERCENT_RANK_EXC,
405 ocQuartile_Exc = SC_OPCODE_QUARTILE_EXC,
406 ocRank_Avg = SC_OPCODE_RANK_AVG,
407 ocLarge = SC_OPCODE_LARGE,
408 ocSmall = SC_OPCODE_SMALL,
409 ocFrequency = SC_OPCODE_FREQUENCY,
410 ocQuartile = SC_OPCODE_QUARTILE,
411 ocNormInv = SC_OPCODE_NORM_INV,
412 ocNormInv_MS = SC_OPCODE_NORM_INV_MS,
413 ocConfidence = SC_OPCODE_CONFIDENCE,
414 ocConfidence_N = SC_OPCODE_CONFIDENCE_N,
415 ocConfidence_T = SC_OPCODE_CONFIDENCE_T,
416 ocFTest = SC_OPCODE_F_TEST,
417 ocFTest_MS = SC_OPCODE_F_TEST_MS,
418 ocTrimMean = SC_OPCODE_TRIM_MEAN,
419 ocProb = SC_OPCODE_PROB,
420 ocCorrel = SC_OPCODE_CORREL,
421 ocCovar = SC_OPCODE_COVAR,
422 ocCovarianceP = SC_OPCODE_COVARIANCE_P,
423 ocCovarianceS = SC_OPCODE_COVARIANCE_S,
424 ocPearson = SC_OPCODE_PEARSON,
425 ocRSQ = SC_OPCODE_RSQ,
426 ocSTEYX = SC_OPCODE_STEYX,
427 ocSlope = SC_OPCODE_SLOPE,
428 ocIntercept = SC_OPCODE_INTERCEPT,
429 ocTrend = SC_OPCODE_TREND,
430 ocGrowth = SC_OPCODE_GROWTH,
431 ocLinest = SC_OPCODE_LINEST,
432 ocLogest = SC_OPCODE_LOGEST,
433 ocForecast = SC_OPCODE_FORECAST,
434 ocForecast_ETS_ADD = SC_OPCODE_FORECAST_ETS_ADD,
435 ocForecast_ETS_SEA = SC_OPCODE_FORECAST_ETS_SEA,
436 ocForecast_ETS_MUL = SC_OPCODE_FORECAST_ETS_MUL,
437 ocForecast_ETS_PIA = SC_OPCODE_FORECAST_ETS_PIA,
438 ocForecast_ETS_PIM = SC_OPCODE_FORECAST_ETS_PIM,
439 ocForecast_ETS_STA = SC_OPCODE_FORECAST_ETS_STA,
440 ocForecast_ETS_STM = SC_OPCODE_FORECAST_ETS_STM,
441 ocForecast_LIN = SC_OPCODE_FORECAST_LIN,
442 ocChiInv = SC_OPCODE_CHI_INV,
443 ocChiInv_MS = SC_OPCODE_CHI_INV_MS,
444 ocGammaDist = SC_OPCODE_GAMMA_DIST,
445 ocGammaDist_MS = SC_OPCODE_GAMMA_DIST_MS,
446 ocGammaInv = SC_OPCODE_GAMMA_INV,
447 ocGammaInv_MS = SC_OPCODE_GAMMA_INV_MS,
448 ocTInv = SC_OPCODE_T_INV,
449 ocTInv_2T = SC_OPCODE_T_INV_2T,
450 ocTInv_MS = SC_OPCODE_T_INV_MS,
451 ocFInv = SC_OPCODE_F_INV,
452 ocFInv_LT = SC_OPCODE_F_INV_LT,
453 ocFInv_RT = SC_OPCODE_F_INV_RT,
454 ocChiTest = SC_OPCODE_CHI_TEST,
455 ocChiTest_MS = SC_OPCODE_CHI_TEST_MS,
456 ocLogInv = SC_OPCODE_LOG_INV,
457 ocLogInv_MS = SC_OPCODE_LOG_INV_MS,
458 ocTableOp = SC_OPCODE_TABLE_OP,
459 ocBetaDist = SC_OPCODE_BETA_DIST,
460 ocBetaInv = SC_OPCODE_BETA_INV,
461 ocBetaDist_MS = SC_OPCODE_BETA_DIST_MS,
462 ocBetaInv_MS = SC_OPCODE_BETA_INV_MS,
463 // Bit functions
464 ocBitAnd = SC_OPCODE_BITAND,
465 ocBitOr = SC_OPCODE_BITOR,
466 ocBitXor = SC_OPCODE_BITXOR,
467 ocBitRshift = SC_OPCODE_BITRSHIFT,
468 ocBitLshift = SC_OPCODE_BITLSHIFT,
469 // miscellaneous
470 ocWeek = SC_OPCODE_WEEK,
471 ocIsoWeeknum = SC_OPCODE_ISOWEEKNUM,
472 ocWeeknumOOo = SC_OPCODE_WEEKNUM_OOO,
473 ocGetDayOfWeek = SC_OPCODE_GET_DAY_OF_WEEK,
474 ocNetWorkdays = SC_OPCODE_NETWORKDAYS,
475 ocNetWorkdays_MS = SC_OPCODE_NETWORKDAYS_MS,
476 ocWorkday_MS = SC_OPCODE_WORKDAY_MS,
477 ocNoName = SC_OPCODE_NO_NAME,
478 ocStyle = SC_OPCODE_STYLE,
479 ocDde = SC_OPCODE_DDE,
480 ocBase = SC_OPCODE_BASE,
481 ocSheet = SC_OPCODE_SHEET,
482 ocSheets = SC_OPCODE_SHEETS,
483 ocMinA = SC_OPCODE_MIN_A,
484 ocMaxA = SC_OPCODE_MAX_A,
485 ocAverageA = SC_OPCODE_AVERAGE_A,
486 ocStDevA = SC_OPCODE_ST_DEV_A,
487 ocStDevPA = SC_OPCODE_ST_DEV_P_A,
488 ocVarA = SC_OPCODE_VAR_A,
489 ocVarPA = SC_OPCODE_VAR_P_A,
490 ocEasterSunday = SC_OPCODE_EASTERSUNDAY,
491 ocDecimal = SC_OPCODE_DECIMAL,
492 ocConvertOOo = SC_OPCODE_CONVERT_OOO,
493 ocRoman = SC_OPCODE_ROMAN,
494 ocHyperLink = SC_OPCODE_HYPERLINK,
495 ocGetPivotData = SC_OPCODE_GET_PIVOT_DATA,
496 ocEuroConvert = SC_OPCODE_EUROCONVERT,
497 ocFilterXML = SC_OPCODE_FILTERXML,
498 ocWebservice = SC_OPCODE_WEBSERVICE,
499 ocColor = SC_OPCODE_COLOR,
500 ocErf_MS = SC_OPCODE_ERF_MS,
501 ocErfc_MS = SC_OPCODE_ERFC_MS,
502 ocEncodeURL = SC_OPCODE_ENCODEURL,
503 ocFourier = SC_OPCODE_FOURIER,
504 // internal stuff
505 ocInternalBegin = SC_OPCODE_INTERNAL_BEGIN,
506 ocTTT = SC_OPCODE_TTT,
507 ocDebugVar = SC_OPCODE_DEBUG_VAR,
508 ocInternalEnd = SC_OPCODE_INTERNAL_END,
509 // from here on ExtraData
510 ocDataToken1 = SC_OPCODE_DATA_TOKEN_1,
511 // no OpCode
512 ocNone = SC_OPCODE_NONE
515 // Only to be used for debugging output. No guarantee of stability of the
516 // return value.
518 // Turn this into an operator<< when OpCode becomes a scoped enum
520 inline std::string OpCodeEnumToString(OpCode eCode)
522 switch (eCode)
524 case ocPush: return "Push";
525 case ocCall: return "Call";
526 case ocStop: return "Stop";
527 case ocExternal: return "External";
528 case ocName: return "Name";
529 case ocIf: return "If";
530 case ocIfError: return "IfError";
531 case ocIfNA: return "IfNA";
532 case ocChoose: return "Choose";
533 case ocOpen: return "Open";
534 case ocClose: return "Close";
535 case ocTableRefOpen: return "TableRefOpen";
536 case ocTableRefClose: return "TableRefClose";
537 case ocSep: return "Sep";
538 case ocArrayOpen: return "ArrayOpen";
539 case ocArrayClose: return "ArrayClose";
540 case ocArrayRowSep: return "ArrayRowSep";
541 case ocArrayColSep: return "ArrayColSep";
542 case ocMissing: return "Missing";
543 case ocBad: return "Bad";
544 case ocStringXML: return "StringXML";
545 case ocSpaces: return "Spaces";
546 case ocMatRef: return "MatRef";
547 case ocTableRefItemAll: return "TableRefItemAll";
548 case ocTableRefItemHeaders: return "TableRefItemHeaders";
549 case ocTableRefItemData: return "TableRefItemData";
550 case ocTableRefItemTotals: return "TableRefItemTotals";
551 case ocTableRefItemThisRow: return "TableRefItemThisRow";
552 case ocSkip: return "Skip";
553 case ocDBArea: return "DBArea";
554 case ocTableRef: return "TableRef";
555 case ocMacro: return "Macro";
556 case ocColRowName: return "ColRowName";
557 case ocColRowNameAuto: return "ColRowNameAuto";
558 case ocPercentSign: return "PercentSign";
559 case ocErrNull: return "ErrNull";
560 case ocErrDivZero: return "ErrDivZero";
561 case ocErrValue: return "ErrValue";
562 case ocErrRef: return "ErrRef";
563 case ocErrName: return "ErrName";
564 case ocErrNum: return "ErrNum";
565 case ocErrNA: return "ErrNA";
566 case ocAdd: return "Add";
567 case ocSub: return "Sub";
568 case ocMul: return "Mul";
569 case ocDiv: return "Div";
570 case ocAmpersand: return "Ampersand";
571 case ocPow: return "Pow";
572 case ocEqual: return "Equal";
573 case ocNotEqual: return "NotEqual";
574 case ocLess: return "Less";
575 case ocGreater: return "Greater";
576 case ocLessEqual: return "LessEqual";
577 case ocGreaterEqual: return "GreaterEqual";
578 case ocAnd: return "And";
579 case ocOr: return "Or";
580 case ocXor: return "Xor";
581 case ocIntersect: return "Intersect";
582 case ocUnion: return "Union";
583 case ocRange: return "Range";
584 case ocNot: return "Not";
585 case ocNeg: return "Neg";
586 case ocNegSub: return "NegSub";
587 case ocPi: return "Pi";
588 case ocRandom: return "Random";
589 case ocTrue: return "True";
590 case ocFalse: return "False";
591 case ocGetActDate: return "GetActDate";
592 case ocGetActTime: return "GetActTime";
593 case ocNotAvail: return "NotAvail";
594 case ocCurrent: return "Current";
595 case ocDeg: return "Deg";
596 case ocRad: return "Rad";
597 case ocSin: return "Sin";
598 case ocCos: return "Cos";
599 case ocTan: return "Tan";
600 case ocCot: return "Cot";
601 case ocArcSin: return "ArcSin";
602 case ocArcCos: return "ArcCos";
603 case ocArcTan: return "ArcTan";
604 case ocArcCot: return "ArcCot";
605 case ocSinHyp: return "SinHyp";
606 case ocCosHyp: return "CosHyp";
607 case ocTanHyp: return "TanHyp";
608 case ocCotHyp: return "CotHyp";
609 case ocArcSinHyp: return "ArcSinHyp";
610 case ocArcCosHyp: return "ArcCosHyp";
611 case ocArcTanHyp: return "ArcTanHyp";
612 case ocArcCotHyp: return "ArcCotHyp";
613 case ocCosecant: return "Cosecant";
614 case ocSecant: return "Secant";
615 case ocCosecantHyp: return "CosecantHyp";
616 case ocSecantHyp: return "SecantHyp";
617 case ocExp: return "Exp";
618 case ocLn: return "Ln";
619 case ocSqrt: return "Sqrt";
620 case ocFact: return "Fact";
621 case ocGetYear: return "GetYear";
622 case ocGetMonth: return "GetMonth";
623 case ocGetDay: return "GetDay";
624 case ocGetHour: return "GetHour";
625 case ocGetMin: return "GetMin";
626 case ocGetSec: return "GetSec";
627 case ocPlusMinus: return "PlusMinus";
628 case ocAbs: return "Abs";
629 case ocInt: return "Int";
630 case ocPhi: return "Phi";
631 case ocGauss: return "Gauss";
632 case ocIsEmpty: return "IsEmpty";
633 case ocIsString: return "IsString";
634 case ocIsNonString: return "IsNonString";
635 case ocIsLogical: return "IsLogical";
636 case ocType: return "Type";
637 case ocCell: return "Cell";
638 case ocIsRef: return "IsRef";
639 case ocIsValue: return "IsValue";
640 case ocIsFormula: return "IsFormula";
641 case ocIsNA: return "IsNA";
642 case ocIsErr: return "IsErr";
643 case ocIsError: return "IsError";
644 case ocIsEven: return "IsEven";
645 case ocIsOdd: return "IsOdd";
646 case ocN: return "N";
647 case ocGetDateValue: return "GetDateValue";
648 case ocGetTimeValue: return "GetTimeValue";
649 case ocCode: return "Code";
650 case ocTrim: return "Trim";
651 case ocUpper: return "Upper";
652 case ocProper: return "Proper";
653 case ocLower: return "Lower";
654 case ocLen: return "Len";
655 case ocT: return "T";
656 case ocValue: return "Value";
657 case ocClean: return "Clean";
658 case ocChar: return "Char";
659 case ocLog10: return "Log10";
660 case ocEven: return "Even";
661 case ocOdd: return "Odd";
662 case ocStdNormDist: return "StdNormDist";
663 case ocStdNormDist_MS: return "StdNormDist_MS";
664 case ocFisher: return "Fisher";
665 case ocFisherInv: return "FisherInv";
666 case ocSNormInv: return "SNormInv";
667 case ocSNormInv_MS: return "SNormInv_MS";
668 case ocGammaLn: return "GammaLn";
669 case ocGammaLn_MS: return "GammaLn_MS";
670 case ocGamma: return "Gamma";
671 case ocErrorType: return "ErrorType";
672 case ocErrorType_ODF: return "ErrorType_ODF";
673 case ocFormula: return "Formula";
674 case ocArabic: return "Arabic";
675 case ocInfo: return "Info";
676 case ocBahtText: return "BahtText";
677 case ocJis: return "Jis";
678 case ocAsc: return "Asc";
679 case ocUnicode: return "Unicode";
680 case ocUnichar: return "Unichar";
681 case ocArcTan2: return "ArcTan2";
682 case ocCeil: return "Ceil";
683 case ocCeil_MS: return "Ceil_MS";
684 case ocCeil_Precise: return "Ceil_Precise";
685 case ocCeil_ISO: return "Ceil_ISO";
686 case ocCeil_Math: return "Ceil_Math";
687 case ocFloor: return "Floor";
688 case ocFloor_MS: return "Floor_MS";
689 case ocFloor_Math: return "Floor_Math";
690 case ocFloor_Precise: return "Floor_Precise";
691 case ocRound: return "Round";
692 case ocRoundUp: return "RoundUp";
693 case ocRoundDown: return "RoundDown";
694 case ocTrunc: return "Trunc";
695 case ocLog: return "Log";
696 case ocPower: return "Power";
697 case ocGCD: return "GCD";
698 case ocLCM: return "LCM";
699 case ocMod: return "Mod";
700 case ocSumProduct: return "SumProduct";
701 case ocSumSQ: return "SumSQ";
702 case ocSumX2MY2: return "SumX2MY2";
703 case ocSumX2DY2: return "SumX2DY2";
704 case ocSumXMY2: return "SumXMY2";
705 case ocGetDate: return "GetDate";
706 case ocGetTime: return "GetTime";
707 case ocGetDiffDate: return "GetDiffDate";
708 case ocGetDiffDate360: return "GetDiffDate360";
709 case ocGetDateDif: return "GetDateDif";
710 case ocMin: return "Min";
711 case ocMax: return "Max";
712 case ocSum: return "Sum";
713 case ocProduct: return "Product";
714 case ocAverage: return "Average";
715 case ocCount: return "Count";
716 case ocCount2: return "Count2";
717 case ocNPV: return "NPV";
718 case ocIRR: return "IRR";
719 case ocMIRR: return "MIRR";
720 case ocISPMT: return "ISPMT";
721 case ocVar: return "Var";
722 case ocVarP: return "VarP";
723 case ocVarP_MS: return "VarP_MS";
724 case ocVarS: return "VarS";
725 case ocStDev: return "StDev";
726 case ocStDevP: return "StDevP";
727 case ocStDevP_MS: return "StDevP_MS";
728 case ocStDevS: return "StDevS";
729 case ocB: return "B";
730 case ocNormDist: return "NormDist";
731 case ocNormDist_MS: return "NormDist_MS";
732 case ocExpDist: return "ExpDist";
733 case ocExpDist_MS: return "ExpDist_MS";
734 case ocBinomDist: return "BinomDist";
735 case ocBinomDist_MS: return "BinomDist_MS";
736 case ocBinomInv: return "BinomInv";
737 case ocPoissonDist: return "PoissonDist";
738 case ocPoissonDist_MS: return "PoissonDist_MS";
739 case ocCombin: return "Combin";
740 case ocCombinA: return "CombinA";
741 case ocPermut: return "Permut";
742 case ocPermutationA: return "PermutationA";
743 case ocPV: return "PV";
744 case ocSYD: return "SYD";
745 case ocDDB: return "DDB";
746 case ocDB: return "DB";
747 case ocVBD: return "VBD";
748 case ocPDuration: return "PDuration";
749 case ocSLN: return "SLN";
750 case ocPMT: return "PMT";
751 case ocColumns: return "Columns";
752 case ocRows: return "Rows";
753 case ocColumn: return "Column";
754 case ocRow: return "Row";
755 case ocRRI: return "RRI";
756 case ocFV: return "FV";
757 case ocNper: return "Nper";
758 case ocRate: return "Rate";
759 case ocIpmt: return "Ipmt";
760 case ocPpmt: return "Ppmt";
761 case ocCumIpmt: return "CumIpmt";
762 case ocCumPrinc: return "CumPrinc";
763 case ocEffect: return "Effect";
764 case ocNominal: return "Nominal";
765 case ocSubTotal: return "SubTotal";
766 case ocRawSubtract: return "RawSubtract";
767 case ocIfs_MS: return "Ifs_MS";
768 case ocSwitch_MS: return "Switch_MS";
769 case ocMinIfs_MS: return "MinIfs_MS";
770 case ocMaxIfs_MS: return "MaxIfs_MS";
771 case ocRoundSig: return "RoundSig";
772 case ocDBSum: return "DBSum";
773 case ocDBCount: return "DBCount";
774 case ocDBCount2: return "DBCount2";
775 case ocDBAverage: return "DBAverage";
776 case ocDBGet: return "DBGet";
777 case ocDBMax: return "DBMax";
778 case ocDBMin: return "DBMin";
779 case ocDBProduct: return "DBProduct";
780 case ocDBStdDev: return "DBStdDev";
781 case ocDBStdDevP: return "DBStdDevP";
782 case ocDBVar: return "DBVar";
783 case ocDBVarP: return "DBVarP";
784 case ocIndirect: return "Indirect";
785 case ocAddress: return "Address";
786 case ocMatch: return "Match";
787 case ocCountEmptyCells: return "CountEmptyCells";
788 case ocCountIf: return "CountIf";
789 case ocSumIf: return "SumIf";
790 case ocAverageIf: return "AverageIf";
791 case ocSumIfs: return "SumIfs";
792 case ocAverageIfs: return "AverageIfs";
793 case ocCountIfs: return "CountIfs";
794 case ocLookup: return "Lookup";
795 case ocVLookup: return "VLookup";
796 case ocHLookup: return "HLookup";
797 case ocMultiArea: return "MultiArea";
798 case ocOffset: return "Offset";
799 case ocIndex: return "Index";
800 case ocAreas: return "Areas";
801 case ocCurrency: return "Currency";
802 case ocReplace: return "Replace";
803 case ocFixed: return "Fixed";
804 case ocFind: return "Find";
805 case ocExact: return "Exact";
806 case ocLeft: return "Left";
807 case ocRight: return "Right";
808 case ocSearch: return "Search";
809 case ocMid: return "Mid";
810 case ocText: return "Text";
811 case ocSubstitute: return "Substitute";
812 case ocRept: return "Rept";
813 case ocRegex: return "Regex";
814 case ocConcat: return "Concat";
815 case ocConcat_MS: return "Concat_MS";
816 case ocTextJoin_MS: return "TextJoin_MS";
817 case ocLenB: return "LenB";
818 case ocRightB: return "RightB";
819 case ocLeftB: return "LeftB";
820 case ocMidB: return "MidB";
821 case ocReplaceB: return "ReplaceB";
822 case ocFindB: return "FindB";
823 case ocSearchB: return "SearchB";
824 case ocNumberValue: return "NumberValue";
825 case ocMatValue: return "MatValue";
826 case ocMatDet: return "MatDet";
827 case ocMatInv: return "MatInv";
828 case ocMatMult: return "MatMult";
829 case ocMatTrans: return "MatTrans";
830 case ocMatrixUnit: return "MatrixUnit";
831 case ocBackSolver: return "BackSolver";
832 case ocHypGeomDist: return "HypGeomDist";
833 case ocHypGeomDist_MS: return "HypGeomDist_MS";
834 case ocLogNormDist: return "LogNormDist";
835 case ocLogNormDist_MS: return "LogNormDist_MS";
836 case ocTDist: return "TDist";
837 case ocTDist_MS: return "TDist_MS";
838 case ocTDist_RT: return "TDist_RT";
839 case ocTDist_2T: return "TDist_2T";
840 case ocFDist: return "FDist";
841 case ocFDist_LT: return "FDist_LT";
842 case ocFDist_RT: return "FDist_RT";
843 case ocChiDist: return "ChiDist";
844 case ocChiDist_MS: return "ChiDist_MS";
845 case ocChiSqDist: return "ChiSqDist";
846 case ocChiSqDist_MS: return "ChiSqDist_MS";
847 case ocChiSqInv: return "ChiSqInv";
848 case ocChiSqInv_MS: return "ChiSqInv_MS";
849 case ocWeibull: return "Weibull";
850 case ocWeibull_MS: return "Weibull_MS";
851 case ocNegBinomVert: return "NegBinomVert";
852 case ocNegBinomDist_MS: return "NegBinomDist_MS";
853 case ocCritBinom: return "CritBinom";
854 case ocKurt: return "Kurt";
855 case ocHarMean: return "HarMean";
856 case ocGeoMean: return "GeoMean";
857 case ocStandard: return "Standard";
858 case ocAveDev: return "AveDev";
859 case ocSkew: return "Skew";
860 case ocSkewp: return "Skewp";
861 case ocDevSq: return "DevSq";
862 case ocMedian: return "Median";
863 case ocModalValue: return "ModalValue";
864 case ocModalValue_MS: return "ModalValue_MS";
865 case ocModalValue_Multi: return "ModalValue_Multi";
866 case ocZTest: return "ZTest";
867 case ocZTest_MS: return "ZTest_MS";
868 case ocAggregate: return "Aggregate";
869 case ocTTest: return "TTest";
870 case ocTTest_MS: return "TTest_MS";
871 case ocRank: return "Rank";
872 case ocPercentile: return "Percentile";
873 case ocPercentrank: return "Percentrank";
874 case ocPercentile_Inc: return "Percentile_Inc";
875 case ocPercentrank_Inc: return "Percentrank_Inc";
876 case ocQuartile_Inc: return "Quartile_Inc";
877 case ocRank_Eq: return "Rank_Eq";
878 case ocPercentile_Exc: return "Percentile_Exc";
879 case ocPercentrank_Exc: return "Percentrank_Exc";
880 case ocQuartile_Exc: return "Quartile_Exc";
881 case ocRank_Avg: return "Rank_Avg";
882 case ocLarge: return "Large";
883 case ocSmall: return "Small";
884 case ocFrequency: return "Frequency";
885 case ocQuartile: return "Quartile";
886 case ocNormInv: return "NormInv";
887 case ocNormInv_MS: return "NormInv_MS";
888 case ocConfidence: return "Confidence";
889 case ocConfidence_N: return "Confidence_N";
890 case ocConfidence_T: return "Confidence_T";
891 case ocFTest: return "FTest";
892 case ocFTest_MS: return "FTest_MS";
893 case ocTrimMean: return "TrimMean";
894 case ocProb: return "Prob";
895 case ocCorrel: return "Correl";
896 case ocCovar: return "Covar";
897 case ocCovarianceP: return "CovarianceP";
898 case ocCovarianceS: return "CovarianceS";
899 case ocPearson: return "Pearson";
900 case ocRSQ: return "RSQ";
901 case ocSTEYX: return "STEYX";
902 case ocSlope: return "Slope";
903 case ocIntercept: return "Intercept";
904 case ocTrend: return "Trend";
905 case ocGrowth: return "Growth";
906 case ocLinest: return "Linest";
907 case ocLogest: return "Logest";
908 case ocForecast: return "Forecast";
909 case ocForecast_ETS_ADD: return "Forecast_ETS_ADD";
910 case ocForecast_ETS_SEA: return "Forecast_ETS_SEA";
911 case ocForecast_ETS_MUL: return "Forecast_ETS_MUL";
912 case ocForecast_ETS_PIA: return "Forecast_ETS_PIA";
913 case ocForecast_ETS_PIM: return "Forecast_ETS_PIM";
914 case ocForecast_ETS_STA: return "Forecast_ETS_STA";
915 case ocForecast_ETS_STM: return "Forecast_ETS_STM";
916 case ocForecast_LIN: return "Forecast_LIN";
917 case ocChiInv: return "ChiInv";
918 case ocChiInv_MS: return "ChiInv_MS";
919 case ocGammaDist: return "GammaDist";
920 case ocGammaDist_MS: return "GammaDist_MS";
921 case ocGammaInv: return "GammaInv";
922 case ocGammaInv_MS: return "GammaInv_MS";
923 case ocTInv: return "TInv";
924 case ocTInv_2T: return "TInv_2T";
925 case ocTInv_MS: return "TInv_MS";
926 case ocFInv: return "FInv";
927 case ocFInv_LT: return "FInv_LT";
928 case ocFInv_RT: return "FInv_RT";
929 case ocChiTest: return "ChiTest";
930 case ocChiTest_MS: return "ChiTest_MS";
931 case ocLogInv: return "LogInv";
932 case ocLogInv_MS: return "LogInv_MS";
933 case ocTableOp: return "TableOp";
934 case ocBetaDist: return "BetaDist";
935 case ocBetaInv: return "BetaInv";
936 case ocBetaDist_MS: return "BetaDist_MS";
937 case ocBetaInv_MS: return "BetaInv_MS";
938 case ocBitAnd: return "BitAnd";
939 case ocBitOr: return "BitOr";
940 case ocBitXor: return "BitXor";
941 case ocBitRshift: return "BitRshift";
942 case ocBitLshift: return "BitLshift";
943 case ocWeek: return "Week";
944 case ocIsoWeeknum: return "IsoWeeknum";
945 case ocWeeknumOOo: return "WeeknumOOo";
946 case ocGetDayOfWeek: return "GetDayOfWeek";
947 case ocNetWorkdays: return "NetWorkdays";
948 case ocNetWorkdays_MS: return "NetWorkdays_MS";
949 case ocWorkday_MS: return "Workday_MS";
950 case ocNoName: return "NoName";
951 case ocStyle: return "Style";
952 case ocDde: return "Dde";
953 case ocBase: return "Base";
954 case ocSheet: return "Sheet";
955 case ocSheets: return "Sheets";
956 case ocMinA: return "MinA";
957 case ocMaxA: return "MaxA";
958 case ocAverageA: return "AverageA";
959 case ocStDevA: return "StDevA";
960 case ocStDevPA: return "StDevPA";
961 case ocVarA: return "VarA";
962 case ocVarPA: return "VarPA";
963 case ocEasterSunday: return "EasterSunday";
964 case ocDecimal: return "Decimal";
965 case ocConvertOOo: return "ConvertOOo";
966 case ocRoman: return "Roman";
967 case ocHyperLink: return "HyperLink";
968 case ocGetPivotData: return "GetPivotData";
969 case ocEuroConvert: return "EuroConvert";
970 case ocFilterXML: return "FilterXML";
971 case ocWebservice: return "Webservice";
972 case ocColor: return "Color";
973 case ocErf_MS: return "Erf_MS";
974 case ocErfc_MS: return "Erfc_MS";
975 case ocEncodeURL: return "EncodeURL";
976 case ocFourier: return "Fourier";
977 case ocTTT: return "TTT";
978 case ocDebugVar: return "DebugVar";
979 case ocDataToken1: return "DataToken1";
980 case ocNone: return "None";
982 std::ostringstream os;
983 os << static_cast<int>(eCode);
984 return os.str();
987 #endif
989 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */