Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые обзорные » Створення програми-інтерпретатора для обробки вихідних текстів програм, що виконують дії над комплексними числами

Реферат Створення програми-інтерпретатора для обробки вихідних текстів програм, що виконують дії над комплексними числами





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 ':'; ':

/* Кінець або порожній оператор * /. 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: ...


Назад | сторінка 8 з 21 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Double Standards in Modern Politics
  • Реферат на тему: Double Entry Types of Balance Sheet
  • Реферат на тему: Double electric layer. Mechanism of formation and theory of structure
  • Реферат на тему: Сонце як змінна зірка
  • Реферат на тему: Змінна продуктивність канатної установки