这里我们先确定两种基本的词素:
匹配字符, 即需要用于匹配的字符, 如单个字符, \ 引导的转义字符 ,\u 引导的 Unicode code point
控制字符, 不匹配, 具有特殊语义的字符 ,...通过这个过程, 确定了所有的 非终结符(Non Terminal) 的组成, 也即确定了产生式(Production)...., 基于 LR 的 Parser 分析能力会更强(如支持左递归文法), 而手写递归下降则更便于控制....更好的办法是将 数据表示 与 数据处理 分离, 这便是访客模式(Visitor)....具体来说,对于 a*ab (如下图)
在起点处,输入a可能的后继状态是 1、2, 那么就把1、2合为一个状态 A =
大状态 A 里, 状态 1、2 存在转换为
将其聚合后得到
图片
对于