#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...