Разработка синтаксического распознавателя вычисляемого оператора перехода языка FORTRAN — страница 10

  • Просмотров 2143
  • Скачиваний 165
  • Размер файла 23
    Кб

Текущий символ '%c' с кодом %d.\r\n",STR[pos],STR[pos]); getch(); #endif fprintf(errors,"SCAN - Сканирование. Текущий символ '%c' с кодом %d.\n",STR[pos],STR[pos]); nx=STR[pos]; pos++; } //¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾ // Обработка ошибок.

//¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾ void Error(int num,char* s) { char *E[40]= { "Ожидается '+' или '-'", "Ожидается '*', '/' или '**'", "Ожидается ')'", "Ожидается идентификатор или Дробное без знака", "Не определен идентификатор ", "Не найден оператор GOTO\r\nСтрока разбору не подлежит", NULL };

sprintf(mes[ERR1][ERR2],"%s%s",E[num-1],s); fprintf(errors,"––––––––––––––––––––––––––––––––––––––––––––––––––––––––\n"); fprintf(errors,"Error - Ошибка строка %d, ошибка # %d.\n",ERR1,ERR2); #ifdef TEST cprintf("Error - Ошибка: строка # %d, ошибка # %d.\r\n",ERR1,ERR2); cprintf("%s\r\n",mes[ERR1][ERR2]); Beep(1000,200); getch(); #endif fprintf(errors,"%s\n",mes[ERR1][ERR2]); fprintf(errors,"––––––––––––––––––––––––––––––––––––––––––––––––––––––––\n");

ERR2++; mes[ERR1][ERR2][0]=NULL; } //¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾ // Подключаемый файл. //¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾ #include"intface.h" // Файл с функциями интерфейса.

//¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾ // Ó 1997 Борзов Андрей Hиколаевич. E-mail: ANDREY@RedHouse.nstu.nsk.su. //¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾ Литература. 1. Курс лекций по

системному программированию. 2. Герберт Шилдт «C для профессиональных программистов».