【系列2—解析语法树】

1、从字节流到语法树

【系列2—解析语法树】_第1张图片
从字节流到语法树
  • 过程:
    1、程序读取 "sp = 100" 字节流
    2、利用ANTLR4作词法解析,生成词流
    3、利用ANTLR4生成语法树

  • 解释:
    1、TerminalNode: 叶子节点
    2、RuleNode: 非叶子节点,也叫做上下文。因为包含了节点解析内容所需要的规则。

2、解析语法树

两种方法:事件监听和遍历访问法

2.1 事件监听

【系列2—解析语法树】_第2张图片
深度优先
【系列2—解析语法树】_第3张图片
一旦访问相应节点则触发对应的API方法

2.2 遍历访问法

【系列2—解析语法树】_第4张图片
我自己控制怎么走,调用什么方法,允许开发者覆盖调用执行顺序

3、实践

假设你想控制对某些语法解析进行特别操作,可以利用上面的遍历方法来处理。

待续~
增加项目中利用ANTLR4更改语法解析方法来处理。

你可能感兴趣的:(【系列2—解析语法树】)