1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
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 FORMULA_COMPILER_HXX
21 #define FORMULA_COMPILER_HXX
23 /* Central definition of OpCodes for spreadsheet functions */
25 /*** Special commands ***/
26 #define SC_OPCODE_PUSH 0 /* internal commands */
27 #define SC_OPCODE_CALL 1
28 #define SC_OPCODE_STOP 2
29 #define SC_OPCODE_EXTERNAL 3
30 #define SC_OPCODE_NAME 4
31 #define SC_OPCODE_EXTERNAL_REF 5
32 #define SC_OPCODE_IF 6 /* jump commands */
33 #define SC_OPCODE_IF_ERROR 7
34 #define SC_OPCODE_IF_NA 8
35 #define SC_OPCODE_CHOOSE 9
36 #define SC_OPCODE_OPEN 10 /* parentheses and separators */
37 #define SC_OPCODE_CLOSE 11
38 #define SC_OPCODE_SEP 12
39 #define SC_OPCODE_MISSING 13 /* special OpCodes */
40 #define SC_OPCODE_BAD 14
41 #define SC_OPCODE_STRINGXML 15
42 #define SC_OPCODE_SPACES 16
43 #define SC_OPCODE_MAT_REF 17
44 #define SC_OPCODE_DB_AREA 18 /* additional access operators */
45 #define SC_OPCODE_TABLE_REF 19
46 #define SC_OPCODE_MACRO 20
47 #define SC_OPCODE_COL_ROW_NAME 21
48 #define SC_OPCODE_COL_ROW_NAME_AUTO 22
49 #define SC_OPCODE_PERCENT_SIGN 23 /* operator _follows_ value */
50 #define SC_OPCODE_ARRAY_OPEN 24
51 #define SC_OPCODE_ARRAY_CLOSE 25
52 #define SC_OPCODE_ARRAY_ROW_SEP 26
53 #define SC_OPCODE_ARRAY_COL_SEP 27 /* some convs use sep != col_sep */
54 #define SC_OPCODE_TABLE_REF_OPEN 28
55 #define SC_OPCODE_TABLE_REF_CLOSE 29
56 #define SC_OPCODE_TABLE_REF_ITEM_ALL 30
57 #define SC_OPCODE_TABLE_REF_ITEM_HEADERS 31
58 #define SC_OPCODE_TABLE_REF_ITEM_DATA 32
59 #define SC_OPCODE_TABLE_REF_ITEM_TOTALS 33
60 #define SC_OPCODE_TABLE_REF_ITEM_THIS_ROW 34
61 #define SC_OPCODE_STOP_DIV 35
62 #define SC_OPCODE_SKIP 36 /* used to skip raw tokens during string compilation */
64 /*** error constants #... ***/
65 #define SC_OPCODE_START_ERRORS 40
66 #define SC_OPCODE_ERROR_NULL 40
67 #define SC_OPCODE_ERROR_DIVZERO 41
68 #define SC_OPCODE_ERROR_VALUE 42
69 #define SC_OPCODE_ERROR_REF 43
70 #define SC_OPCODE_ERROR_NAME 44
71 #define SC_OPCODE_ERROR_NUM 45
72 #define SC_OPCODE_ERROR_NA 46
73 #define SC_OPCODE_STOP_ERRORS 47
75 /*** Binary operators ***/
76 #define SC_OPCODE_START_BIN_OP 50
77 #define SC_OPCODE_ADD 50
78 #define SC_OPCODE_SUB 51
79 #define SC_OPCODE_MUL 52
80 #define SC_OPCODE_DIV 53
81 #define SC_OPCODE_AMPERSAND 54
82 #define SC_OPCODE_POW 55
83 #define SC_OPCODE_EQUAL 56
84 #define SC_OPCODE_NOT_EQUAL 57
85 #define SC_OPCODE_LESS 58
86 #define SC_OPCODE_GREATER 59
87 #define SC_OPCODE_LESS_EQUAL 60
88 #define SC_OPCODE_GREATER_EQUAL 61
89 #define SC_OPCODE_AND 62
90 #define SC_OPCODE_OR 63
91 #define SC_OPCODE_INTERSECT 64
92 #define SC_OPCODE_UNION 65
93 #define SC_OPCODE_RANGE 66
94 #define SC_OPCODE_STOP_BIN_OP 67
96 /* NOTE: binary and unary operators must be in sequence for compiler! */
98 /*** Unary operators ***/
99 #define SC_OPCODE_START_UN_OP 70
100 #define SC_OPCODE_NEG_SUB 70
101 #define SC_OPCODE_STOP_UN_OP 71
103 #define SC_OPCODE_START_FUNCTION 75
105 /*** Functions without parameters ***/
106 #define SC_OPCODE_START_NO_PAR 75
107 #define SC_OPCODE_PI 75
108 #define SC_OPCODE_RANDOM 76
109 #define SC_OPCODE_TRUE 77
110 #define SC_OPCODE_FALSE 78
111 #define SC_OPCODE_GET_ACT_DATE 79
112 #define SC_OPCODE_GET_ACT_TIME 80
113 #define SC_OPCODE_NO_VALUE 81
114 #define SC_OPCODE_CURRENT 82
115 #define SC_OPCODE_STOP_NO_PAR 83
117 /*** Functions with one parameter ***/
118 #define SC_OPCODE_START_1_PAR 90
119 #define SC_OPCODE_DEG 90 /* trigonometric */
120 #define SC_OPCODE_RAD 91
121 #define SC_OPCODE_SIN 92
122 #define SC_OPCODE_COS 93
123 #define SC_OPCODE_TAN 94
124 #define SC_OPCODE_COT 95
125 #define SC_OPCODE_ARC_SIN 96
126 #define SC_OPCODE_ARC_COS 97
127 #define SC_OPCODE_ARC_TAN 98
128 #define SC_OPCODE_ARC_COT 99
129 #define SC_OPCODE_SIN_HYP 100
130 #define SC_OPCODE_COS_HYP 101
131 #define SC_OPCODE_TAN_HYP 102
132 #define SC_OPCODE_COT_HYP 103
133 #define SC_OPCODE_ARC_SIN_HYP 104 /* transcendent */
134 #define SC_OPCODE_ARC_COS_HYP 105
135 #define SC_OPCODE_ARC_TAN_HYP 106
136 #define SC_OPCODE_ARC_COT_HYP 107
137 #define SC_OPCODE_COSECANT 108
138 #define SC_OPCODE_SECANT 109
139 #define SC_OPCODE_COSECANT_HYP 110
140 #define SC_OPCODE_SECANT_HYP 111
141 #define SC_OPCODE_EXP 112
142 #define SC_OPCODE_LN 113
143 #define SC_OPCODE_SQRT 114
144 #define SC_OPCODE_FACT 115
145 #define SC_OPCODE_GET_YEAR 116 /* date and time */
146 #define SC_OPCODE_GET_MONTH 117
147 #define SC_OPCODE_GET_DAY 118
148 #define SC_OPCODE_GET_HOUR 119
149 #define SC_OPCODE_GET_MIN 120
150 #define SC_OPCODE_GET_SEC 121
151 #define SC_OPCODE_PLUS_MINUS 122 /* miscellaneous */
152 #define SC_OPCODE_ABS 123
153 #define SC_OPCODE_INT 124
154 #define SC_OPCODE_PHI 125
155 #define SC_OPCODE_GAUSS 126
156 #define SC_OPCODE_IS_EMPTY 127 /* obtain type */
157 #define SC_OPCODE_IS_STRING 128
158 #define SC_OPCODE_IS_NON_STRING 129
159 #define SC_OPCODE_IS_LOGICAL 130
160 #define SC_OPCODE_TYPE 131
161 #define SC_OPCODE_IS_REF 132
162 #define SC_OPCODE_IS_VALUE 133
163 #define SC_OPCODE_IS_FORMULA 134
164 #define SC_OPCODE_IS_NV 135
165 #define SC_OPCODE_IS_ERR 136
166 #define SC_OPCODE_IS_ERROR 137
167 #define SC_OPCODE_IS_EVEN 138
168 #define SC_OPCODE_IS_ODD 139
169 #define SC_OPCODE_N 140
170 #define SC_OPCODE_GET_DATE_VALUE 141 /* string functions */
171 #define SC_OPCODE_GET_TIME_VALUE 142
172 #define SC_OPCODE_CODE 143
173 #define SC_OPCODE_TRIM 144
174 #define SC_OPCODE_UPPER 145
175 #define SC_OPCODE_PROPER 146
176 #define SC_OPCODE_LOWER 147
177 #define SC_OPCODE_LEN 148
178 #define SC_OPCODE_T 149 /* miscellaneous, part 21 */
179 #define SC_OPCODE_VALUE 150
180 #define SC_OPCODE_CLEAN 151
181 #define SC_OPCODE_CHAR 152
182 #define SC_OPCODE_LOG10 153
183 #define SC_OPCODE_EVEN 154
184 #define SC_OPCODE_ODD 155
185 #define SC_OPCODE_STD_NORM_DIST 156
186 #define SC_OPCODE_FISHER 157
187 #define SC_OPCODE_FISHER_INV 158
188 #define SC_OPCODE_S_NORM_INV 159
189 #define SC_OPCODE_GAMMA_LN 160
190 #define SC_OPCODE_ERROR_TYPE 161
191 #define SC_OPCODE_FORMULA 163
192 #define SC_OPCODE_ARABIC 164
193 #define SC_OPCODE_INFO 165
194 #define SC_OPCODE_BAHTTEXT 166
195 #define SC_OPCODE_JIS 167
196 #define SC_OPCODE_ASC 168
197 #define SC_OPCODE_UNICODE 169
198 #define SC_OPCODE_UNICHAR 170
199 #define SC_OPCODE_GAMMA 171
200 #define SC_OPCODE_GAMMA_LN_MS 172
201 #define SC_OPCODE_ERF_MS 173
202 #define SC_OPCODE_ERFC_MS 174
203 #define SC_OPCODE_ERROR_TYPE_ODF 175
204 #define SC_OPCODE_ENCODEURL 176
205 #define SC_OPCODE_ISOWEEKNUM 177
206 #define SC_OPCODE_NOT 178
207 #define SC_OPCODE_NEG 179
208 #define SC_OPCODE_STOP_1_PAR 180
210 /*** Functions with more than one parameters ***/
211 #define SC_OPCODE_START_2_PAR 201
212 #define SC_OPCODE_ARC_TAN_2 201
213 #define SC_OPCODE_CEIL 202
214 #define SC_OPCODE_FLOOR 203
215 #define SC_OPCODE_ROUND 204
216 #define SC_OPCODE_ROUND_UP 205
217 #define SC_OPCODE_ROUND_DOWN 206
218 #define SC_OPCODE_TRUNC 207
219 #define SC_OPCODE_LOG 208
220 #define SC_OPCODE_POWER 209
221 #define SC_OPCODE_GCD 210
222 #define SC_OPCODE_LCM 211
223 #define SC_OPCODE_MOD 212
224 #define SC_OPCODE_SUM_PRODUCT 213
225 #define SC_OPCODE_SUM_SQ 214
226 #define SC_OPCODE_SUM_X2MY2 215
227 #define SC_OPCODE_SUM_X2DY2 216
228 #define SC_OPCODE_SUM_XMY2 217
229 #define SC_OPCODE_GET_DATE 218
230 #define SC_OPCODE_GET_TIME 219
231 #define SC_OPCODE_GET_DIFF_DATE 220
232 #define SC_OPCODE_GET_DIFF_DATE_360 221
233 #define SC_OPCODE_MIN 222
234 #define SC_OPCODE_MAX 223
235 #define SC_OPCODE_SUM 224
236 #define SC_OPCODE_PRODUCT 225
237 #define SC_OPCODE_AVERAGE 226
238 #define SC_OPCODE_COUNT 227
239 #define SC_OPCODE_COUNT_2 228
240 #define SC_OPCODE_NPV 229
241 #define SC_OPCODE_IRR 230
242 #define SC_OPCODE_VAR 231
243 #define SC_OPCODE_VAR_P 232
244 #define SC_OPCODE_ST_DEV 233
245 #define SC_OPCODE_ST_DEV_P 234
246 #define SC_OPCODE_B 235
247 #define SC_OPCODE_NORM_DIST 236
248 #define SC_OPCODE_EXP_DIST 237
249 #define SC_OPCODE_BINOM_DIST 238
250 #define SC_OPCODE_POISSON_DIST 239
251 #define SC_OPCODE_COMBIN 240
252 #define SC_OPCODE_COMBIN_A 241
253 #define SC_OPCODE_PERMUT 242
254 #define SC_OPCODE_PERMUTATION_A 243
255 #define SC_OPCODE_PV 244
256 #define SC_OPCODE_SYD 245
257 #define SC_OPCODE_DDB 246
258 #define SC_OPCODE_DB 247
259 #define SC_OPCODE_VBD 248
260 #define SC_OPCODE_PDURATION 249
261 #define SC_OPCODE_SLN 250
262 #define SC_OPCODE_PMT 251
263 #define SC_OPCODE_COLUMNS 252
264 #define SC_OPCODE_ROWS 253
265 #define SC_OPCODE_COLUMN 254
266 #define SC_OPCODE_ROW 255
267 #define SC_OPCODE_RRI 256
268 #define SC_OPCODE_FV 257
269 #define SC_OPCODE_NPER 258
270 #define SC_OPCODE_RATE 259
271 #define SC_OPCODE_IPMT 260
272 #define SC_OPCODE_PPMT 261
273 #define SC_OPCODE_CUM_IPMT 262
274 #define SC_OPCODE_CUM_PRINC 263
275 #define SC_OPCODE_EFFECT 264
276 #define SC_OPCODE_NOMINAL 265
277 #define SC_OPCODE_SUB_TOTAL 266
278 #define SC_OPCODE_DB_SUM 267 /* database functions */
279 #define SC_OPCODE_DB_COUNT 268
280 #define SC_OPCODE_DB_COUNT_2 269
281 #define SC_OPCODE_DB_AVERAGE 270
282 #define SC_OPCODE_DB_GET 271
283 #define SC_OPCODE_DB_MAX 272
284 #define SC_OPCODE_DB_MIN 273
285 #define SC_OPCODE_DB_PRODUCT 274
286 #define SC_OPCODE_DB_STD_DEV 275
287 #define SC_OPCODE_DB_STD_DEV_P 276
288 #define SC_OPCODE_DB_VAR 277
289 #define SC_OPCODE_DB_VAR_P 278
290 #define SC_OPCODE_INDIRECT 279 /* management functions */
291 #define SC_OPCODE_ADDRESS 280
292 #define SC_OPCODE_MATCH 281
293 #define SC_OPCODE_COUNT_EMPTY_CELLS 282
294 #define SC_OPCODE_COUNT_IF 283
295 #define SC_OPCODE_SUM_IF 284
296 #define SC_OPCODE_LOOKUP 285
297 #define SC_OPCODE_V_LOOKUP 286
298 #define SC_OPCODE_H_LOOKUP 287
299 #define SC_OPCODE_MULTI_AREA 288
300 #define SC_OPCODE_OFFSET 289
301 #define SC_OPCODE_INDEX 290
302 #define SC_OPCODE_AREAS 291
303 #define SC_OPCODE_CURRENCY 292 /* string functions */
304 #define SC_OPCODE_REPLACE 293
305 #define SC_OPCODE_FIXED 294
306 #define SC_OPCODE_FIND 295
307 #define SC_OPCODE_EXACT 296
308 #define SC_OPCODE_LEFT 297
309 #define SC_OPCODE_RIGHT 298
310 #define SC_OPCODE_SEARCH 299
311 #define SC_OPCODE_MID 300
312 #define SC_OPCODE_TEXT 301
313 #define SC_OPCODE_SUBSTITUTE 302
314 #define SC_OPCODE_REPT 303
315 #define SC_OPCODE_CONCAT 304
316 #define SC_OPCODE_MAT_VALUE 305 /* matrix functions */
317 #define SC_OPCODE_MAT_DET 306
318 #define SC_OPCODE_MAT_INV 307
319 #define SC_OPCODE_MAT_MULT 308
320 #define SC_OPCODE_MAT_TRANS 309
321 #define SC_OPCODE_MATRIX_UNIT 310
322 #define SC_OPCODE_BACK_SOLVER 311 /* BackSolver */
323 #define SC_OPCODE_HYP_GEOM_DIST 312 /* statistical functions */
324 #define SC_OPCODE_LOG_NORM_DIST 313
325 #define SC_OPCODE_T_DIST 314
326 #define SC_OPCODE_F_DIST 315
327 #define SC_OPCODE_CHI_DIST 316
328 #define SC_OPCODE_WEIBULL 317
329 #define SC_OPCODE_NEG_BINOM_VERT 318
330 #define SC_OPCODE_CRIT_BINOM 319
331 #define SC_OPCODE_KURT 320
332 #define SC_OPCODE_HAR_MEAN 321
333 #define SC_OPCODE_GEO_MEAN 322
334 #define SC_OPCODE_STANDARD 323
335 #define SC_OPCODE_AVE_DEV 324
336 #define SC_OPCODE_SKEW 325
337 #define SC_OPCODE_DEV_SQ 326
338 #define SC_OPCODE_MEDIAN 327
339 #define SC_OPCODE_MODAL_VALUE 328
340 #define SC_OPCODE_Z_TEST 329
341 #define SC_OPCODE_T_TEST 330
342 #define SC_OPCODE_RANK 331
343 #define SC_OPCODE_PERCENTILE 332
344 #define SC_OPCODE_PERCENT_RANK 333
345 #define SC_OPCODE_LARGE 334
346 #define SC_OPCODE_SMALL 335
347 #define SC_OPCODE_FREQUENCY 336
348 #define SC_OPCODE_QUARTILE 337
349 #define SC_OPCODE_NORM_INV 338
350 #define SC_OPCODE_CONFIDENCE 339
351 #define SC_OPCODE_F_TEST 340
352 #define SC_OPCODE_TRIM_MEAN 341
353 #define SC_OPCODE_PROB 342
354 #define SC_OPCODE_CORREL 343
355 #define SC_OPCODE_COVAR 344
356 #define SC_OPCODE_PEARSON 345
357 #define SC_OPCODE_RSQ 346
358 #define SC_OPCODE_STEYX 347
359 #define SC_OPCODE_SLOPE 348
360 #define SC_OPCODE_INTERCEPT 349
361 #define SC_OPCODE_TREND 350
362 #define SC_OPCODE_GROWTH 351
363 #define SC_OPCODE_LINEST 352
364 #define SC_OPCODE_LOGEST 353
365 #define SC_OPCODE_FORECAST 354
366 #define SC_OPCODE_CHI_INV 355
367 #define SC_OPCODE_GAMMA_DIST 356
368 #define SC_OPCODE_GAMMA_INV 357
369 #define SC_OPCODE_T_INV 358
370 #define SC_OPCODE_F_INV 359
371 #define SC_OPCODE_CHI_TEST 360
372 #define SC_OPCODE_LOG_INV 361
373 #define SC_OPCODE_TABLE_OP 362
374 #define SC_OPCODE_BETA_DIST 363
375 #define SC_OPCODE_BETA_INV 364
376 #define SC_OPCODE_WEEK 365 /* miscellaneous */
377 #define SC_OPCODE_GET_DAY_OF_WEEK 366
378 #define SC_OPCODE_NO_NAME 367
379 #define SC_OPCODE_STYLE 368
380 #define SC_OPCODE_DDE 369
381 #define SC_OPCODE_BASE 370
382 #define SC_OPCODE_SHEET 371
383 #define SC_OPCODE_SHEETS 372
384 #define SC_OPCODE_MIN_A 373
385 #define SC_OPCODE_MAX_A 374
386 #define SC_OPCODE_AVERAGE_A 375
387 #define SC_OPCODE_ST_DEV_A 376
388 #define SC_OPCODE_ST_DEV_P_A 377
389 #define SC_OPCODE_VAR_A 378
390 #define SC_OPCODE_VAR_P_A 379
391 #define SC_OPCODE_EASTERSUNDAY 380
392 #define SC_OPCODE_DECIMAL 381
393 #define SC_OPCODE_CONVERT_OOO 382
394 #define SC_OPCODE_ROMAN 383
395 #define SC_OPCODE_MIRR 384
396 #define SC_OPCODE_CELL 385
397 #define SC_OPCODE_ISPMT 386
398 #define SC_OPCODE_HYPERLINK 387
401 #define SC_OPCODE_GET_PIVOT_DATA 390
402 #define SC_OPCODE_EUROCONVERT 391
403 #define SC_OPCODE_NUMBERVALUE 392
404 #define SC_OPCODE_CHISQ_DIST 393
405 #define SC_OPCODE_CHISQ_INV 394
406 #define SC_OPCODE_BITAND 395
407 #define SC_OPCODE_BITOR 396
408 #define SC_OPCODE_BITXOR 397
409 #define SC_OPCODE_BITRSHIFT 398
410 #define SC_OPCODE_BITLSHIFT 399
411 #define SC_OPCODE_GET_DATEDIF 400
412 #define SC_OPCODE_XOR 401
413 #define SC_OPCODE_AVERAGE_IF 402
414 #define SC_OPCODE_SUM_IFS 403
415 #define SC_OPCODE_AVERAGE_IFS 404
416 #define SC_OPCODE_COUNT_IFS 405
417 #define SC_OPCODE_SKEWP 406
418 #define SC_OPCODE_LENB 407
419 #define SC_OPCODE_RIGHTB 408
420 #define SC_OPCODE_LEFTB 409
421 #define SC_OPCODE_MIDB 410
422 #define SC_OPCODE_FILTERXML 411
423 #define SC_OPCODE_WEBSERVICE 412
424 #define SC_OPCODE_COVARIANCE_S 413
425 #define SC_OPCODE_COVARIANCE_P 414
426 #define SC_OPCODE_ST_DEV_P_MS 415
427 #define SC_OPCODE_ST_DEV_S 416
428 #define SC_OPCODE_VAR_P_MS 417
429 #define SC_OPCODE_VAR_S 418
430 #define SC_OPCODE_BETA_DIST_MS 419
431 #define SC_OPCODE_BETA_INV_MS 420
432 #define SC_OPCODE_BINOM_DIST_MS 421
433 #define SC_OPCODE_BINOM_INV 422
434 #define SC_OPCODE_CHI_DIST_MS 423
435 #define SC_OPCODE_CHI_INV_MS 424
436 #define SC_OPCODE_CHI_TEST_MS 425
437 #define SC_OPCODE_CHISQ_DIST_MS 426
438 #define SC_OPCODE_CHISQ_INV_MS 427
439 #define SC_OPCODE_CONFIDENCE_N 428
440 #define SC_OPCODE_CONFIDENCE_T 429
441 #define SC_OPCODE_F_DIST_LT 430
442 #define SC_OPCODE_F_DIST_RT 431
443 #define SC_OPCODE_F_INV_LT 432
444 #define SC_OPCODE_F_INV_RT 433
445 #define SC_OPCODE_F_TEST_MS 434
446 #define SC_OPCODE_EXP_DIST_MS 435
447 #define SC_OPCODE_HYP_GEOM_DIST_MS 436
448 #define SC_OPCODE_POISSON_DIST_MS 437
449 #define SC_OPCODE_WEIBULL_MS 438
450 #define SC_OPCODE_GAMMA_DIST_MS 439
451 #define SC_OPCODE_GAMMA_INV_MS 440
452 #define SC_OPCODE_LOG_NORM_DIST_MS 441
453 #define SC_OPCODE_LOG_INV_MS 442
454 #define SC_OPCODE_NORM_DIST_MS 443
455 #define SC_OPCODE_NORM_INV_MS 444
456 #define SC_OPCODE_STD_NORM_DIST_MS 445
457 #define SC_OPCODE_S_NORM_INV_MS 446
458 #define SC_OPCODE_T_DIST_MS 447
459 #define SC_OPCODE_T_DIST_RT 448
460 #define SC_OPCODE_T_DIST_2T 449
461 #define SC_OPCODE_T_INV_2T 450
462 #define SC_OPCODE_T_INV_MS 451
463 #define SC_OPCODE_T_TEST_MS 452
464 #define SC_OPCODE_PERCENTILE_INC 453
465 #define SC_OPCODE_PERCENT_RANK_INC 454
466 #define SC_OPCODE_QUARTILE_INC 455
467 #define SC_OPCODE_RANK_EQ 456
468 #define SC_OPCODE_PERCENTILE_EXC 457
469 #define SC_OPCODE_PERCENT_RANK_EXC 458
470 #define SC_OPCODE_QUARTILE_EXC 459
471 #define SC_OPCODE_RANK_AVG 460
472 #define SC_OPCODE_MODAL_VALUE_MS 461
473 #define SC_OPCODE_MODAL_VALUE_MULTI 462
474 #define SC_OPCODE_NEG_BINOM_DIST_MS 463
475 #define SC_OPCODE_Z_TEST_MS 464
476 #define SC_OPCODE_CEIL_MS 465
477 #define SC_OPCODE_CEIL_ISO 466
478 #define SC_OPCODE_FLOOR_MS 467
479 #define SC_OPCODE_NETWORKDAYS_MS 468
480 #define SC_OPCODE_WORKDAY_MS 469
481 #define SC_OPCODE_AGGREGATE 470
482 #define SC_OPCODE_COLOR 471
483 #define SC_OPCODE_CEIL_MATH 472
484 #define SC_OPCODE_CEIL_PRECISE 473
485 #define SC_OPCODE_NETWORKDAYS 474
486 #define SC_OPCODE_FLOOR_MATH 475
487 #define SC_OPCODE_FLOOR_PRECISE 476
488 #define SC_OPCODE_RAWSUBTRACT 477
489 #define SC_OPCODE_WEEKNUM_OOO 478
490 #define SC_OPCODE_FORECAST_ETS_ADD 479
491 #define SC_OPCODE_FORECAST_ETS_SEA 480
492 #define SC_OPCODE_FORECAST_ETS_MUL 481
493 #define SC_OPCODE_FORECAST_ETS_PIA 482
494 #define SC_OPCODE_FORECAST_ETS_PIM 483
495 #define SC_OPCODE_FORECAST_ETS_STA 484
496 #define SC_OPCODE_FORECAST_ETS_STM 485
497 #define SC_OPCODE_FORECAST_LIN 486
498 #define SC_OPCODE_CONCAT_MS 487
499 #define SC_OPCODE_TEXTJOIN_MS 488
500 #define SC_OPCODE_IFS_MS 489
501 #define SC_OPCODE_SWITCH_MS 490
502 #define SC_OPCODE_MINIFS_MS 491
503 #define SC_OPCODE_MAXIFS_MS 492
504 #define SC_OPCODE_ROUNDSIG 493
505 #define SC_OPCODE_REPLACEB 494
506 #define SC_OPCODE_FINDB 495
507 #define SC_OPCODE_SEARCHB 496
508 #define SC_OPCODE_REGEX 497
509 #define SC_OPCODE_FOURIER 498
510 #define SC_OPCODE_STOP_2_PAR 499 /* last function with two or more parameters' OpCode + 1 */
512 #define SC_OPCODE_STOP_FUNCTION SC_OPCODE_STOP_2_PAR /* last function's OpCode + 1 */
513 #define SC_OPCODE_LAST_OPCODE_ID (SC_OPCODE_STOP_FUNCTION - 1) /* last OpCode */
516 #define SC_OPCODE_INTERNAL_BEGIN 9999
517 #define SC_OPCODE_TTT 9999
518 #define SC_OPCODE_DEBUG_VAR 10000
519 #define SC_OPCODE_INTERNAL_END 10000
521 /*** from here on ExtraData contained ***/
522 #define SC_OPCODE_DATA_TOKEN_1 10001
524 #define SC_OPCODE_NONE 0xFFFF
526 #endif /* FORMULA_COMPILER_HRC */
528 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */