Xreferat.com » Рефераты по информатике и программированию » Построение формального языка L

Построение формального языка L

case ESC:

window(1,1,80,25);

textbackground(BLACK);

textcolor(WHITE);

clrscr();

fclose(fl_t);

exit(1);

}

}

}


//----------------------------------------------------------------------------

// Распечатывает текст, выводит на экран ошибки, найденные в обрабатываемой

// (текущей) строке

//----------------------------------------------------------------------------

void print_page()

{

int i,xx=10;

puttext(1,1,80,25,screen);

for(i=0;i<=15;i++) //очистка массива ошибок

mistake_number[i] = 0;

strange[0]=NULL;

s=0;

x=cur_y+position-3;

y=0;

f=0;

fprintf(fl_t,"______________________________________________________________________________n");

fprintf(fl_t,"Обрабатываем строчку - %sn",TEXT[x]);

scan(); //вызывает сканер для разбора строки

fprintf(fl_t,"n Найденные ошибки в строке %sn",TEXT[x]);

for(i=0;i<=15;i++)

if(mistake_number[i] == 1)

{

gotoxy(4,xx++);

printf("%s ",mistake[i]);

fprintf(fl_t," %sn",mistake[i]);

if(i==10 && mistake_number[i] == 1)

{

printf(" %s",strange);

fprintf(fl_t," %sn",strange);

}

}

if(xx == 10) //ошибок нет, т.к. координаты строки

{ //неизменились (xx)

gotoxy(4,xx++);

printf("%s ",mistake[0]);

}

textbackground(BLACK);

textcolor(WHITE);

if(TEXT[0][0]!=NULL)

{

for (i=1;i<6;i++)

{

if(TEXT[i-1+position][0]==NULL) break;

gotoxy(1,i+2);

puts(TEXT[i-1+position]);

}

}

gotoxy(1,cur_y);

textbackground(RED);

clreol();

puts(TEXT[cur_y+position-3]);

}


//----------------------------------------------------------------------------

// Выводит на экран текст с помощью

//----------------------------------------------------------------------------

void help_line(void)

{

window(1,1,80,25);

textbackground(BLACK);

clrscr();

textbackground(GREEN);

textcolor(BLACK);

gotoxy(1,1);

clreol();

printf(" Borland C++ Веpсия только для опеpатоpа WHILE");

gotoxy(1,25);

textbackground(LIGHTCYAN);

clreol();

cprintf(" F1 - Помощь F2 - Грамматика F3 - Язык оператора ALT+X-Выход");

gotoxy(1,2);

textbackground(LIGHTCYAN);

clreol();

printf("------------------------------- CОДЕРЖИМОЕ ФАЙЛА -------------------------------");

gotoxy(1,8);

textbackground(LIGHTCYAN);

clreol();

printf("------------------------------ СООБЩЕНИЯ ОБ ОШИБКАХ ----------------------------");

gotoxy(1,9);

gettext(1,1,80,25,screen);

gettext(1,9,80,24,screen1);

}


//----------------------------------------------------------------------------

// Выводит на экран текст, в зависимости от значения n

//----------------------------------------------------------------------------

void help(int n)

{

char string[4096];

gettext(1,8,80,22,string);

window(1,8,80,22);

textbackground(CYAN);

textcolor(BLACK);

clrscr();

gotoxy(1,1);

if(n ==1)

{

cprintf("n HОВОСИБИРСКИЙ ГОСУДАРСТВЕHHЫЙ ТЕХHИЧЕСКИЙ УHИВЕРСИТЕТnrr");

cprintf(" Куpсовая pабота по дисциплине СИСТЕМHОЕ ПРОГРАММИРОВАHИЕnrr");

cprintf(" Синтаксический pаспознавательnnrrr");

cprintf(" Используемые клавиши:rn");

cprintf(" F1 - данный HELP.rn");

cprintf(" F2 - гpамматика языка.rn");

cprintf(" F3 - язык оператора.rn");

cprintf(" Esc - выход из программы.rn");

cprintf(" Alt-X - выход из программы.rnnn");

cprintf(" (c) 1997 Стариков Дмитрий Александрович");

}

if(n == 2)

{

cprintf("n ГРАММАТИКА ЯЗЫКАnnrr");

cprintf(" 1. <оператор> -> WHILE ()[];nrr");

cprintf(" 2. -> T| >T | <=T | >=T | !=Tnrrr");

cprintf(" 3. T -> O | T+O | T-O | T*O | T/O | T**Onrrr");

cprintf(" 4. O ->() | | <ЦБЗ>nrrr");

cprintf(" 5. -> Б{Б|Ц}rrrrn");

cprintf(" 6. <ЦБЗ> -> Ц{Ц}rn");

cprintf(" 7. -> ([

{,

}])rn");

cprintf(" 8.

-> | <ЦБЗ> rn");

}

if(n == 3)

{

cprintf("n ЯЗЫК ОПЕРАТОРАnnnrr");

cprintf(" WHILE(AB) [FUNCTION([PAR,PAR,...])];rnn");

cprintf(" AB - Выражение rn");

cprintf(" FUNCTION - функцияrn");

cprintf(" PAR - параметры функции, могут быть цифры или текст rn");

cprintf(" количество их не ограниченоrnn");

cprintf(" Пробелы между символами недопустимыrnnn");

}

getch();

puttext(1,8,80,22,string);

window(1,1,80,25);

Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.), обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.

Поможем написать работу на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту

Похожие рефераты: