antlr4踩坑记录

news/2025/1/16 3:40:10/

一. syntax error: ‘<’ came as a complete surprise to me while matching alternative

参考这个issue,antlr版本必须得是4.6
下载链接:http://www.antlr.org/download/antlr-4.6-complete.jar

二.org.antlr.v4.analysis.LeftRecursiveRuleTransformer.setAltASTPointers(LeftRecursiveRuleTransformer.java:241)

参考这个issue,Java版本必须得是Java6/7
java版本要求

三. antlr4运行命令

  1. antlr4和grun永久配置别名
echo "alias antlr4='java -jar /usr/local/lib/antlr-4.0-complete.jar'" >> ~/.bashrc
echo "alias grun='java org.antlr.v4.runtime.misc.TestRig'" >> ~/.bashrc
  1. 使用antlr4生成语法分析器和词法分析器
antlr4 test.g4
  1. 编译生成的Java文件
javac *.java
  1. 使用TestRig调试
grun [Grammar] [Rule] -optionseg. grun test r -tokens

四. 各种语言的.g4文件

https://github.com/antlr/grammars-v4/tree/master


http://www.ppmy.cn/news/1212842.html

相关文章

【算法练习Day46】判断子序列不同的子序列

​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;练题 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录 判断子序列不同的子序列总结…

OpenShift 4 - 对 OpenShift 的 etcd 数据库加密

《OpenShift / RHEL / DevSecOps 汇总目录》 说明&#xff1a;本文已经在 OpenShift 4.14 的环境中验证 文章目录 加密 etcd 数据库验证加密的 etcd 数据库解密 etcd 数据库 加密 etcd 数据库 OpenShift 对 etcd 数据库加密时只加密值&#xff0c;而不加密键。而资源类型、命…

Leetcode 2930. Number of Strings Which Can Be Rearranged to Contain Substring

Leetcode 2930. Number of Strings Which Can Be Rearranged to Contain Substring 1. 解题思路2. 代码实现 题目链接&#xff1a;2930. Number of Strings Which Can Be Rearranged to Contain Substring 1. 解题思路 这一题的话思路上就是利用容斥原理来直接求总数。 显然…

shell脚本实战案例---安全脚本

例题&#xff1a;自动化禁止恶意IP访问 应用场景&#xff1a;防止恶意IP尝试ssh登录。---暴力破解密码 脚本说明&#xff1a;将密码输入错误超过4次的IP地址通过iptables防火墙阻止访问。 目录 1.脚本分析&#xff1a; 【1】首先ssh登录之后&#xff0c;产生…

深入理解强化学习——多臂赌博机:知识总结

分类目录&#xff1a;《深入理解强化学习》总目录 我们在《深入理解强化学习——多臂赌博机》系列文章中介绍了几种平衡试探和开发的简单方法。 ϵ − \epsilon- ϵ−贪心方法在一小段时间内进行随机的动作选择&#xff0c;而UCB方法虽然采用确定的动作选择&#xff0c;却可以通…

NFS实验(总)

实验要求 架设一台NFS服务器&#xff0c;并按照以下要求配置 1、开放/nfs/shared目录&#xff0c;供所有用户查询资料 2、开放/nfs/upload目录&#xff0c;为192.168.17.0/24网段主机可以上传目录&#xff0c; 并将所有用户及所属的组映射为nfs-upload,其UID和GID均为210 3、将…

LeetCode【923】三数之和的多种可能性

题目&#xff1a; 思路&#xff1a; https://www.jianshu.com/p/544cbb422300 代码&#xff1a; int threeSumMulti(vector<int>& A, int target) {//Leetcode923:三数之和的多钟可能//initialize some constint kMod 1e9 7;int kMax 100;//calculate frequenc…

Flowable 外部表单

内置表单需要在每个节点中去配置&#xff0c;当如果多个节点使用同一套表单属性就要配置多次比较麻烦&#xff0c;修改的时候也要修改多次&#xff0c;外部表单可以定义一次&#xff0c;然后其它节点都去引用同一个表单属性。 外部表单需要定义一个.form后缀的文件。 外部表单…