Разработка синтаксического распознавателя вычисляемого оператора перехода языка FORTRAN
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: оформление доклада, рассказы
| Добавил(а) на сайт: Butylin.
Предыдущая страница реферата | 1 2 3 4 5 6 7 | Следующая страница реферата
{ int j; int i=0; int k=0; static int a=0; char tmp[80]; char label=NO; strcpy(STR,string);
fprintf(errors,"––––––––––––––––––––––––––––––––––––––––––––––––––––––––n")
; fprintf(errors,"%sn",string);
fprintf(errors,"––––––––––––––––––––––––––––––––––––––––––––––––––––––––n")
; do
{ tmp[0]=NULL; j=0; while(!isspace(string[k++]) && string[k-1]!=NULL)
{ tmp[j++]=string[k-1];
} tmp[j]=NULL; if((strcmp(tmp,"GOTO") != 0) && !isdigit(tmp[0]))
{
#ifdef TEST
cprintf("Не определен идентификатор %s.rn",tmp);
#endif
ERR1=a;
ERR2=i; i++;
Error(5,tmp);
} else if(!isdigit(tmp[0]))
{ label=YES;
ERR1=a;
ERR2=i; pos=k; while(AB()!=OK); break;
}
} while(string[k] != NULL); if(label==NO)
{
#ifdef TEST
cprintf("Не найден оператор GOTO.rnСтрока разбору не подлежит.rn");
#endif
Error(6);
} a++; return(OK);
}
//(((((((((((((((((((((((((((((((((((((((
// Удаление в строке пробелов.
//(((((((((((((((((((((((((((((((((((((((
void Delspace(char* string)
{ char str[STR_LEN]; int j=0; int i=0; while(isspace(string[i]) && string[i] != NULL) i++; for(;string[i] != NULL;i++)
{ if(islower(string[i])) string[i]=toupper(string[i]); str[j++]=string[i];
} str[j]=NULL; sprintf(string,"%s",str); string[j-1]=NULL;
#ifdef TEST
textattr(30);
clreol();
cputs(string);
textattr(78);
cputs("rn");
#endif
}
//(((((((((((((((((((((((((((((((((((((((
// Реализация нетерминала .
//(((((((((((((((((((((((((((((((((((((((
int AB(void)
{
#ifdef TEST
cprintf("AB - Проверка на Арифметическое Выражение.rn");
#endif fprintf(errors,"AB - Проверка на Арифметическое Выражение.n");
Рекомендуем скачать другие рефераты по теме: бесплатные дипломные работы скачать, курсовые работы.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 6 7 | Следующая страница реферата