根据此问题,我已通过自制软件安装了ANTLR:
brew install antlr
并安装在:
/usr/local/Cellar/antlr/<version>/
并通过
pip3 install antlr4-python3-runtime
从这里开始,我运行
export CLASSPATH=".:/usr/local/Cellar/antlr/<version>/antlr-<version>-complete.jar:$CLASSPATH"
但当我运行命令时
grun <grammarName> <inputFile>
我收到一条臭名昭著的错误消息:
无法加载
如果您能帮助我了解问题以及如何解决,我将不胜感激。
P、 这不要紧,但你可以看到我在这里编写的代码。
此错误消息表示TestRig(grun
别名使用的)在类路径中找不到Parser(或Lexer)类。如果您将生成的Parser放在包中,您可能需要考虑包名,但主要的是生成的(和编译的)类在您的类路径中。
而且TestRig将grammarName和startRule作为参数,并期望您的输入来自stdin。
我克隆了你的回购协议,以便更仔细地研究你的问题。
为什么grun会给你这个问题,最直接的问题是你在语法文件中指定了你的目标语言(看起来我需要收回关于它不是你语法中的任何东西的评论)。通过在语法中将python指定为目标语言,您没有生成*。TestRig类(由grun别名使用)需要执行的java类。
我从语法中删除了目标语言选项,并能够对您的示例输入运行grun命令。为了正确解析,我冒昧地修改了语法中的一些内容:
我使用的语法是:
grammar ElmerSolver;
// Parser Rules
// eostmt: ';' | CR;
statement: ';';
statement_list: statement*;
sections: section+ EOF;
// section: SectionName /* statement_list */ End;
// Lexer Rules
fragment DIGIT: [0-9];
Integer: DIGIT+;
Float:
[+-]? (DIGIT+ ([.]DIGIT*)? | [.]DIGIT+) ([Ee][+-]? DIGIT+)?;
section:
'Header' statement_list End # headerSection
| 'Simulation' statement_list End # simulatorSection
| 'Constants' statement_list End # constantsSection
| 'Body ' Integer statement_list End # bodySection
| 'Material ' Integer statement_list End # materialSection
| 'Body Force ' Integer statement_list End # bodyForceSection
| 'Equation ' Integer statement_list End # equationSection
| 'Solver ' Integer statement_list End # solverSection
| 'Boundary Condition ' Integer statement_list End # boundaryConditionSection
| 'Initial Condition ' Integer statement_list End # initialConditionSection
| 'Component' Integer statement_list End # componentSection;
End: 'End';
// statementEnd: ';' NewLine*;
NewLine: ('\r'? '\n' | '\n' | '\r') -> skip;
LineJoining:
'\\' WhiteSpace? ('\r'? '\n' | '\r' | '\f') -> skip;
WhiteSpace: [ \t\r\n]+ -> skip;
LineComment: '#' ~( '\r' | '\n')* -> skip;
有了这些变化,我跑了
➜ antlr4 ElmerSolver.g4
javac *.java
grun ElmerSolver sections -tree < examples/ex001.sif
并得到输出:
(sections (section Simulation statement_list End) (section Equation 1 statement_list End) <EOF>)
我正在为我的一个讲座的一个项目工作,我需要下载软件包心理学2,以便使用postgresql数据库。不幸的是,当我尝试pip的安装心理g2以下错误弹出: 有人知道为什么会这样吗?提前谢谢!
既然要学习 Go 语言,那么肯定要在本机安装 Go 语言的开发环境,这节课我们就来学习下如何在 Windows 操作系统下安装 Go 语言的开发环境: 1. Go 语言的下载 注:本文以本文撰写时的 Go 语言最新版本,也就是 go.1.13.8 版本为例*。* 1.1 Go语言的下载 下载 MacOS 版本的 Go 语言环境压缩包: curl -O https://studygolang.com
如何在macOS上使用自制程序只安装JRE(而不是JDK)?
我能做什么来解决这个问题?我要尽快处理这件事。 谢谢
如果我在自制的MacOS Mojave上这样做: 我得到: 我已经找了好几天了,也尝试了各种解决方案,比如这里,但是至今没有运气。知道我为什么会出现这个错误以及如何修复它吗? 提前感谢!
本小节我们将介绍如何在 MacOS 平台安装 Java 。 如果你想在其他平台安装 Java,请查看对应平台的安装教程: 在 Windows 上安装 Java 在 Linux 上安装 Java 1. 下载安装包 我们首先打开 Oracle 官网的 JDK 下载地址,找到 Java SE 14 版块,点击 JDK Download 按钮。 点击 JDK Download 按钮后我们会跳转到 JDK