1 antlr 入门

 参考文献:

Antlr4学习1-基本概念和入门示例_antler4-CSDN博客

ANTLR v4 - IntelliJ IDEs Plugin | Marketplace

刘周的小网站

GitHub - antlr/grammars-v4: Grammars written for ANTLR v4; expectation that the grammars are free of actions.

antlr4/doc/parser-rules.md at master · antlr/antlr4 · GitHub

https://www.pythonf.cn/read/143065

语法设计-ANTLR 4简明教程

Parser (ANTLR 4 Runtime 4.13.2 API)

ANTLR v4 - IntelliJ IDEs Plugin | Marketplace   //插件

Grammars/book-examples at master · remenska/Grammars · GitHub  //代码实例

 1.1、宏观编译器流程

        编译器主要分为前端与后端,前端是负责对程序代码的分析和理解过程,只跟语言的语法有关,与目标机器无关;而后端是负责生成中间代码,然后对代码进行优化,最终生成机器可执行的目标代码,与目标机器密切相关。然而我们本篇笔记要讨论的ANTLR就是编译器前端的一种主流且轻量级的解决方案,它是一款强大的语法分析器生成工具,使得开发者不必精通繁杂的编译理论,集中精力处理真正的业务逻辑。 

1.2、ANTLR的开发方式(maven依赖)

 ANTLR能够根据用户定义的语法文件自动生成词法分析器、语法分析器,语法分析树遍历器,还能将输入文本转化成一颗语法分析树。其主要存在两种开发方式:

1.命令行工具(网上教程多)

2.idea ANTLR v4插件 (推荐使用)

<dependency> 
    <groupId>org.antlr</groupId> 
    <artifactId>antlr4-runtime</artifactId> 
    <version>4.9</version> 
</dependency>

注意事项:依赖的版本取决于你安装的命令行或插件的版本,需要保持一致,不然要报错,当前官网版本是4.9

1.3、Antlr 核心标记 

用法

描述

x

匹配词法符号、规则引用或者子规则 x

x y ... z

匹配一列规则元素

(... | ... | ...)

一个具有多个备选分支的子规则

x?

匹配x或者忽略它

x*

匹配x零次或多次

x +

匹配x 一次或多次

r: ...;

定义规则r

r: ...| ... | ...;

定义具有多个备选分支的规则r

[]

定义字符集。["] 是具有单个字符 " 的集合,作为一个集合,每个字符都在集合中,因此定义一个字符两次,如[""]没有区别,它与["] 相同

~

表示否定,~["] 表示 " 之外的任何字符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独行客-编码爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值