diff options
Diffstat (limited to 'include/ixion/formula_function_opcode.hpp')
-rw-r--r-- | include/ixion/formula_function_opcode.hpp | 370 |
1 files changed, 370 insertions, 0 deletions
diff --git a/include/ixion/formula_function_opcode.hpp b/include/ixion/formula_function_opcode.hpp new file mode 100644 index 0000000..ddfabc3 --- /dev/null +++ b/include/ixion/formula_function_opcode.hpp @@ -0,0 +1,370 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef INCLUDED_IXION_FORMULA_FUNCTION_OPCODE_HPP +#define INCLUDED_IXION_FORMULA_FUNCTION_OPCODE_HPP + +#include "env.hpp" + +#include <cstdint> +#include <string_view> + +namespace ixion { + +/** + * Enum that represents built-in formula functions. + */ +enum class formula_function_t : uint16_t +{ + func_unknown = 0, + func_abs, + func_acos, + func_acosh, + func_acot, + func_acoth, + func_address, + func_aggregate, + func_and, + func_arabic, + func_areas, + func_asc, + func_asin, + func_asinh, + func_atan, + func_atan2, + func_atanh, + func_avedev, + func_average, + func_averagea, + func_averageif, + func_averageifs, + func_b, + func_bahttext, + func_base, + func_betadist, + func_betainv, + func_binomdist, + func_bitand, + func_bitlshift, + func_bitor, + func_bitrshift, + func_bitxor, + func_ceiling, + func_cell, + func_char, + func_chidist, + func_chiinv, + func_chisqdist, + func_chisqinv, + func_chitest, + func_choose, + func_clean, + func_code, + func_color, + func_column, + func_columns, + func_combin, + func_combina, + func_concat, + func_concatenate, + func_confidence, + func_correl, + func_cos, + func_cosh, + func_cot, + func_coth, + func_count, + func_counta, + func_countblank, + func_countif, + func_countifs, + func_covar, + func_critbinom, + func_csc, + func_csch, + func_cumipmt, + func_cumprinc, + func_current, + func_date, + func_datedif, + func_datevalue, + func_daverage, + func_day, + func_days, + func_days360, + func_db, + func_dcount, + func_dcounta, + func_ddb, + func_dde, + func_decimal, + func_degrees, + func_devsq, + func_dget, + func_dmax, + func_dmin, + func_dollar, + func_dproduct, + func_dstdev, + func_dstdevp, + func_dsum, + func_dvar, + func_dvarp, + func_eastersunday, + func_effect, + func_encodeurl, + func_errortype, + func_euroconvert, + func_even, + func_exact, + func_exp, + func_expondist, + func_fact, + func_false, + func_fdist, + func_filterxml, + func_find, + func_findb, + func_finv, + func_fisher, + func_fisherinv, + func_fixed, + func_floor, + func_forecast, + func_formula, + func_fourier, + func_frequency, + func_ftest, + func_fv, + func_gamma, + func_gammadist, + func_gammainv, + func_gammaln, + func_gauss, + func_gcd, + func_geomean, + func_getpivotdata, + func_goalseek, + func_growth, + func_harmean, + func_hlookup, + func_hour, + func_hyperlink, + func_hypgeomdist, + func_if, + func_iferror, + func_ifna, + func_ifs, + func_index, + func_indirect, + func_info, + func_int, + func_intercept, + func_ipmt, + func_irr, + func_isblank, + func_iserr, + func_iserror, + func_iseven, + func_isformula, + func_islogical, + func_isna, + func_isnontext, + func_isnumber, + func_isodd, + func_isoweeknum, + func_ispmt, + func_isref, + func_istext, + func_jis, + func_kurt, + func_large, + func_lcm, + func_left, + func_leftb, + func_len, + func_lenb, + func_linest, + func_ln, + func_log, + func_log10, + func_logest, + func_loginv, + func_lognormdist, + func_lookup, + func_lower, + func_match, + func_max, + func_maxa, + func_maxifs, + func_mdeterm, + func_median, + func_mid, + func_midb, + func_min, + func_mina, + func_minifs, + func_minute, + func_minverse, + func_mirr, + func_mmult, + func_mod, + func_mode, + func_month, + func_multirange, + func_munit, + func_mvalue, + func_n, + func_na, + func_neg, + func_negbinomdist, + func_networkdays, + func_nominal, + func_normdist, + func_norminv, + func_normsdist, + func_normsinv, + func_not, + func_now, + func_nper, + func_npv, + func_numbervalue, + func_odd, + func_offset, + func_or, + func_pduration, + func_pearson, + func_percentile, + func_percentrank, + func_permut, + func_permutationa, + func_phi, + func_pi, + func_pmt, + func_poisson, + func_power, + func_ppmt, + func_prob, + func_product, + func_proper, + func_pv, + func_quartile, + func_radians, + func_rand, + func_rank, + func_rate, + func_rawsubtract, + func_regex, + func_replace, + func_replaceb, + func_rept, + func_right, + func_rightb, + func_roman, + func_round, + func_rounddown, + func_roundsig, + func_roundup, + func_row, + func_rows, + func_rri, + func_rsq, + func_search, + func_searchb, + func_sec, + func_sech, + func_second, + func_sheet, + func_sheets, + func_sign, + func_sin, + func_sinh, + func_skew, + func_skewp, + func_sln, + func_slope, + func_small, + func_sqrt, + func_standardize, + func_stdev, + func_stdeva, + func_stdevp, + func_stdevpa, + func_steyx, + func_style, + func_substitute, + func_subtotal, + func_sum, + func_sumif, + func_sumifs, + func_sumproduct, + func_sumsq, + func_sumx2my2, + func_sumx2py2, + func_sumxmy2, + func_switch, + func_syd, + func_t, + func_tan, + func_tanh, + func_tdist, + func_text, + func_textjoin, + func_time, + func_timevalue, + func_tinv, + func_today, + func_transpose, + func_trend, + func_trim, + func_trimmean, + func_true, + func_trunc, + func_ttest, + func_type, + func_unichar, + func_unicode, + func_upper, + func_value, + func_var, + func_vara, + func_varp, + func_varpa, + func_vdb, + func_vlookup, + func_wait, + func_webservice, + func_weekday, + func_weeknum, + func_weibull, + func_xor, + func_year, + func_ztest, +}; + +/** + * Get a string representation of a formula function opcode. + * + * @param func formula function opcode. + * + * @return string representation of the opcode. + */ +IXION_DLLPUBLIC std::string_view get_formula_function_name(formula_function_t func); + +/** + * Get a formula function opcode from a formula function name. + * + * @param s formula function name. + * + * @return formula function opcode representing the specified name. + */ +IXION_DLLPUBLIC formula_function_t get_formula_function_opcode(std::string_view s); + +} + +#endif +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |