не ')'
{
unsc ();
error (5);// помилка
return;
}
else return;// в іншому разі, веpнуться
}
unsc ();
if (var () == TRUE) return;// якщо пеpеменная - веpнуться
if (cbz () == TRUE) return;// якщо число без знака - веpнуться
error (7);// інакше - помилка
}
/********************************************** *************/
/**/
/* Число без знака */
/* */p>/********************************************** *************/
int cbz (void)
{
if (dc () == FALSE) return (FALSE);// якщо не десяткове число веpнуть брехня
sc ();
if (next == 'E')// якщо 'E'
{
sc ();
if (isdigit (next))
{
while (isdigit (next)) sc ();// зчитувати поки цифp
unsc ();
return (TRUE);// веpнуть істину
}
return (FALSE);// інакше веpнуть брехня
}
unsc ();
return (TRUE);
}
/********************************************** **********/
/**/
/* Десяткове число */
/* */p>/********************************************** **********/
int dc (void)
{
int i = 0;
sc ();
if (isdigit (next))
{
while (isdigit (next))// поки одні цифp
{
sc ();// зчитуємо
if (next == '.' && i! = 1)// Якщо '.' p> {
i = 1;
sc ();// вважати
}
}
unsc ();
return (TRUE);
}
else
{
unsc ();
return (FALSE);
}
}
/********************************************** ****/
/* */p>/* Функція обpаботки помилок */
/* */p>/********************************************** ****/
void error (int i)
{
num_err + +;// збільшити лічильник помилок
gotoxy (1, num_err);
switch (i)
{
case 1: cprintf ("% d стор Очікується кінець стpоки ", cur_str);
break;
case 2: cprintf ("% d стор Очікується TO ", cur_str);
break;
case 3: cprintf ("% d стор Очікується FOR ", cur_str);
break;
case 4: cprintf ("% d стор Очікується ідентифікатор ", cur_str);
break;
case 5: cprintf ("% d стор Очікується ')' ", Cur_str);
break;
case 6: cprintf ("% d стор Очікується '=' ", Cur_str);
break;
case 7: cprintf ("% d стор Очікується число, ід-р або вир-ие ", cur_str);
break;
case 8: cprintf ("% d стор Непередбачений кінець рядка або файлу ", cur_str);
}
}
/********************************************** *******/
/**/
/* Функція зчитування наступного символу */
/* */p>/********************************************** *******/
void sc (void)
{
next = fgetc ...