📄 yylex.cpp
字号:
#include"yytab.h"
extern SV yyval;
const int START=0;
const int ERROR=40000;
int analysis(char *yytext,int n)
{
int state=START;
int N=n+1;//N表示串长加1,为与状态数保持一致。
for(int i=0;i<N;i++)
{
switch(state)
{
case 0:
{
if(yytext[i]=='1')
{
state=1;
break;
}
if(yytext[i]=='2')
{
state=1;
break;
}
if(yytext[i]=='3')
{
state=1;
break;
}
if(yytext[i]=='4')
{
state=1;
break;
}
if(yytext[i]=='5')
{
state=1;
break;
}
if(yytext[i]=='6')
{
state=1;
break;
}
if(yytext[i]=='7')
{
state=1;
break;
}
if(yytext[i]=='8')
{
state=1;
break;
}
if(yytext[i]=='9')
{
state=1;
break;
}
if(yytext[i]=='+')
{
state=2;
break;
}
if(yytext[i]=='-')
{
state=3;
break;
}
if(yytext[i]=='/')
{
state=4;
break;
}
if(yytext[i]=='*')
{
state=5;
break;
}
else
{
return ERROR;
}
break;
}
case 1:
{
if(i==N-1)
{
yyval.ival=2;return 30000;
break;
}
if(yytext[i]=='0')
{
state=1;
break;
}
if(yytext[i]=='1')
{
state=1;
break;
}
if(yytext[i]=='2')
{
state=1;
break;
}
if(yytext[i]=='3')
{
state=1;
break;
}
if(yytext[i]=='4')
{
state=1;
break;
}
if(yytext[i]=='5')
{
state=1;
break;
}
if(yytext[i]=='6')
{
state=1;
break;
}
if(yytext[i]=='7')
{
state=1;
break;
}
if(yytext[i]=='8')
{
state=1;
break;
}
if(yytext[i]=='9')
{
state=1;
break;
}
else
{
return ERROR;
}
break;
}
case 2:
{
if(i==N-1)
{
return 30001;
break;
}
break;
}
case 3:
{
if(i==N-1)
{
return 30002;
break;
}
break;
}
case 4:
{
if(i==N-1)
{
return 30004;
break;
}
break;
}
case 5:
{
if(i==N-1)
{
return 30003;
break;
}
break;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -