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

📄 test.txt

📁 语法分析器lex和词法分析器yacc的C++语言实现 1.Lex (1)Lex输入文件的解析 (2)正规表达式的解析 (3)一个正规表达式到NFA的转换算法实现 (4)多个NFA的合并
💻 TXT
字号:
%{
#include<iostream>
#include<cstdlib>
#include"yytab.h"
%}
digit [0-9]
letter [a-zA-Z]
id {letter}[{letter}|{digit}]*
num [1-9]{digit}*
%%
break       {return BREAK; }
case        {return CASE; }
char        {return CHAR;}
const       {return CONST; }
continue    {return CONTINUE; }
default     {return DEFAULT; }
do          {return DO; }
double      {return DOUBLE; }
else        {return ELSE; }
enum        {return ENUM; }
float       {return FLOAT; }
for         {return FOR; }
goto        {return GOTO; }
if          {return IF; }
int         {return INT; }
long        {return LONG; }
return      {return RETURN; }
short       {return SHORT; }
signed      {return SIGNED; }
sizeof      {return SIZEOF; }
static      {return STATIC; }
switch      {return SWITCH; }
typedef     {return TYPEDEF; }
unsigned    {return UNSIGNED; }
void        {return VOID; }
while       {return WHILE; }
{num}       {return NUMBER;}
{id}        {return IDENTIFIER;}
+=		    {return ADD_ASSIGN; }
-=			{return SUB_ASSIGN; }
*=			{return MUL_ASSIGN; }
/=			{return DIV_ASSIGN; }
++			{return INC_OP; }
--			{return DEC_OP; }
->			{return PTR_OP; }
&&			{return AND_OP; }
\|\|		{return OR_OP; }
<=			{return LE_OP; }
>=			{return GE_OP; }
==			{return EQ_OP; }
!=			{return NE_OP; }
;			{return ';'; }
,	        {return ','; }
:			{return ':'; }
=			{return '='; }
.		    {return '.'; }
&			{return '&'; }
!			{return '!'; }
-			{return '-'; }
+			{return '+'; }
/			{return '/'; }
<		    {return '<'; }
>			{return '>'; }
?			{return '?'; }
{		    {return '{'; }
}		    {return '}'; }
\[          {return '['; }
\]          {return ']'; }
\*          {return '*'; }
%%
void main()
{
	char *A[60]={"break","case","char","const","continue","default","do",
	          "double","else","enum","float","for","goto","if","int",
	          "long","return","short","signed","sizeof","static",
	          "switch","typedef","unsigned","void","while","egad","3435","045",
	          "4df","+=","-=","*=","/=","++","--","->","||","<=",">=","==","!=",
			  ";",",",":","=",".","&","!","-","+","/","<",">","?","{","}","[","]","*"};
	for(int i=0;i<60;i++)
	{
		cout<<analysis(A[i],strlen(A[i]))<<endl;
	}

}

⌨️ 快捷键说明

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