1樓:匿名使用者
#include "stdio.h" /*定義i/o庫所用的某些巨集和變數*/
#include "string.h" /*定義字串庫函式*/
#include "conio.h" /*提供有關螢幕視窗操作函式*/
#include "ctype.h" /*分類函式*/
char prog[80]=,
token[8]; /*存放構成單詞符號的字串*/
char ch;
int syn, /*存放單詞字元的種別碼*/
n,sum, /*存放整數型單詞*/
m,p; /*p是緩衝區prog的指標,m是token的指標*/
char *rwtab[6]=;
void scaner()
token[m++]='\0';
ch=prog[p--];
syn=10;
for(n=0;n<6;n++)
if(strcmp(token,rwtab[n])==0) /*字串的比較*/}
else
if(isdigit(ch)) /*ch是數字字元*/
ch=prog[p--];
syn=11;}
else
switch(ch)
else if(ch=='=')
else
break;
case'>':m=0;token[m++]=ch;ch=prog[p++];
if(ch=='=')
else
break;
case':':m=0;token[m++]=ch;ch=prog[p++];
if(ch=='=')
else
break;
case'+':syn=13;token[0]=ch;break;
case'-':syn=14;token[0]=ch;break;
case'*':syn=15;token[0]=ch;break;
case'/':syn=16;token[0]=ch;break;
case'=':syn=25;token[0]=ch;break;
case';':syn=26;token[0]=ch;break;
case'(':syn=27;token[0]=ch;break;
case')':syn=28;token[0]=ch;break;
case'#':syn=0;token[0]=ch;break;
default:syn=-1;}}
main()
printf("\n\nthe significance of the figures:\n"
"1.figures 1 to 6 said keyword\n"
"2.figures 10 and 11 said other indicators\n"
"3.figures 13 to 28 said operators\n");
p=0;
printf("\nplease input string:\n");
do while(ch!='#');
p=0;
dowhile(syn!=0);
getch();
程式測試結果
對源程式begin x:=9: if x>9 then x:=2*x+1/3; end #的原始檔,經過詞法分析後輸出如下圖5-1所示:
具體的你在修改修改吧
編譯原理中的詞法分析器的輸入與輸出是什麼?
求 機械原理課程設計凸輪設計vb程式
果子的 private sub command1 click 引數初始化 dim r0 r1 h e dim a1 a01 a2 a02 r0 val inputbox 請輸入基圓半徑 r1 val inputbox 請輸入滾子半徑 h val inputbox 請輸入升程 e val inputb...
急(高懸賞幫個忙)求編譯原理課程設計c語言實現c
語法規則及函式模組如下所示 int do stat else es 3 return es 宣告語句 int 變數 變數 int id,int declaration stat if strcmp token,return es 4 printf s s n token,token1 return ...
計算機組成原理課程設計
sweet採花賊 因為課程設計是要求將以前在課堂上學的理論知識運用到實際的設計當中去,所以在設計過程中,我們一定會碰到各種各樣的問題。為了解決這些問題,我們一定會仔細認真的去翻閱自己以前學過但是以為已經瞭解熟悉的東西。這在無形中幫助我們加深對所學知識的瞭解及運用能力,並且讓我們明白什麼地方是我們真正...