判斷預設字元
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...