⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wordscan.h

📁 语法分析 C2.1 实验目的 编制一个递归下降分析程序,实现对词法分析程序所提供的单词序列的语法检查和结构分析. C2.2 实验要求 利用C语言编制递归下降分析程序,并对简单语言进行语法分析.
💻 H
字号:
#include "stdio.h"
#include "string.h"
char prog[80],token[8];
int syn,p,m,n,sum=0;
char ch;
char *rwtab[6]={"begin","if","then","while","do","end"};
void scaner()
{
m=0;
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'))
{
   while((ch>='a' && ch<='z') ||(ch>='A' && ch<='Z')||(ch>='0' && ch<='9'))
   {
    token[m++]=ch;
    ch=prog[p++];
   }
   token[m++]='\0';
   syn=10;
   p=p-1;      //回退一个字符
   for(n=0;n<6;n++)
   {
    if(strcmp(token,rwtab[n])==0)
    {
     syn=n+1;
     break;
    }
   }
}
else
   if(ch>='0' && ch<='9')
   { 
            sum=0;
    while(ch>='0' && ch<='9')
    {
     sum=sum*10+ch-'0';
     ch=prog[p++];  
    }
    p=p-1;
             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=p-1;
     }
     p=p+1;
     token[m]='\0';
     break;
      case '>':
                m=0;
     token[m++]=ch;
     ch=prog[p++];
     if(ch=='=')
     {
      syn=24;
      token[m++]=ch;
     }
     else
     {
      syn=23;
                    p=p-1;
     }
     break;
    case ':':
                m=0;
     token[m++]=ch;
     ch=prog[p++];
     if(ch=='=')
     {
      syn=18;
      token[m++]=ch;
     }
     else
     {
      syn=17;p=p-1;
     }
     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=26;token[0]=ch;break;
      case '(':syn=27;token[0]=ch;break;
    case ')':syn=28;token[0]=ch;break;
    case '=':syn=25;token[0]=ch;break;
    case '#':syn=0;token[0]=ch;break;
    default:syn=-1;
   }
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -