• 大小: 4KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-08-03
  • 语言: 其他
  • 标签: 词法  语法  语义  

资源简介

编译原理的课后附录实验,是源程序哦!运行好的!

资源截图

代码片段和文件信息

# include 
# include 
char prog[80]token[8];
char ch;
int synp=0mnsum=0;
char *rwtab[6]={“begin““if““then““while““do““end“};
void scaner();
main()
{
 p=0;
 printf(“********************词法分析程序***************\n“);
 printf(“\n please input string:\n“);
 do{
   ch=getchar();//scanf(“%c“&ch); 
       prog[p++]=ch;
   }while(ch!=‘#‘);
p=0;
 do{
  scaner();
  switch(syn)
  {
  case 11:printf(“(11%d)“sum);break;
  case -1:printf(“error!“);break;
  default:printf(“(%d%s)“syntoken);
  }
 }while(syn!=0);
}
void scaner()
{
 for(n=0;n<8;n++) token[n]=NULL;
 ch=prog[p++];
 while(ch==‘ ‘) ch=prog[p++];
 if((ch>=‘a‘&&ch<=‘z‘)||(ch>=‘A‘&&ch<=‘Z‘))
 {
  m=0;
  while((ch>=‘a‘&&ch<=‘z‘)||(ch>=‘A‘&&ch<=‘Z‘)||(ch>=‘0‘&&ch<=‘9‘))
  {
   token[m++]=ch;
   ch=prog[p++];
  }
  token[m++]=‘\0‘;
  --p;
  syn=10;
  for(n=0;n<6;n++)
   if(strcmp(tokenrwtab[n])==0)
   {
    syn=n+1;
    break;
   }
 }
 else
 {
  if(ch>=‘0‘&&ch<=‘9‘)
  {
   while(ch>=‘0‘&&ch<=‘9‘)
   {
    sum=sum*10+(ch-‘0‘);
    ch=prog[p++];
   }
   --p;
   syn=11;
  }
  else{
   switch(ch)
   {
case‘<‘: m=0;token[m++]=ch;
         ch=prog[p++];
if(ch==‘>‘)
{
syn=21;
token[m++]=ch;
}else if(ch==‘=‘){
syn=22;
token[m++]=ch;
}else{
      syn=20;
      --p;
     }
     break;
        case ‘>‘:token[m++]=ch;
ch=prog[p++];
                if(ch==‘=‘)
         {
      syn=24;
      token[m++]=ch;
     }
     else
     {
      syn=23;
      --p;
     }
     break;
    case ‘:‘: token[m++]=ch;
     ch=prog[p++];
     if(ch==‘=‘)
     {
      syn=18;
      token[m++]=ch;
     }
     else
     {
      syn=17;
      --p;
     }
     break;
    case‘+‘:syn=13;token[0]=ch;break;
    case‘-‘:syn=14;token[0]=ch;break;
case‘*‘:syn=15;token[0]=ch;break;
    case‘/‘:syn=16;token[0]=ch;break;
    case‘=‘:syn=25;token[0]=ch;break;
    case‘;‘:syn=26;token[0]=ch;break;
    case‘(‘:syn=27;token[0]=ch;break;
    case‘)‘:syn=28;token[0]=ch;break;
    case‘#‘:syn=0;token[0]=ch;break;
    default:syn=-1;
  }
  }
 }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       5381  2011-06-09 10:25  词法,语法,语义分析\语义分析.c

     文件       2170  2011-06-09 23:11  词法,语法,语义分析\词法分析.c

     文件       3155  2011-06-09 23:12  词法,语法,语义分析\语法分析.c

     目录          0  2011-06-10 23:39  词法,语法,语义分析

----------- ---------  ---------- -----  ----

                10706                    4


评论

共有 条评论