}
else if (fr_sbuff_next_if_char(&our_in, '-')) { /* unary minus */
+ fr_sbuff_skip_whitespace(&our_in);
+
+ /*
+ * -4 is a number, not minus(4).
+ */
+ if (fr_sbuff_is_digit(&our_in)) goto field;
+
func = xlat_func_find("unary_minus", 11);
fr_assert(func != NULL);
c = '-';
c = '+';
check_for_double:
+ fr_sbuff_skip_whitespace(&our_in);
fr_sbuff_skip_whitespace(&our_in);
if (fr_sbuff_next_if_char(&our_in, c)) {
fr_strerror_const("Double operator is invalid");
* that we return that, and not the child node
*/
if (!func) {
+ field:
return tokenize_field(head, out, in, p_rules, t_rules, bracket_rules, out_c);
}