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_HRC
21 #define FORMULA_COMPILER_HRC
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_NOT 70
101 #define SC_OPCODE_NEG 71
102 #define SC_OPCODE_NEG_SUB 72
103 #define SC_OPCODE_STOP_UN_OP 73
105 #define SC_OPCODE_START_FUNCTION 75
107 /*** Functions without parameters ***/
108 #define SC_OPCODE_START_NO_PAR 75
109 #define SC_OPCODE_PI 75
110 #define SC_OPCODE_RANDOM 76
111 #define SC_OPCODE_TRUE 77
112 #define SC_OPCODE_FALSE 78
113 #define SC_OPCODE_GET_ACT_DATE 79
114 #define SC_OPCODE_GET_ACT_TIME 80
115 #define SC_OPCODE_NO_VALUE 81
116 #define SC_OPCODE_CURRENT 82
117 #define SC_OPCODE_STOP_NO_PAR 83
119 /*** Functions with one parameter ***/
120 #define SC_OPCODE_START_1_PAR 90
121 #define SC_OPCODE_DEG 90 /* trigonometric */
122 #define SC_OPCODE_RAD 91
123 #define SC_OPCODE_SIN 92
124 #define SC_OPCODE_COS 93
125 #define SC_OPCODE_TAN 94
126 #define SC_OPCODE_COT 95
127 #define SC_OPCODE_ARC_SIN 96
128 #define SC_OPCODE_ARC_COS 97
129 #define SC_OPCODE_ARC_TAN 98
130 #define SC_OPCODE_ARC_COT 99
131 #define SC_OPCODE_SIN_HYP 100
132 #define SC_OPCODE_COS_HYP 101
133 #define SC_OPCODE_TAN_HYP 102
134 #define SC_OPCODE_COT_HYP 103
135 #define SC_OPCODE_ARC_SIN_HYP 104 /* transcendent */
136 #define SC_OPCODE_ARC_COS_HYP 105
137 #define SC_OPCODE_ARC_TAN_HYP 106
138 #define SC_OPCODE_ARC_COT_HYP 107
139 #define SC_OPCODE_COSECANT 108
140 #define SC_OPCODE_SECANT 109
141 #define SC_OPCODE_COSECANT_HYP 110
142 #define SC_OPCODE_SECANT_HYP 111
143 #define SC_OPCODE_EXP 112
144 #define SC_OPCODE_LN 113
145 #define SC_OPCODE_SQRT 114
146 #define SC_OPCODE_FACT 115
147 #define SC_OPCODE_GET_YEAR 116 /* date and time */
148 #define SC_OPCODE_GET_MONTH 117
149 #define SC_OPCODE_GET_DAY 118
150 #define SC_OPCODE_GET_HOUR 119
151 #define SC_OPCODE_GET_MIN 120
152 #define SC_OPCODE_GET_SEC 121
153 #define SC_OPCODE_PLUS_MINUS 122 /* miscellaneous */
154 #define SC_OPCODE_ABS 123
155 #define SC_OPCODE_INT 124
156 #define SC_OPCODE_PHI 125
157 #define SC_OPCODE_GAUSS 126
158 #define SC_OPCODE_IS_EMPTY 127 /* obtain type */
159 #define SC_OPCODE_IS_STRING 128
160 #define SC_OPCODE_IS_NON_STRING 129
161 #define SC_OPCODE_IS_LOGICAL 130
162 #define SC_OPCODE_TYPE 131
163 #define SC_OPCODE_IS_REF 132
164 #define SC_OPCODE_IS_VALUE 133
165 #define SC_OPCODE_IS_FORMULA 134
166 #define SC_OPCODE_IS_NV 135
167 #define SC_OPCODE_IS_ERR 136
168 #define SC_OPCODE_IS_ERROR 137
169 #define SC_OPCODE_IS_EVEN 138
170 #define SC_OPCODE_IS_ODD 139
171 #define SC_OPCODE_N 140
172 #define SC_OPCODE_GET_DATE_VALUE 141 /* string functions */
173 #define SC_OPCODE_GET_TIME_VALUE 142
174 #define SC_OPCODE_CODE 143
175 #define SC_OPCODE_TRIM 144
176 #define SC_OPCODE_UPPER 145
177 #define SC_OPCODE_PROPER 146
178 #define SC_OPCODE_LOWER 147
179 #define SC_OPCODE_LEN 148
180 #define SC_OPCODE_T 149 /* miscellaneous, part 21 */
181 #define SC_OPCODE_VALUE 150
182 #define SC_OPCODE_CLEAN 151
183 #define SC_OPCODE_CHAR 152
184 #define SC_OPCODE_LOG10 153
185 #define SC_OPCODE_EVEN 154
186 #define SC_OPCODE_ODD 155
187 #define SC_OPCODE_STD_NORM_DIST 156
188 #define SC_OPCODE_FISHER 157
189 #define SC_OPCODE_FISHER_INV 158
190 #define SC_OPCODE_S_NORM_INV 159
191 #define SC_OPCODE_GAMMA_LN 160
192 #define SC_OPCODE_ERROR_TYPE 161
193 #define SC_OPCODE_FORMULA 163
194 #define SC_OPCODE_ARABIC 164
195 #define SC_OPCODE_INFO 165
196 #define SC_OPCODE_BAHTTEXT 166
197 #define SC_OPCODE_JIS 167
198 #define SC_OPCODE_ASC 168
199 #define SC_OPCODE_UNICODE 169
200 #define SC_OPCODE_UNICHAR 170
201 #define SC_OPCODE_GAMMA 171
202 #define SC_OPCODE_GAMMA_LN_MS 172
203 #define SC_OPCODE_ERF_MS 173
204 #define SC_OPCODE_ERFC_MS 174
205 #define SC_OPCODE_ERROR_TYPE_ODF 175
206 #define SC_OPCODE_ENCODEURL 176
207 #define SC_OPCODE_STOP_1_PAR 177
209 /*** Functions with more than one parameters ***/
210 #define SC_OPCODE_START_2_PAR 201
211 #define SC_OPCODE_ARC_TAN_2 201
212 #define SC_OPCODE_CEIL 202
213 #define SC_OPCODE_FLOOR 203
214 #define SC_OPCODE_ROUND 204
215 #define SC_OPCODE_ROUND_UP 205
216 #define SC_OPCODE_ROUND_DOWN 206
217 #define SC_OPCODE_TRUNC 207
218 #define SC_OPCODE_LOG 208
219 #define SC_OPCODE_POWER 209
220 #define SC_OPCODE_GCD 210
221 #define SC_OPCODE_LCM 211
222 #define SC_OPCODE_MOD 212
223 #define SC_OPCODE_SUM_PRODUCT 213
224 #define SC_OPCODE_SUM_SQ 214
225 #define SC_OPCODE_SUM_X2MY2 215
226 #define SC_OPCODE_SUM_X2DY2 216
227 #define SC_OPCODE_SUM_XMY2 217
228 #define SC_OPCODE_GET_DATE 218
229 #define SC_OPCODE_GET_TIME 219
230 #define SC_OPCODE_GET_DIFF_DATE 220
231 #define SC_OPCODE_GET_DIFF_DATE_360 221
232 #define SC_OPCODE_MIN 222
233 #define SC_OPCODE_MAX 223
234 #define SC_OPCODE_SUM 224
235 #define SC_OPCODE_PRODUCT 225
236 #define SC_OPCODE_AVERAGE 226
237 #define SC_OPCODE_COUNT 227
238 #define SC_OPCODE_COUNT_2 228
239 #define SC_OPCODE_NPV 229
240 #define SC_OPCODE_IRR 230
241 #define SC_OPCODE_VAR 231
242 #define SC_OPCODE_VAR_P 232
243 #define SC_OPCODE_ST_DEV 233
244 #define SC_OPCODE_ST_DEV_P 234
245 #define SC_OPCODE_B 235
246 #define SC_OPCODE_NORM_DIST 236
247 #define SC_OPCODE_EXP_DIST 237
248 #define SC_OPCODE_BINOM_DIST 238
249 #define SC_OPCODE_POISSON_DIST 239
250 #define SC_OPCODE_COMBIN 240
251 #define SC_OPCODE_COMBIN_A 241
252 #define SC_OPCODE_PERMUT 242
253 #define SC_OPCODE_PERMUTATION_A 243
254 #define SC_OPCODE_PV 244
255 #define SC_OPCODE_SYD 245
256 #define SC_OPCODE_DDB 246
257 #define SC_OPCODE_DB 247
258 #define SC_OPCODE_VBD 248
259 #define SC_OPCODE_DURATION 249
260 #define SC_OPCODE_SLN 250
261 #define SC_OPCODE_PMT 251
262 #define SC_OPCODE_COLUMNS 252
263 #define SC_OPCODE_ROWS 253
264 #define SC_OPCODE_COLUMN 254
265 #define SC_OPCODE_ROW 255
266 #define SC_OPCODE_RRI 256
267 #define SC_OPCODE_FV 257
268 #define SC_OPCODE_NPER 258
269 #define SC_OPCODE_RATE 259
270 #define SC_OPCODE_IPMT 260
271 #define SC_OPCODE_PPMT 261
272 #define SC_OPCODE_CUM_IPMT 262
273 #define SC_OPCODE_CUM_PRINC 263
274 #define SC_OPCODE_EFFECTIVE 264
275 #define SC_OPCODE_NOMINAL 265
276 #define SC_OPCODE_SUB_TOTAL 266
277 #define SC_OPCODE_DB_SUM 267 /* database functions */
278 #define SC_OPCODE_DB_COUNT 268
279 #define SC_OPCODE_DB_COUNT_2 269
280 #define SC_OPCODE_DB_AVERAGE 270
281 #define SC_OPCODE_DB_GET 271
282 #define SC_OPCODE_DB_MAX 272
283 #define SC_OPCODE_DB_MIN 273
284 #define SC_OPCODE_DB_PRODUCT 274
285 #define SC_OPCODE_DB_STD_DEV 275
286 #define SC_OPCODE_DB_STD_DEV_P 276
287 #define SC_OPCODE_DB_VAR 277
288 #define SC_OPCODE_DB_VAR_P 278
289 #define SC_OPCODE_INDIRECT 279 /* management functions */
290 #define SC_OPCODE_ADDRESS 280
291 #define SC_OPCODE_MATCH 281
292 #define SC_OPCODE_COUNT_EMPTY_CELLS 282
293 #define SC_OPCODE_COUNT_IF 283
294 #define SC_OPCODE_SUM_IF 284
295 #define SC_OPCODE_LOOKUP 285
296 #define SC_OPCODE_V_LOOKUP 286
297 #define SC_OPCODE_H_LOOKUP 287
298 #define SC_OPCODE_MULTI_AREA 288
299 #define SC_OPCODE_OFFSET 289
300 #define SC_OPCODE_INDEX 290
301 #define SC_OPCODE_AREAS 291
302 #define SC_OPCODE_CURRENCY 292 /* string functions */
303 #define SC_OPCODE_REPLACE 293
304 #define SC_OPCODE_FIXED 294
305 #define SC_OPCODE_FIND 295
306 #define SC_OPCODE_EXACT 296
307 #define SC_OPCODE_LEFT 297
308 #define SC_OPCODE_RIGHT 298
309 #define SC_OPCODE_SEARCH 299
310 #define SC_OPCODE_MID 300
311 #define SC_OPCODE_TEXT 301
312 #define SC_OPCODE_SUBSTITUTE 302
313 #define SC_OPCODE_REPT 303
314 #define SC_OPCODE_CONCAT 304
315 #define SC_OPCODE_MAT_VALUE 305 /* matrix functions */
316 #define SC_OPCODE_MAT_DET 306
317 #define SC_OPCODE_MAT_INV 307
318 #define SC_OPCODE_MAT_MULT 308
319 #define SC_OPCODE_MAT_TRANS 309
320 #define SC_OPCODE_MATRIX_UNIT 310
321 #define SC_OPCODE_BACK_SOLVER 311 /* BackSolver */
322 #define SC_OPCODE_HYP_GEOM_DIST 312 /* statistical functions */
323 #define SC_OPCODE_LOG_NORM_DIST 313
324 #define SC_OPCODE_T_DIST 314
325 #define SC_OPCODE_F_DIST 315
326 #define SC_OPCODE_CHI_DIST 316
327 #define SC_OPCODE_WEIBULL 317
328 #define SC_OPCODE_NEG_BINOM_VERT 318
329 #define SC_OPCODE_CRIT_BINOM 319
330 #define SC_OPCODE_KURT 320
331 #define SC_OPCODE_HAR_MEAN 321
332 #define SC_OPCODE_GEO_MEAN 322
333 #define SC_OPCODE_STANDARD 323
334 #define SC_OPCODE_AVE_DEV 324
335 #define SC_OPCODE_SKEW 325
336 #define SC_OPCODE_DEV_SQ 326
337 #define SC_OPCODE_MEDIAN 327
338 #define SC_OPCODE_MODAL_VALUE 328
339 #define SC_OPCODE_Z_TEST 329
340 #define SC_OPCODE_T_TEST 330
341 #define SC_OPCODE_RANK 331
342 #define SC_OPCODE_PERCENTILE 332
343 #define SC_OPCODE_PERCENT_RANK 333
344 #define SC_OPCODE_LARGE 334
345 #define SC_OPCODE_SMALL 335
346 #define SC_OPCODE_FREQUENCY 336
347 #define SC_OPCODE_QUARTILE 337
348 #define SC_OPCODE_NORM_INV 338
349 #define SC_OPCODE_CONFIDENCE 339
350 #define SC_OPCODE_F_TEST 340
351 #define SC_OPCODE_TRIM_MEAN 341
352 #define SC_OPCODE_PROB 342
353 #define SC_OPCODE_CORREL 343
354 #define SC_OPCODE_COVAR 344
355 #define SC_OPCODE_PEARSON 345
356 #define SC_OPCODE_RSQ 346
357 #define SC_OPCODE_STEYX 347
358 #define SC_OPCODE_SLOPE 348
359 #define SC_OPCODE_INTERCEPT 349
360 #define SC_OPCODE_TREND 350
361 #define SC_OPCODE_GROWTH 351
362 #define SC_OPCODE_LINEST 352
363 #define SC_OPCODE_LOGEST 353
364 #define SC_OPCODE_FORECAST 354
365 #define SC_OPCODE_CHI_INV 355
366 #define SC_OPCODE_GAMMA_DIST 356
367 #define SC_OPCODE_GAMMA_INV 357
368 #define SC_OPCODE_T_INV 358
369 #define SC_OPCODE_F_INV 359
370 #define SC_OPCODE_CHI_TEST 360
371 #define SC_OPCODE_LOG_INV 361
372 #define SC_OPCODE_TABLE_OP 362
373 #define SC_OPCODE_BETA_DIST 363
374 #define SC_OPCODE_BETA_INV 364
375 #define SC_OPCODE_WEEK 365 /* miscellaneous */
376 #define SC_OPCODE_GET_DAY_OF_WEEK 366
377 #define SC_OPCODE_NO_NAME 367
378 #define SC_OPCODE_STYLE 368
379 #define SC_OPCODE_DDE 369
380 #define SC_OPCODE_BASE 370
381 #define SC_OPCODE_SHEET 371
382 #define SC_OPCODE_SHEETS 372
383 #define SC_OPCODE_MIN_A 373
384 #define SC_OPCODE_MAX_A 374
385 #define SC_OPCODE_AVERAGE_A 375
386 #define SC_OPCODE_ST_DEV_A 376
387 #define SC_OPCODE_ST_DEV_P_A 377
388 #define SC_OPCODE_VAR_A 378
389 #define SC_OPCODE_VAR_P_A 379
390 #define SC_OPCODE_EASTERSUNDAY 380
391 #define SC_OPCODE_DECIMAL 381
392 #define SC_OPCODE_CONVERT 382
393 #define SC_OPCODE_ROMAN 383
394 #define SC_OPCODE_MIRR 384
395 #define SC_OPCODE_CELL 385
396 #define SC_OPCODE_ISPMT 386
397 #define SC_OPCODE_HYPERLINK 387
398 #define SC_OPCODE_INDIRECT_XL 388 /* See also INDIRECT for OOO variant */
399 #define SC_OPCODE_ADDRESS_XL 389 /* See also ADDRESS for OOO variant */
400 #define SC_OPCODE_GET_PIVOT_DATA 390
401 #define SC_OPCODE_EUROCONVERT 391
402 #define SC_OPCODE_NUMBERVALUE 392
403 #define SC_OPCODE_CHISQ_DIST 393
404 #define SC_OPCODE_CHISQ_INV 394
405 #define SC_OPCODE_BITAND 395
406 #define SC_OPCODE_BITOR 396
407 #define SC_OPCODE_BITXOR 397
408 #define SC_OPCODE_BITRSHIFT 398
409 #define SC_OPCODE_BITLSHIFT 399
410 #define SC_OPCODE_GET_DATEDIF 400
411 #define SC_OPCODE_XOR 401
412 #define SC_OPCODE_AVERAGE_IF 402
413 #define SC_OPCODE_SUM_IFS 403
414 #define SC_OPCODE_AVERAGE_IFS 404
415 #define SC_OPCODE_COUNT_IFS 405
416 #define SC_OPCODE_SKEWP 406
417 #define SC_OPCODE_LENB 407
418 #define SC_OPCODE_RIGHTB 408
419 #define SC_OPCODE_LEFTB 409
420 #define SC_OPCODE_MIDB 410
421 #define SC_OPCODE_FILTERXML 411
422 #define SC_OPCODE_WEBSERVICE 412
423 #define SC_OPCODE_COVARIANCE_S 413
424 #define SC_OPCODE_COVARIANCE_P 414
425 #define SC_OPCODE_ST_DEV_P_MS 415
426 #define SC_OPCODE_ST_DEV_S 416
427 #define SC_OPCODE_VAR_P_MS 417
428 #define SC_OPCODE_VAR_S 418
429 #define SC_OPCODE_BETA_DIST_MS 419
430 #define SC_OPCODE_BETA_INV_MS 420
431 #define SC_OPCODE_BINOM_DIST_MS 421
432 #define SC_OPCODE_BINOM_INV 422
433 #define SC_OPCODE_CHI_DIST_MS 423
434 #define SC_OPCODE_CHI_INV_MS 424
435 #define SC_OPCODE_CHI_TEST_MS 425
436 #define SC_OPCODE_CHISQ_DIST_MS 426
437 #define SC_OPCODE_CHISQ_INV_MS 427
438 #define SC_OPCODE_CONFIDENCE_N 428
439 #define SC_OPCODE_CONFIDENCE_T 429
440 #define SC_OPCODE_F_DIST_LT 430
441 #define SC_OPCODE_F_DIST_RT 431
442 #define SC_OPCODE_F_INV_LT 432
443 #define SC_OPCODE_F_INV_RT 433
444 #define SC_OPCODE_F_TEST_MS 434
445 #define SC_OPCODE_EXP_DIST_MS 435
446 #define SC_OPCODE_HYP_GEOM_DIST_MS 436
447 #define SC_OPCODE_POISSON_DIST_MS 437
448 #define SC_OPCODE_WEIBULL_MS 438
449 #define SC_OPCODE_GAMMA_DIST_MS 439
450 #define SC_OPCODE_GAMMA_INV_MS 440
451 #define SC_OPCODE_LOG_NORM_DIST_MS 441
452 #define SC_OPCODE_LOG_INV_MS 442
453 #define SC_OPCODE_NORM_DIST_MS 443
454 #define SC_OPCODE_NORM_INV_MS 444
455 #define SC_OPCODE_STD_NORM_DIST_MS 445
456 #define SC_OPCODE_S_NORM_INV_MS 446
457 #define SC_OPCODE_T_DIST_MS 447
458 #define SC_OPCODE_T_DIST_RT 448
459 #define SC_OPCODE_T_DIST_2T 449
460 #define SC_OPCODE_T_INV_2T 450
461 #define SC_OPCODE_T_INV_MS 451
462 #define SC_OPCODE_T_TEST_MS 452
463 #define SC_OPCODE_PERCENTILE_INC 453
464 #define SC_OPCODE_PERCENT_RANK_INC 454
465 #define SC_OPCODE_QUARTILE_INC 455
466 #define SC_OPCODE_RANK_EQ 456
467 #define SC_OPCODE_PERCENTILE_EXC 457
468 #define SC_OPCODE_PERCENT_RANK_EXC 458
469 #define SC_OPCODE_QUARTILE_EXC 459
470 #define SC_OPCODE_RANK_AVG 460
471 #define SC_OPCODE_MODAL_VALUE_MS 461
472 #define SC_OPCODE_MODAL_VALUE_MULTI 462
473 #define SC_OPCODE_NEG_BINOM_DIST_MS 463
474 #define SC_OPCODE_Z_TEST_MS 464
475 #define SC_OPCODE_CEIL_MS 465
476 #define SC_OPCODE_CEIL_ISO 466
477 #define SC_OPCODE_FLOOR_MS 467
478 #define SC_OPCODE_NETWORKDAYS_MS 468
479 #define SC_OPCODE_WORKDAY_MS 469
480 #define SC_OPCODE_AGGREGATE 470
481 #define SC_OPCODE_COLOR 471
482 #define SC_OPCODE_CEIL_MATH 472
483 #define SC_OPCODE_CEIL_PRECISE 473
484 #define SC_OPCODE_NETWORKDAYS 474
485 #define SC_OPCODE_FLOOR_MATH 475
486 #define SC_OPCODE_FLOOR_PRECISE 476
487 #define SC_OPCODE_STOP_2_PAR 477 /* last function with two or more parameters' OpCode + 1 */
489 #define SC_OPCODE_STOP_FUNCTION SC_OPCODE_STOP_2_PAR /* last function's OpCode + 1 */
490 #define SC_OPCODE_LAST_OPCODE_ID (SC_OPCODE_STOP_FUNCTION - 1) /* last OpCode */
493 #define SC_OPCODE_INTERNAL_BEGIN 9999
494 #define SC_OPCODE_TTT 9999
495 #define SC_OPCODE_DEBUG_VAR 10000
496 #define SC_OPCODE_INTERNAL_END 10000
498 /*** from here on ExtraData contained ***/
499 #define SC_OPCODE_DATA_TOKEN_1 10001
501 #define SC_OPCODE_NONE 0xFFFF
503 #endif /* FORMULA_COMPILER_HRC */
505 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */