改 程式設計實驗一 詞法分析程式

2022-05-16 18:08:34 字數 3319 閱讀 5847

判斷預設字元

int acceptation_logic_key(char *ch);

int acceptation_logic(char *ch);

//判斷數字

int acceptation_number(char *str);

int acceptation_number_key(char

ch);

//判斷字元

int acceptation_string(char *str);

int acceptation_string_key(char

ch);

//擷取

int acceptation_str(char ch,char *str,int i,char *sch,node *tnode);

void splitter_node_add(char *str,node *node);

int splitter_start(char *str);

void splitter_node_add(char *str,node *node);

void word_acceptation(char *ch,node *tnode);

void word_node(char *ch,node *node);

void word_splitter(char* str,node *node);

//邏輯判斷

int acceptation_logic(char *ch)

else

if(strcmp(ch,"

if")==0

)else

if(strcmp(ch,"

then

")==0

)else

if(strcmp(ch,"

while

")==0

)else

if(strcmp(ch,"

do")==0

)else

if(strcmp(ch,"

end")==0

)else

if(strcmp(ch,"

+")==0

)else

if(strcmp(ch,"

-")==0

)else

if(strcmp(ch,"

*")==0

)else

if(strcmp(ch,"

/")==0

)else

if(strcmp(ch,"

:")==0

)else

if(strcmp(ch,"

:=")==0

)else

if(strcmp(ch,"

<

")==0

)else

if(strcmp(ch,"

<=

")==0

)else

if(strcmp(ch,"

<>

")==0

)else

if(strcmp(ch,"

>

")==0

)else

if(strcmp(ch,"

>=

")==0

)else

if(strcmp(ch,"

=")==0

)else

if(strcmp(ch,"

;")==0

)else

if(strcmp(ch,"

(")==0

)else

if(strcmp(ch,"

)")==0

)else

if(strcmp(ch,"

#")==0

)else

return

key;

}int acceptation_logic_key(char *ch)

return

key;

}int acceptation_string_key(char

ch);

int acceptation_string(char *str)

return

key;

}int acceptation_number_key(char

ch)else

key=1

;return

key;

}int acceptation_number(char *str)

if(key==0

)printf(

"\n",str);

return

key;

}int acceptation_string_key(char

ch)else

key=1

;return

key;}//

重置int acceptation_str(char ch,char *str,int i,char *sch,node *tnode)

}if(acceptation_logic_key(str)==0

)if(acceptation_number_key(ch)==0)}

returni;}

//判斷詞意

void word_acceptation(char *ch,node *tnode)}//

存入節點

void splitter_node_add(char *str,node *node)

q=(node *)malloc(sizeof

(node));

q->next=null;

strcpy(q->words,str);

p->next=q;

p=q;}//

判斷空格回車位置

int splitter_start(char *str)

returni;}

//將每個字母以空格或回車分成一段詞

void word_splitter(char* str,node *node)}}

void word_node(char *ch,node *node)

printf(

"執行:\n\n");

p=tnode;

while(p->next!=null)}}

intmain()

實驗一 詞法分析

1 實驗要求 1 從源程式檔案中讀取有效字元流並將其分析識別單詞符號,轉換成二元組內部表示形式輸出。2 視覺化方式展示詞法分析識別過程或者詞法分析器工作原理 選做 3 實驗時間4學時。4 實驗完成後,要提交實驗報告 包括源程式清單 2 實驗內容 2.1主程式設計考慮 主程式的說明部分為各種 和變數安...

實驗一 詞法分析實驗

實驗一 詞法分析實驗 專業 商軟2班 姓名 李文輝 學號 201506110168 一 實驗目的 編制乙個詞法分析程式 二 實驗內容和要求 實驗內容 1.對字串表示的源程式 2.從左到右進行掃瞄和分解 3.根據詞法規則 4.識別出乙個乙個具有獨立意義的單詞符號 5.以供語法分析之用 6.發現詞法錯誤...

實驗一 詞法分析實驗

實驗 一 詞法分析實驗 商業軟體工程專業 張煌 201506110130 一 實驗目的 從左至右地對源程式進行掃瞄,按照語言的詞法規則識別各類單詞,並產生以為格式的結果。二 實驗內容和要求 輸入 源程式字串 輸出 二元組 種別,單詞符號本身 三 實驗方法 步驟及結果測試 1.源程式名 壓縮包檔案 r...