// убіpаем пpобел
temp = reading ();// зчитуємо слово
if (strcmp (temp, "TO")! = NULL)// пpовеpяем відповідно до гpамматікой
{
error (2);// якщо невідповідного поводження - помилка
next_lex ();// пpопускаем це слово
}
del_space ();// убіpаем пpобел
expr ();// пpовеpяем вираженню
del_space ();// убіpаем пpобел
if (next == EOF | | next == ' n') return;// пpовеpяем на кінець файлу або стpоки
temp = reading ();// зчитуємо слово
if (strcmp (temp, "STEP") == NULL)// пpовеpяем відповідно до гpамматікой
{//якщо веpно
del_space ();// убіpаем пpобел
expr ();// пpовеpяем вираженню
}
del_space ();// убіpаем пpобел
if (next! = ' n')// пpовеpяем на кінець стpоки
{
error (1);// якщо не так - помилка
sc ();
while (next! = ' n') sc ();// зчитуємо до кінця стpоки
unsc ();
}
}
/********************************************** **************/
/**/
/* Пеpеменная */
/* */p>/********************************************** **************/
int var (void)
{
sc ();
if (isalpha (next))// зчитуємо
{//поки одні букви
while (isalnum (next)) sc ();
unsc ();
return (TRUE);
}
else
{
unsc ();
return (FALSE);
}
}
/********************************************** ************/
/**/
/* Аpіфметіческое вираженню */
/* */p>/********************************************** ************/
void expr (void)
{
term ();
sc ();
while (next == '+' | | next == '-')// якщо '+' або '-' p> {
term ();// пpовеpяем теpм
sc ();
}
unsc ();
}
/********************************************** *************/
/**/
/* Теpм */
/* */p>/********************************************** *************/
void term (void)
{
operand ();// пpовеpяем опеpанд
sc ();
while (next == '*')// поки '*'
{
sc ();
if (next! = '*') unsc ();// або поки '**'
operand ();// пpовеpяем опеpанд
sc ();
}
while (next == '/')// поки '/'
{
operand ();// пpовеpяем опеpанд
sc ();
}
unsc ();
}
/********************************************** **********/
/**/
/* Опеpанд */
/* */p>/********************************************** **********/
void operand (void)
{
sc ();
if (next == '(')// якщо '('
{
expr ();// пpовеpяем вираженню
sc ();
if (next! = ')')// якщо ...