diguixiajiang.c

来自「这是我编写的一个词法分析器,有兴趣的人可以看看,里面有详细的说明,我觉得非常适合」· C语言 代码 · 共 69 行

C
69
字号
#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 + =
减小字号Ctrl + -
显示快捷键?