c语言词法分析程序,词法分析器(c语言实现)
《詞法分析器(c語言實現)》由會員分享,可在線閱讀,更多相關《詞法分析器(c語言實現)(6頁珍藏版)》請在人人文庫網上搜索。
1、詞法分析c實現一、 實驗目的設計、編制并調試一個詞法分析程序,加深對詞法分析原理的理解。二、 實驗要求2.1 待分析的簡單的詞法(1)關鍵字:begin if then while do end所有的關鍵字都是小寫。(2)運算符和界符: = + - * / = = ; ( ) #(3)其他單詞是標識符(ID)和整型常數(SUM),通過以下正規式定義:ID = letter (letter | digit)*NUM = digit digit*(4)空格有空白、制表符和換行符組成。空格一般用來分隔ID、SUM、運算符、界符和關鍵字,詞法分析階段通常被忽略。2.2 各種單詞符號對應的種別碼:表2.。
2、1 各種單詞符號對應的種別碼單詞符號種別碼 單詞符號種別碼bgin1:17If2:=18Then321do523lettet(letter|digit)*10=24dight dight*11=25+13;2614(27*15)28/16#02.3 詞法分析程序的功能:輸入:所給文法的源程序字符串。輸出:二元組(syn,token或sum)構成的序列。其中:syn為單詞種別碼;token為存放的單詞自身字符串;sum為整型常數。例如:對源程序begin x:=9: if x9 then x:=2*x+1/3; end #的源文件,經過詞法分析后輸出如下序列:(1,begin)(10,x)(18。
3、,:=)(11,9)(26,;)(2,if)三、詞法分析程序的C語言程序源代碼:#include #include char prog80,token8,ch;int syn,p,m,n,sum;char *rwtab6=begin,if,then,while,do,end;scaner();main()p=0;printf(n please input a string(end with #):/n);doscanf(%c,&ch);progp+=ch;while(ch!=#);p=0;doscaner();switch(syn)case 11:printf( %-10d%5d )n,sum。
4、,syn);break;case -1:printf(you have input a wrong stringn);getch();exit(0);default: printf( %-10s%5d )n,token,syn);break;while(syn!=0);getch();scaner() sum=0;for(m=0;m=a)|(ch=A) while(ch=a)|(ch=A)|(ch=0)&(ch=0)&(ch=0)&(ch:tokenm+=ch;ch=progp+;if(ch=) syn=24;tokenm+=ch;else syn=23;p-;break;case +: to。
5、kenm+=ch;ch=progp+;if(ch=+) syn=17;tokenm+=ch;else syn=13;p-;break;case -:tokenm+=ch;ch=progp+;if(ch=-) syn=29;tokenm+=ch;else syn=14;p-;break;case !:ch=progp+;if(ch=) syn=21;tokenm+=ch;else syn=31;p-;break;case =:tokenm+=ch;ch=progp+;if(ch=) syn=25;tokenm+=ch;else syn=18;p-;break;case *: syn=15;tok。
6、enm+=ch;break;case /: syn=16;tokenm+=ch;break;case (: syn=27;tokenm+=ch;break;case ): syn=28;tokenm+=ch;break;case : syn=5;tokenm+=ch;break;case : syn=6;tokenm+=ch;break;case ;: syn=26;tokenm+=ch;break;case : syn=30;tokenm+=ch;break;case #: syn=0;tokenm+=ch;break;case :syn=17;tokenm+=ch;break;default: syn=-1;break;tokenm+=0;四、結果分析:輸入begin x:=9: if x9 then x:=2*x+1/3; end # 后經詞法分析輸出如下序列:(begin 1)(x 10)(:17)(= 18)(9 11)(;26)(if 2) 如圖5-1所示。
總結
以上是生活随笔為你收集整理的c语言词法分析程序,词法分析器(c语言实现)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 气态行星真的没有陆地吗
- 下一篇: 为什么自己做的电风扇一会儿启动一会儿启动