词法分析是编制一个读单词的过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。程序语言的单词符号一般分为五种:关键字(保留字/基本字)if、while、begin…;标识符:常量名、变量名…;常数:34、56.78、true、‘a’、…;运算符:+、-、*、/、〈、and、or、….、;界限符:, ; ( ) { } /*…。
方法:
词法分析器的设计方法有如下四个步骤:
1.写出该语言的词法规则。
2.把词法规则转换为相应的状态转换图。
3.把各转换图的初态连在一起,构成识别该语言的自动机。
4.设计扫描器;把扫描器作为语法分析的一个过程,当语法分析需要一个单词时,就调用扫描器。扫描器从初态出发,当识别一个单词后便进入终态,送出二元式。
针对该程序设计的DFA 图大致如下:
核心代码(这段是分析代码。其他的定义代码,识别字母代码,识别数字代码,等等就不一一列举了,源程序中有):
/**
* 初始化并读取源代码文件
* 扫描程序开始执行,直到读取文件结束符EOF
* @throws Exception
*/
private void scanning(String originalFile) throws Exception {
this.sourceFile = new BufferedReader(new FileReader(originalFile));
this.initial();
while(!isEOF) {
getToken();
}
System.out.println("========================> end scann