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

📄 diguixiajiang.c

📁 这是我编写的一个词法分析器,有兴趣的人可以看看,里面有详细的说明,我觉得非常适合初学者看
💻 C
字号:
#include "conio.h"
#include"stdio.h"
char sym;
int p;
int flag=1;
char  *ju="i+i*i" ;
void e(void);
void t(void);
void e1(void);
void t1(void);
void f(void);
void main(){
clrscr();
sym=ju[0];
p=0;
e();
if((sym=='\0')&&(flag==1))
printf("it is a sentence of the produce formula!!!\n");
else
printf("it isnot a sentence of the produce formula!!!!\n");

}
void e(void){
t();
e1();
}
void t(void){
f();
t1();
}
void e1(void){
if (sym=='+') {
 p=p+1;
 sym=ju[p];
 t();
 e1();  }

   }
void t1(){
if (sym=='*'){
p=p+1;
sym=ju[p];
f();
t1();
}
}
void f(){
if (sym=='i')
{p=p+1;
 sym=ju[p];
}
else
{ if(sym=='(')
 { p=p+1;
  sym=ju[p];
  e();
  if(sym==')'){
  p=p+1;
  sym=ju[p];}
else
 { flag=0;
  printf("error )is missing\n");}

 }
 else
{ flag=0;
 printf("error f()can't allow other character \n");}
} }

⌨️ 快捷键说明

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