ANTLR4实践笔记

2019-12-04

最近科研项目需要加入一些新东西,需要我构建一个程序信息库,然后就想设计一套类似sql的查询语言去查询库里包含的内容,因此就需要用到语法分析器生成工具了。之前编译原理课上用过flex+bison那一套,做毕设的时候也用过JavaCC,这次开始动手之前在github上搜了一下“sqlParser”的类似Java项目,发现很多项目都是使用ANTLR4来生成语法分析器的(如下图),于是我这次就尝试使用它来进行实现。github

ANTLR4是什么?

ANTLR 是 ANother Tool for Language Recognition 的缩写,官网:http://www.antlr.org/

它是一款强大的语法分析器生成工具,可用于读取、处理、执行和翻译结构化的文本或二进制文件。

而且开发过程也比较简单,一般开发流程如下:

  1. 定义 .g4 语法文件;
  2. 使用 ANTLR 4 生成词法分析器(Lexer)和语法分析器(Parser)目标编程语言代码,支持的编程语言:Java、JavaScript、Python、C 和 C++ 等;
  3. 遍历 AST(Abstract Syntax Tree 抽象语法树),ANTLR 4 支持两种模式:访问者模式(Visitor)和监听器模式(Listener)。

ANTLR4的IDEA开发

ANTLR4可以在多种环境中运行,下面主要介绍在IDEA里如何使用ANTLR4:

点击查看评论

所有文章