詞法分析(作業)

2021-09-25 14:14:56 字數 2140 閱讀 4111

#include#include

#define n 30

char str[n]=,st[n]=;

int t=0,t1=0

;struct node//

定義乙個佇列

;typedef

struct

node queuenode;

struct node2//

定義乙個鏈佇列

;typedef

struct

node2 queue;

void print(char

str);

void print1(char

str1);

queue initqueue()

//初始化佇列

queue inserq(queue q,

char x)//

x進佇列

queue deleteq(queue q)

//出佇列

p=q.front->next;

y=q.front->next->data;//

將佇列中的元素賦值給y

q.front->next=p->next;

if(p==q.rear)

q.rear=q.front;

if((y>='

a'&&y<='

z')||(y>='

a'&&y<='

z'))//

利用ascii判斷y是否是屬於字母,並儲存在陣列str中

str[i]=y;

else

else

printf(

"(17,'%c')\n

",y);

}else

if(y=='

else

if(p->next->data=='

>

')//

判斷運算是否是由兩個字元組成

else

printf(

"(20,'%c')\n

",y);

}else

if(y=='

>')

else

printf(

"(23,'%c')\n

",y);

}else

if(y=='

=')//

判斷字元是否是運算子

printf("

(25,'%c')\n

",y);

else

if(y==';'

) printf(

"(26,'%c')\n

",y);

else

if(y=='('

) printf(

"(27,'%c')\n

",y);

else

if(y==')'

) printf(

"(28,'%c')\n

",y);

else

if(y=='#'

) printf(

"(0,'%c')\n

",y);

else

if(y>=48&&y<=57)//

判斷字元是否為數字

}else

if(y=='');

else

printf(

"(非法字元,'%c')\n

",y);//

其他的當作特殊符號處理

}

free

(p);

returnq;}

intmain()

void print(char str)//

呼叫函式來判斷關鍵字與識別符號

memset(str,

0,n);//

清空陣列str裡的所有元素

詞法分析程式

上課沒聽啥,一邊看書,一邊做的。基本上,老師的要求是實現了,能把乙個句子 也可以是一整個程式,但還不完善,由於時間急,很多情況來不及考慮了 中的單詞項分析出它是保留字,還是識別符號,運算子等等。開始是在控制台下做得,也比較純正 lex.h ifndef lex h define lex h incl...

06 05 詞法分析

include include include define keywordsum 11 char scanin 300 scanout 300 用於接收輸入輸出檔名 file fin,fout 用於指向輸入輸出檔案的指標 char keyword keywordsum char singlewor...

詞法分析程式設計

實驗目的 1 理解詞法分析在編譯程式中的作用 2 加深對有窮自動機模型的理解 3 掌握詞法分析程式的實現方法和技術 實驗內容 對下述單詞表定義的語言設計編制乙個詞法分析器。各種單詞符號對應的種別碼如下表 單詞符號 種別編碼 begin1if 2then 3while4do 5end 6l l d 1...