tr);
}
}
{/ * Це змінна */i = parser_variable_find (cb-> variable_list, currToken.str); (i> -1)
{* var = cb-> variable_list [i]; _value_copy (& var-> val, & v1);
}
{
/* Невідома змінна або ідентифікатор */
v1.error = parser_format_string ("Невідомий ідентифікатор '% s'.", currToken.str);
}
} _end_ident: _get_token (cb, & currToken);
}; TOK_STRING:
/* Рядок цитати "або '*/_value_set_to_string (& v1, currToken.str); _get_token (cb, & currToken);;' n ':'; ': p>
/* Кінець або порожній оператор * /. type = ' n';
lexer_get_token (cb, & currToken);;:. error = parser_format_string ("Невідомий знак '% s'", currToken.str); _get_token (cb, & currToken);
} _PAR2 ("ВІДЛАДКА parser_level5: type =% d Значення v1 =% s. n", val.type, parser_value_show_as_string (& v1)); v1;
} do_boolean_str (int oper, ParserVal * v1, ParserVal * v2)
{_convert_to_string (v1); _convert_to_string (v2); ret = strcmp (v1-> s, v2-> s); (oper)
{
/* v1 == v2 */TOK_EQ: _value_set_to_numeric (v1, (double) (ret == 0));;
/* v1> v2 */TOK_GT: _value_set_to_numeric (v1, (double) (ret> 0));;
/* v1> = v2 */TOK_GE: _value_set_to_numeric (v1, (double) (ret> 0 | | ret == 0));;
/* v1
/* v1 <= v2 */TOK_LE: _value_set_to_numeric (v1, (double) (ret <0 | | ret == 0));;
/* v1 && v2 */TOK_AND: (! (parser_strlen (v1-> s) && parser_strlen (v2-> s)))
{
/* Set v1 to zero (FALSE) */_value_free (v1);
};
/* v1 | | v2 */TOK_OR: (! parser_strlen (v1-> s))
{
/* Copy v2 to v1 */_value_free (v1); _value_copy (v2, v1);
};
}
} do_boolean (int oper, ParserVal * v1, ParserVal * v2)
{(is_string (v1) | | is_string (v2))
{_boolean_str (oper, v1, v2);;
} _convert_to_numeric (v1); _convert_to_numeric (v2); (oper)
{
/* v1 == v2 */TOK_EQ: -> d = (v1-> d == v2-> d);;
/* v1> v2 */TOK_GT: -> d = (v1-> d> v2-> d);;
/* v1> = v2 */TOK_GE: -> d = (v1-> d> = v2-> d);;
/* v1 d = (v1-> d d);;
/* v1 <= v2 */TOK_LE: ...