validate-utils: simplify _read_builtin ()

This commit is contained in:
Luis de Bethencourt 2015-05-29 16:29:44 +01:00
parent 1e3084aa95
commit 0cfff156b1

View file

@ -344,7 +344,7 @@ _read_argument (MathParser * parser)
static gdouble static gdouble
_read_builtin (MathParser * parser) _read_builtin (MathParser * parser)
{ {
gdouble v0 = 0.0, v1 = 0.0; gdouble v0;
gchar c, token[PARSER_MAX_TOKEN_SIZE]; gchar c, token[PARSER_MAX_TOKEN_SIZE];
gint pos = 0; gint pos = 0;
@ -358,26 +358,24 @@ _read_builtin (MathParser * parser)
if (_peek (parser) == '(') { if (_peek (parser) == '(') {
_next (parser); _next (parser);
if (g_strcmp0 (token, "min") == 0) { v0 = _read_argument (parser);
v0 = _read_argument (parser);
v1 = _read_argument (parser); if (g_strcmp0 (token, "min") == 0)
v0 = MIN (v0, v1); v0 = MIN (v0, _read_argument (parser));
} else if (g_strcmp0 (token, "max") == 0) { else if (g_strcmp0 (token, "max") == 0)
v0 = _read_argument (parser); v0 = MAX (v0, _read_argument (parser));
v1 = _read_argument (parser); else {
v0 = MAX (v0, v1);
} else {
_error (parser, "Tried to call unknown built-in function!"); _error (parser, "Tried to call unknown built-in function!");
return 0.0;
} }
if (_next (parser) != ')') if (_next (parser) != ')')
_error (parser, "Expected ')' in built-in call!"); _error (parser, "Expected ')' in built-in call!");
} else { } else {
if (parser->variable_func != NULL if (parser->variable_func == NULL
&& parser->variable_func (token, &v1, parser->user_data)) { || !parser->variable_func (token, &v0, parser->user_data)) {
v0 = v1;
} else {
_error (parser, "Could not look up value for variable %s!"); _error (parser, "Could not look up value for variable %s!");
return 0.0;
} }
} }
} else { } else {