Antlr4 语法解析器(下)

news2024/9/22 15:28:15

Antlr4 的两种AST遍历方式:Visitor方式Listener方式

Antlr4规则文法:

  • 注释:和Java的注释完全一致,也可参考C的注释,只是增加了JavaDoc类型的注释;
  • 标志符:参考Java或者C的标志符命名规范,针对Lexer 部分的 Token 名的定义,采用全大写字母的形式,对于parser rule命名,推荐首字母小写的驼峰命名;
  • 不区分字符和字符串,都是用单引号引起来的,同时,虽然Antlr g4支持 Unicode编码(即支持中文编码),但是建议大家尽量还有英文;
  • Action,行为,主要有@header 和@members,用来定义一些需要生成到目标代码中的行为,例如,可以通过@header设置生成的代码的package信息,@members可以定义额外的一些变量到Antlr4语法文件中;
  • Antlr4语法中,支持的关键字有:import, fragment, lexer, parser, grammar, returns, locals, throws, catch, finally, mode, options, tokens

基于IDEA调试Antlr4语法规则(文法可视化)

基于

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/708344.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VSCode配置Java环境 全程记录 配置成功| Windows

目录 1 配置电脑Java环境 1.1 下载jdk: 1.2 配置环境变量 1.3 测试Java环境 2. vscode中创建一个Java项目 2.1 创建一个项目根目录 2.2 配置插件 2.3 创建Java项目 1 配置电脑Java环境 1.1 下载jdk: ​​​​​​Java Download | 官网 下载完后双击运行该软件&#xff0c…

kafka入门,文件存储机制(十六)

文件存储机制 1、Topic数据的存储机制 topic是逻辑上的概念,而partition是物理上的概念,每个partition对应一个log文件,该log文件中存储就是Producer生产的数据。Producer生产的数据会不断追加到该log文件末端,为防止log文件过大…

用户标签画像如何建立?用户营销数字化系统推荐

什么是客户管理系统?如蚓链客户管理系统就是基于数字化技术手段,搭配客户标签、客户画像、客户跟进等机制的设计,从而构建可以记录、跟踪和管理公司客户的系统就属于客户管理系统。利用客户管理系统的一系列功能,公司可以真正了解…

Dependency ‘com.google.code.gson:gson:2.10.1‘ not found

当Maven依赖无法导入时,咱们如图操作File->Project Structure 这里输入指定包名之后记得要点击搜索按钮!!! 最后根据搜索结果导入指定包名即可! 最后,如果本文对您有帮助,可以给本文点个赞…

[前端]JS语法——检测数据类型typeof

typeof用于检测数据类型&#xff0c;返回以下基本的数据类型&#xff1a; number、string、boolen、undefined、function、object 注意&#xff1a; NaN检测结果为number; 对象、数组、null检测结果为object&#xff1b; 未定义的变量检测结果为undefined. <script>…

2023 中兴捧月算法挑战赛-自智网络-参赛总结

“中兴捧月”是由中兴通讯面向在校大学生举办的全球性系列赛事活动&#xff0c;致力于培养学生建模编程、创新、方案策划和团队合作能力。今年是在学校的宣传下了解到比赛&#xff0c;最初抱着学习的态度报名了比赛&#xff0c;最终进入了决赛&#xff0c;完成了封闭的开发与赛…

MySQL数据库基础(一):数据库安装和DataGrip安装

学习目录 数据库介绍 MySQL数据库安装和使用 SQL语句 DDL之数据库操作 DDL之表操作 DML数据库操作语言 SQL约束 DQL操作 多表操作 学习目标 掌握DDL操作 了解mysql的约束 掌握DML操作 掌握DQL操作 掌握多表联查 一、数据库概述 1、数据库介绍 数据库就是存储数据…

SpringBoot(原理篇)

SpringBoot原理篇 自动配置 bean加载方式 xml方式声明bean 相关类&#xff1a; domain域中的实体类&#xff1a; public class Mouse { }public class Cat { }public class Dog { }测试&#xff1a; public class App1 {public static void main(String[] args) {ClassP…

MyBatis学习笔记--下篇

MyBatis学习笔记–下篇 文章目录 MyBatis学习笔记--下篇1、多对一的处理(关联)1.1、表的创建1.2、实体类1.2、按照查询嵌套处理1.3、按照结果嵌套处理&#xff08;联表查询 &#xff09; 2、一对多的处理&#xff08;Collection&#xff09;2.1、实体类2.2、按结果查询&#xf…

《绝地求生》提示d3dcompiler_47.dll缺失怎么修复win11,三个简易的修复方法

在打开《绝地求生》游戏的时候&#xff0c;报错提示“由于找不到d3dcompiler_47.dll”&#xff0c;“d3dcompiler_47.dll缺失”等问题&#xff0c;都是由于电脑系统的中的d3dcompiler_47.dll文件丢失或者损坏了。d3dcompiler_47.dll 是 Microsoft 的 DirectX 11 核心组件之一&a…

彻底搞懂Linux中10位含义的文件权限以及修改文件权限

彻底搞懂Linux中10位含义的文件权限以及修改文件权限 1. 前言1.1 创建用户及简单权限问题1.2 抛出文件权限问题 2. 第二段&#xff08;连接数&#xff09;3. 第三段&#xff08;所属者&#xff09; 第四段&#xff08;所属组&#xff09;3.1 介绍Linux中的三种角色3.2 更改文件…

Kubernetes删除ns(namespace)

一、前言 删除某个应用或模块的时候&#xff0c;可能会出现命名空间的状态一直处于Terminating状态&#xff0c;无论是重启k8s还是重启所有服务器都没卵用。 k8s遇到有无法删除的ns&#xff08;namespace&#xff09;命名空间的时候&#xff0c;可以尝试几种删除方式 二、删…

zabbix拓扑图主机拓扑的分组设置

目录 一、需求描述 二、实现方法 &#xff08;一&#xff09;第一步 编辑拓扑图 &#xff08;二&#xff09;第二步 编辑形状 &#xff08;三&#xff09;第三步 点“更新” 一、需求描述 在zabbix-监测-拓扑图-服务器拓扑图中&#xff0c;需要按照各业务来分组展示&#…

「STC8A8K64D4开发板」第2-5讲:I/O中断

第2-5讲&#xff1a;I/O中断 学习目的学习中断的相关概念。掌握中断向量大于 31的处理方法。掌握中断服务程序的编写。 STC8A8K64D4 I/O中断 STC8A8K64D4单片机的所有GPIO都支持I/O 中断&#xff0c;且支持 4 种中断触发模式&#xff1a;下降沿中断、上升沿中断、低电平中断和…

Pegasus开发环境

文章目录 Pegasus开发环境开发环境部署步骤1 安装 vs code步骤2 DecEco Device Tool 下载安装步骤3 下载Hi3861 Openharmony SDK步骤4 下载开发者工具步骤5 工程管理配置1. 打开DevEco Device Tool 主页 导入工程2. 选择Hi3861 Openharmony SDK目录3. 芯片选型4. 进行后续代码开…

Spring ServiceLocatorFactoryBean 小结

前言 偶然看到一篇微信公众号文章的分享 https://mp.weixin.qq.com/s/11VKseROGVcJHPCJ8xQ3XA&#xff0c;感觉挺有意思&#xff0c;在这里记录下。 为什么感觉有意思呢&#xff1f;是因为它通过spring 提供的ServiceLocatorFactoryBean 来实现服务定位模式&#xff0c;将服务…

linux-2.6.22.6内核i2c驱动框架源码分析

i2c是常见的通信协议&#xff0c;协议比较简单&#xff0c;只有数据和时钟两条线&#xff08;SDA和SCL&#xff09;&#xff0c;i2c的通信分为主机和从机&#xff0c;主机一般占主导地位&#xff0c;从机可以有多个。 i2c通信的数据格式为(SDA上的数据)&#xff1a;开始的7位里…

【完美复现】面向配电网韧性提升的移动储能预布局与动态调度策略【IEEE33节点】(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

机器学习实战8-基于XGBoost和LSTM的台风强度预测模型训练与应用

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下机器学习实战8-基于XGBoost和LSTM的台风强度预测模型训练与应用&#xff0c;今年夏天已经来了&#xff0c;南方的夏天经常会有台风登陆&#xff0c;给人们生活带来巨大的影响&#xff0c;本文主要基于XGBoost模型和…

Python3 错误和异常 | 菜鸟教程(十五)

目录 一、简述 二、语法错误 三、异常 四、异常处理 &#xff08;一&#xff09;try/except 1、异常捕捉可以使用 try/except 语句。 2、以下例子中&#xff0c;让用户输入一个合法的整数&#xff0c;但是允许用户中断这个程序&#xff08;使用 Control-C 或者操作系统提供…