Конвертер программы с подмножества языка Си в Паскаль с использованием LL(1) метода синтаксического анализа (выражения)
Категория реферата: Рефераты по информатике, программированию
Теги реферата: спорт реферат, атанасян решебник
Добавил(а) на сайт: Dorofej.
Предыдущая страница реферата | 26 27 28 29 30 31 32 33 34 35 36 | Следующая страница реферата
int termin(char s)
{
char term[t]=','>','<','=','n','!','/','*',':','?','%','(',')',',';
int k,di=0;
for(k=0;k<=t-1;k++)
{
if(s==term[k]||s=='d'||s=='i'||s=='v'||s=='m'||s=='o'||s=='r'||s=='a'||s=='n')
{di=1;break;}
}
return di;
};
/*---------------------КОНЕЦ ТЕРМИНАЛЬНЫЕ СИМВОЛЫ--------------------------*/
/*-----------------------ДЕСКРИПТОРНЫЙ ТЕКСТ---------------------------------*/
int lexica()
{ int di(0),q(0),w(0),i1,i;
i=0;
printf("Дескрипторный текст:n");
do
{
di=termin(s1[i]);
if(di==1)
{
switch(s1[i])
{
case '(': a[w]=0;break;
case ')': a[w]=1;break;
case '%': if(s1[i+1]=='='){a[w]=27;i++;}else a[w]=6;break;
case '*': if(s1[i+1]=='='){a[w]=23;i++;}else a[w]=7;break;
case '/': if(s1[i+1]=='='){a[w]=26;i++;}else a[w]=8;break;
case '=': if(s1[i+1]=='='){a[w]=16;i++;}else a[w]=22;break;
case '!': if(s1[i+1]=='=')a[w]=15;i++;break;
case '>': if(s1[i+1]=='='){a[w]=13;i++;}else a[w]=12;break;
case '<': if(s1[i+1]=='='){a[w]=14;i++;}else a[w]=11;break;
case '+': if(s1[i+1]=='+'){a[w]=4;i++;}else if(s1[i+1]=='='){a[w]=24;i++;}else a[w]=9;break;
case '-': if(s1[i+1]=='-'){a[w]=5;i++;}else if(s1[i+1]=='='){a[w]=25;i++;}else a[w]=10;break;
case '&': if(s1[i+1]=='&')a[w]=18;i++;break;
case '|': if(s1[i+1]=='|')a[w]=17;i++;break;
case ',': a[w]=21;break;
case '?': a[w]=19;break;
case ':': a[w]=20;break;
}
i++;
}
else
{
i1=i;
while(di!=1)
{
i++;
di=termin(s1[i]);
Рекомендуем скачать другие рефераты по теме: продажа рефератов, ломоносов реферат.
Предыдущая страница реферата | 26 27 28 29 30 31 32 33 34 35 36 | Следующая страница реферата