【ANTLR4】使用ANTLR4生成Java类的两种方式

本文介绍了使用ANTLR4在IDEA中生成Java类时遇到的Override限制问题及其解决方案,以及如何通过Maven配置实现ANTLR4代码生成,并在控制台运行mvn命令来生成目标代码。
部署运行你感兴趣的模型镜像

1. 使用IDEA的界面

这种情况再网上的资源里非常多,有详细的图文介绍,比如https://blog.youkuaiyun.com/poised/article/details/51420478中提到的,链接里还提到了使用命令的方法。

使用IDEA处理的时候,遇到一个问题:

当生成访问器的时候,总是会出现 Override is not allowed in implementing interface method. 网上找到了解决方法:https://blog.youkuaiyun.com/bdstjk/article/details/52152645

2. 使用mvn

再工程中,不可能用IDEA然后点鼠标生成那些访问器/监听器的,所以可以使用mvn。

在dependencies中添加:

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

这样的话,仅仅是可以使用antlr4的库,也就是在写代码的时候可以import org.antlr.v4.runtime.CharStream等。如果需要用mvn生成Java类,需要添加plugin:

<build>
    <plugins>
        <plugin>
            <groupId>org.antlr</groupId>
            <artifactId>antlr4-maven-plugin</artifactId>
            <version>4.5</version>
            <configuration>
                <sourceDirectory>${basedir}/src</sourceDirectory>
                <listener>true</listener>
                <visitor>true</visitor>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>antlr4</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

控制台输 mvn clean package 之后就在target目录下的generated-sources里出现了生成的代码。

您可能感兴趣的与本文相关的镜像

Seed-Coder-8B-Base

Seed-Coder-8B-Base

文本生成
Seed-Coder

Seed-Coder是一个功能强大、透明、参数高效的 8B 级开源代码模型系列,包括基础变体、指导变体和推理变体,由字节团队开源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值