首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编译示例ANTRL4输出

编译示例ANTRL4输出
EN

Stack Overflow用户
提问于 2015-07-06 14:08:46
回答 2查看 7.6K关注 0票数 6

在权威性的ANTLR4参考中,我已经运行了第一个示例,它生成了JAVA目标。在C:\JavaLib目录中,当我尝试用;编译它时,它有antlr-4.5-installe.jar;

代码语言:javascript
复制
javac -classpath C:\JavaLib *.java

它会创建以下错误消息;

代码语言:javascript
复制
helloBaseListener.java:13: error: class HelloBaseListener is public, should be declared in a file named HelloBaseListener.java
public class HelloBaseListener implements HelloListener {
   ^
helloListener.java:9: error: class HelloListener is public, should be declared in a file named HelloListener.java
public interface HelloListener extends ParseTreeListener {
   ^
helloParser.java:12: error: class HelloParser is public, should be declared in a file named HelloParser.java
public class HelloParser extends Parser {
   ^
helloBaseListener.java:3: error: package org.antlr.v4.runtime does not exist
import org.antlr.v4.runtime.ParserRuleContext;
                       ^
helloBaseListener.java:4: error: package org.antlr.v4.runtime.misc does not exist
import org.antlr.v4.runtime.misc.NotNull;
                            ^
helloBaseListener.java:5: error: package org.antlr.v4.runtime.tree does not exist
import org.antlr.v4.runtime.tree.ErrorNode;
....

我做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2015-07-07 10:23:03

有两个问题。其一是文件必须命名为"Hello.g4“,而不是"hello.g4”,因为语法被指定为Hello。第二个是类路径,它需要jar文件的路径和名称,以及当前目录。以下命令起作用了;

代码语言:javascript
复制
javac -classpath .;C:\JavaLib\antlr-4.5-complete.jar *.java
票数 7
EN

Stack Overflow用户

发布于 2020-10-16 04:58:31

关于上面的查询re冒号分隔符,那么答案是肯定的。我通过debian软件包进行安装,并在确定如何设置CLASSPATH之前使用了该命令

代码语言:javascript
复制
javac -classpath /usr/share/java/antlr4-runtime.jar  Expr*.java

在此之前,我得到了大量的编译错误。此外,在debian上似乎值得注意的是,我的.bash_profile从未加载过,所以我需要将它放在.bashrc中

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31238748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档