Antlr4 Can‘t load Hello as lexer or parser
Posted @SmartSi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Antlr4 Can‘t load Hello as lexer or parser相关的知识,希望对你有一定的参考价值。
1. 问题
在使用 antlr4-test Hello r -tokens
命令测试语法文件时,抛出如下异常:
Can't load Hello as lexer or parser
antlr4-test 是我们对
java org.antlr.v4.gui.TestRig
定义的一个别名。
2. 解决方案
如果出现此问题需要检查如下几项是否正确,如果都配置正确应该不会看到上述错误:
- 确保生成了
*.java
文件 - 确保生成了
*.class
文件 - 正确设置了 CLASSPATH:CLASSPATH 中的 ‘.’ 非常关键,代表当前目录。如果没有它,Java 编译器和 Java 虚拟机就无法加载当前目录的 class 文件。
检查发现我们没有运行 javac *.java
来编译 Antlr 生成的 Java 代码。我们通过在语法文件上运行 Antlr 命令来生成 Java 源文件,但是 TestRig 需要已编译好的 .class
文件。在使用 TestRig 之前,需要在源文件上运行 Java 编译器生成 *.class
文件:
localhost:antlr wy$ javac *.java
localhost:antlr wy$ ll
total 6976
drwxr-xr-x 18 wy staff 612 12 30 20:23 ./
drwxrwxrwx 56 667 staff 1904 12 30 10:31 ../
-rw-r--r-- 1 wy staff 250 12 30 20:22 Hello.g4
-rw-r--r-- 1 wy staff 308 12 30 20:22 Hello.interp
-rw-r--r-- 1 wy staff 27 12 30 20:22 Hello.tokens
-rw-r--r-- 1 wy staff 794 12 30 20:23 HelloBaseListener.class
-rw-r--r-- 1 wy staff 1304 12 30 20:22 HelloBaseListener.java
-rw-r--r-- 1 wy staff 3722 12 30 20:23 HelloLexer.class
-rw-r--r-- 1 wy staff 1055 12 30 20:22 HelloLexer.interp
-rw-r--r-- 1 wy staff 3562 12 30 20:22 HelloLexer.java
-rw-r--r-- 1 wy staff 27 12 30 20:22 HelloLexer.tokens
-rw-r--r-- 1 wy staff 304 12 30 20:23 HelloListener.class
-rw-r--r-- 1 wy staff 536 12 30 20:22 HelloListener.java
-rw-r--r-- 1 wy staff 869 12 30 20:23 HelloParser$RContext.class
-rw-r--r-- 1 wy staff 4377 12 30 20:23 HelloParser.class
-rw-r--r-- 1 wy staff 3854 12 30 20:22 HelloParser.java
-rw-r--r--@ 1 wy staff 3508089 12 30 11:11 antlr-4.9.3-complete.jar
以上是关于Antlr4 Can‘t load Hello as lexer or parser的主要内容,如果未能解决你的问题,请参考以下文章
MyEclipse: Can't load IA 32-bit .dll on a AMD 64-bit platform
Memory integrity 导致 A driver can't load on this device
Delphi 2010 Can't load package C:ProgrammeAfalinasoftAdd-in Express 2d5unitsadxwizardd5.bpl
解决Tomcat: Can't load IA 32-bit .dll on a AMD 64-bit platform 问题
解决Tomcat: Can't load IA 32-bit .dll on a AMD 64-bit platform问题