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

📄 test.txt

📁 C写的词法分析器
💻 TXT
字号:
main()
{FILE  *fp1;                      //定义要打开的词法分析的文件
char  FileName[50];
int   i=0;
int   FileSize=0;
printf("请输入您要进行词法分析的文件名,并键入回车作为结束:");
do
{
scanf("%c",&FileName[i]);
}while(FileName[i++]!='\n');
FileName[--i]='\0';
if ((fp1=fopen(FileName,"r+"))==NULL)//打开词法分析的文档
{
printf("cannot open file \n");//没有找到文件就提醒并退出程序
exit(0);
}
else
{
FileSize=fread(&CBuffer,1,1000,fp1);//若文件打开成功就将文件读到内存
printf("您输入的文件大小为:%d字节\n",FileSize);
fclose(fp1);
fp2=fopen("Test1.txt","w+");
fclose(fp2);
IBufIndex=0;
while(CBuffer[IBufIndex]!='\0')//直到文件的结尾
{
if(CBuffer[IBufIndex]>='0'&&CBuffer[IBufIndex]<='9'||CBuffer[IBufIndex]=='o'||CBuffer[IBufIndex]=='O'||(CBuffer[IBufIndex]=='.'&&(CBuffer[IBufIndex+1]>='0'&&CBuffer[IBufIndex+1]<='9')))
DigitRecognise();//识别数字常量
//***********10、12、13、32、47分别是换行、换页、回车、空格以及"/"的ASCII码******************//
else if(CBuffer[IBufIndex]==10||CBuffer[IBufIndex]==12||CBuffer[IBufIndex]==13||CBuffer[IBufIndex]==' '||(CBuffer[IBufIndex]=='/'&&(CBuffer[IBufIndex+1]=='/'||CBuffer[IBufIndex+1]=='*')))                  
BlackRecognise();//识别空白(空格、回车、换页和注释)
else if (CBuffer[IBufIndex]>='a'&& CBuffer[IBufIndex]<='z' || CBuffer[IBufIndex]>='A' && CBuffer[IBufIndex]<='Z' || CBuffer[IBufIndex]=='_')
SymbolRecognise();//识别标识符和关键字
else if(CBuffer[IBufIndex]=='{'||CBuffer[IBufIndex]=='}'||CBuffer[IBufIndex]==';')
DivCharRecoginse();//识别分界符
else if(CBuffer[IBufIndex]=='"')                                                
ConStrRecoginse();//识别字符串常量
else if(CBuffer[IBufIndex]=='\'')
Con_Trans_CharRecoginse();//识别单字符和转义类字符
else OperatorRecoginse(CBuffer[IBufIndex]);//识别运算符
}
}
}

⌨️ 快捷键说明

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