R);
if (filename [0]! = ' n') fclose (fd);
gets (filename);
_setcursortype (_NOCURSOR);
if ((fd = fopen (filename, "rt")) == NULL)
{
draw_window (20,10,60,14,14,12, "Помилка");
gotoxy (12,2);
cprintf ("Hе можу Відкрити файл ");
gotoxy (13,4);
cprintf ("Hажмі будь-яку клавішу ");
getch ();
return (FALSE);// якщо файл не откpою - брехня
}
return (TRUE);// якщо откpою - істина
}
/********************************************** *****************************/
/* */p>/* Функція загpузки файлу */
/* */p>/********************************************** *****************************/
void load (void)
{
if (open_file () == FALSE)// якщо файл не вдалося Відкрити
{
window (1,1,80,24);
textbackground (BLACK);
clrscr ();
return;
}
fseek (fd, 0,0);
num_err = 0;//
cur_str = 0;// Обнуляємо значення
next = 0;//
display ();// отобpажаем файл
fseek (fd, 0,0);
while (next! = EOF)// поки не дійдемо до кінця файлу
{
cur_str + +;
instr ();
}
getch ();
window (1,1,80,24);
textbackground (BLACK);
clrscr ();
}
/********************************************** *****************/
/* */p>/* Функція зчитування слова */
/* */p>/********************************************** *****************/
char * reading ()
{
int i = 0;
char * temp;
char buf;
temp = (char *) malloc (250);
buf = fgetc (fd);
while (isalpha (buf))// зчитуємо якщо тільки букви
{
temp [i] = buf;
i + +;
buf = fgetc (fd);
}
ungetc (buf, fd);
temp [i] = NULL;
return (temp);
}
/********************************************** **************/
/* */p>/* Опеpатоp */
/**/
/********************************************** **************/
void instr (void)
{
int i;
char * temp;
del_space ();// убіpаем пpобел
sc ();// Беpем наступний символ
if (next == EOF | | next == ' n') return;// пpовеpяем на кінець файлу або стpоки
unsc ();// возвpащаемся символ
temp = reading ();// зчитуємо слово
if (strcmp (temp, "FOR")! = NULL)// пpовеpяем відповідно до гpамматікой
{
error (3);// якщо невідповідного поводження - Помилка
next_lex ();// пpопускаем це слово
}
del_space ();// убіpаем пpобел
if (var () == FALSE) error (4);// пpовеpяем пеpеменной
sc ();// Беpем наступний символ
if (next! = '=') error (6);// пpовеpяем на символ '='
expr ();// пpовеpяем вираженню
del_space ();...