Pika (@Pika-Yalei) 在 图解 Antlr 解析 SQL 的全过程 中发帖

前言
做 SQL 拆分、SQL 审核的时候,都需要先知道一条 SQL 操作了什么,今天聊一下产品中如何使用 Antlr 脚本分析 SQL,核心思路很简单:Lexer 词法分析 → Parser 语法分析 → Visitor 提取信息。
Antlr 是什么
Antlr 是一种根据语法规则生成解析器的工具,可以用来处理 SQL 这样的结构化语言。
简单来说,语法规则就像一本“语法书”,我们先写好哪些是词、一句话应该怎么组成,Antlr 根据这本“语法书”生成解析代码,程序再用这些代码去读 SQL。
主要关注三个角色:

Lexer 负责词法分析,识别关键字、标识符和字符串等词法单元。
Parser 负责语法分析,把这些词法单元组织成解析树。
Visitor 负责遍历解析树,提取业务需要的信息。

Lexer 词法分析
我们先看一条 SQL:
UPDATE orders SET sta...