Antlr
文章平均质量分 57
库昊天
这个作者很懒,什么都没留下…
展开
-
Antlr4 ---入门介绍
Antlr4是什么? Antlr4是一款开源的语法分析器生成工具,能够根据语法规则文件生成对应的语法分析器。现在很多流行的应用和开源项目里都有使用,比如Hadoop、Hive以及Pig等都在使用ANTLR来做语法分析。使用步骤Step1:编写语法规则文件 按照Antlr4规范编写特定语言的语法规则文件(绝大部分语言的都已提供,详见语法库);Step2:生成解析器 运行ANTLR工...原创 2018-12-28 22:35:37 · 9519 阅读 · 0 评论 -
Antlr4 --- 规则文件概览
规则文件既可以是词法文件{xxx}Lexer.g4和语法文件{xxx}Parser.g4两个规则文件分开写,也可以写在一个文件{xxx}.g4;文件结构语法声明{xxx}.g4文件: grammar Name;{xxx}Lexer.g4文件:lexer grammar Name;{xxx}Parser.g4文件: parser grammar Name;可选项设置optio...原创 2019-01-02 16:02:26 · 3820 阅读 · 1 评论 -
Antlr4 ---词法规则
规则存放位置 词法规则既可以和语法规则写在同一个文件{xxx}.g4,也可以单独放在词法规则文件{xxx}Lexer.g4;匹配原则最长匹配原则: 输入串将被最长匹配的词法规则匹配;优先声明原则: 若输入串能同时被多个词法规则匹配,那么声明在词法文件最前面的规则生效;解析内容 词法规则作用是将一个个字符按照定义的规则聚集成字符,主要有以下四类:标识符: 即各类编程语言中的变量名...原创 2019-01-02 16:53:10 · 4952 阅读 · 0 评论 -
Antlr4 ---语法规则
设计原则 语法规则的设计遵循“自顶向下”的原则,即由宏观到具体。比如,CSV的语法规则,一个CSV文件由多行组成,每行由多个字段组成,每个字段组成规则等等,如下所示,这种方式更贴近人类的思维和表达方式。csvFile: hdr row+ ;hdr : row ;row : field (',' field)* '\r'? '\n' ;field : TEXT | STRI...原创 2019-01-07 15:43:46 · 13669 阅读 · 0 评论 -
Antlr4 ---遍历模式
Listener模式 使用ParseTreeWalker遍历树的过程中(深度优先),每次进入和退出规则节点时,触发对应的enterRule/exitRule方法。使用示例//step1:创建ParseTreeWalker ParseTreeWalker walker = new ParseTreeWalker();//step2:创建ParseTreeListener和ParseTre...原创 2019-01-07 19:53:00 · 6063 阅读 · 3 评论