資源簡介
一、 實驗目的
調試并完成一個詞法分析程序,加深對詞法分析原理的理解。
二、 實驗要求
1、 待分析的簡單語言的詞法
(1) 關鍵字:
begin if then while do end
所有關鍵字都是小寫。
(2) 運算符和界符:
:= + – * / < <= <> > >= = ; ( ) #
(3) 其他單詞是標識符(ID)和整型常數(NUM),通過以下正規式定義:
ID=letter(letter| digit)*
NUM=digit digit *
(4)空格由空白、制表
代碼片段和文件信息
#include
#include
#include
char?prog[80]token[8];
char?ch;
int?synpm=0nsum=0;?//p是緩沖區prog的指針,m是token的指針
char?*rwtab[6]={“begin““if““then““while““do““end“};
void?scaner()
{
????for(n=0;n<8;n++)?token[n]=NULL;
????ch=prog[p++];
????while(ch==‘?‘)
????????ch=prog[p++];
????if((ch>=‘a‘&&ch<=‘z‘)||(ch>=‘A‘&&ch<=‘Z‘))
????{
????????m=0;
????????while((ch>=‘A‘&&ch<=‘Z‘)||(ch>=‘a‘&&ch<=‘z‘)||(ch>=‘0‘&&ch<=‘9‘))
????????{
????????????token[m++]=ch;
????????????ch=prog[p++];
????????}
????????token[m++]=‘\0‘;
????????p--;
????????syn=10;
????????for(n=0;n<6;n++)
????????????if(strcmp(tokenrwtab[n])==0)
????????????{
????????????????syn=n+1;
????????????????break;
????????????}
????}
????else
????if((ch>=‘0‘&&ch<=
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3211??2009-05-26?16:33??實驗1.詞法分析\cifa.c
?????文件??????10760??2009-05-26?16:33??實驗1.詞法分析\CIFA.EXE
?????文件??????58368??2009-11-13?16:16??實驗1.詞法分析\實驗1.??詞法分析實驗報告.doc
?????文件?????657270??2009-05-26?16:44??實驗1.詞法分析\詞法分析結果驗證1.jpg
?????文件?????651402??2009-05-26?18:06??實驗1.詞法分析\詞法分析結果驗證2.jpg
?????目錄??????????0??2009-11-13?16:16??實驗1.詞法分析
-----------?---------??----------?-----??----
??????????????1381011????????????????????6
- 上一篇:二叉查找樹的查找、刪除、插入等基本操作C語言
- 下一篇:東軟實訓總結報告.doc
評論
共有 條評論