序列输入之数据特征分析
数据类型
不作介绍
关系
顺序关系
依次赋值
层次关系(赋值的所属对象)
|
|
结构
硬编码式的解析处理
较为简单,确定的输入方式
缺点:兼容性灵活性差
使用正则表达式的解析处理
可对应一个有穷自动机解析
-
默认使用贪婪匹配
-
“.” 任意
-
“*” 同一项内容任意项
-
“+” 同一内容一项或多项
-
“?” 同一内容零项或一项
-
非贪婪匹配
```java Pattern = new Pattern.compile("(\\w+?)((good)*)"); // 添加 \w+? 实现非贪婪 // 注意 \\ 编译问题 ```
弊端:可读性差,技巧性高
递归下降式解析处理
递归
借助递归进行解析
下降
从顶层到底层 按层解析
文法
终结符
取值不可变的符号,单个字符层级上的元素
非终结符
取值可变,以<>表示
定义规则
L -> R
定义非终结符的取值方式
|
|
词法分析:定义Token
|
|
语法分析:建立抽象语法树
根据文法所定义的关系
|
|
由表达式到项,由项到因子
每一个非终结符都对应一棵局部语法树
唉唉 只是课上跟着写还是太草率了
不如PPT