词法分析
词法分析一般是编译的第一个阶段。一个编程语言代码,主要包含以下元素:(1)关键字,可能包括if、for、void、class等;(2)字面量,如实数、字符串等;(3)符号:小括号、大括号、加号、减号等;(4)标识符,也就是变量名、函数名、类名等。
词法分析器以空格符、换行符为分割,利用正则表达式找出每个元素所属的类型。根据元素类型创建一个Token。
NFA、DFA
有多少种元素类型,就要设置多少正则表达式,为检测出正确Token类型,需要与每一个正则表达式匹配,非常不便。所以出现了NFA、DFA,它们本质上是数据结构——图。