case TOKEN_IDENT:
case TOKEN_TYPENAME:
case TOKEN_KEYWORD:
- for (i = 0; i < GMQCC_ARRAY_COUNT(ftepp_math_constants); i++) {
- if (!strcmp(ftepp_math_constants[i][0], ftepp_tokval(ftepp))) {
- mathconstant = true;
- break;
+ if (OPTS_FLAG(FTEPP_MATHDEFS)) {
+ for (i = 0; i < GMQCC_ARRAY_COUNT(ftepp_math_constants); i++) {
+ if (!strcmp(ftepp_math_constants[i][0], ftepp_tokval(ftepp))) {
+ mathconstant = true;
+ break;
+ }
}
}
macro = ftepp_macro_find(ftepp, ftepp_tokval(ftepp));
- /* ignore creating a math macro if one is already present */
- if (macro && mathconstant)
- break;
+ if (OPTS_FLAG(FTEPP_MATHDEFS)) {
+ /* user defined ones take precedence */
+ if (macro && mathconstant) {
+ ftepp_macro_delete(ftepp, ftepp_tokval(ftepp));
+ macro = NULL;
+ }
+ }
if (macro && ftepp->output_on) {
if (ftepp_warn(ftepp, WARN_CPP, "redefining `%s`", ftepp_tokval(ftepp)))
ftepp_add_macro(ftepp, "__NULL__", "nil");
/* add all the math constants if they can be */
- for (i = 0; i < GMQCC_ARRAY_COUNT(ftepp_math_constants); i++)
- if (!ftepp_macro_find(ftepp, ftepp_math_constants[i][0]))
- ftepp_add_macro(ftepp, ftepp_math_constants[i][0], ftepp_math_constants[i][1]);
+ if (OPTS_FLAG(FTEPP_MATHDEFS)) {
+ for (i = 0; i < GMQCC_ARRAY_COUNT(ftepp_math_constants); i++)
+ if (!ftepp_macro_find(ftepp, ftepp_math_constants[i][0]))
+ ftepp_add_macro(ftepp, ftepp_math_constants[i][0], ftepp_math_constants[i][1]);
+ }
return ftepp;
}