当前位置: 首页 > 面试题库 >

antlr4-无法将Hello加载为词法分析器或解析器

潘自强
2023-03-14
问题内容

我最近不得不使用解析器来做一个项目。我下载ANTLR4并按照书中描述的步骤进行操作The Definitive ANTLR4 Reference。以下是我在命令行中键入的步骤:

  1. export CLASSPATH=".:/<Mydirectory>/antlr-4.2.2-complete.jar:$CLASSPATH"
  2. alias antlr4='java -jar /<My directory>/antlr-4.2.2-complete.jar'
  3. alias grun='java org.antlr.v4.runtime.misc.TestRig'
  4. antlr4 Hello.g4

一切正常,它生成我需要的java文件。但是,当我进入

  1. grun Hello r -tokens

它报告

无法将Hello加载为词法分析器或解析器。

我在Google上搜索了一些信息,但仍然无法确定发生了什么。


问题答案:

您通过在语法上运行ANTLR生成了Java源文件,但是TestRig正在寻找已编译的.class文件。使用TestRig之前,您需要在源文件上运行Java编译器。



 类似资料:
  • 我最近不得不使用解析器来做一个项目。我下载了,并按照《最终ANTLR4Reference》一书中描述的步骤进行操作。以下是我在命令行中键入的步骤: 所有事情都很好,它生成我需要的java文件。但是,在我输入之后 它报告说 无法将Hello作为lexer或分析器加载。 我谷歌了一些信息,但仍然不知道发生了什么。

  • 运行命令时,出现错误 运行上述命令时会创建以下文件:- 运行grun工具:我尝试了不同的解析器规则,但得到了相同的错误。

  • 我对ANTLR相对来说是新的,所以请原谅我。 但是当我试图解析下面的表达式时 我最终出现以下错误: 第1:38行:'''处的令牌识别错误 第1:42行:'''处的令牌识别错误 规则r没有方法或者它有参数 规则'r'的意思是什么?我怎么能理解问题的原因呢?任何帮助都将不胜感激!

  • 因为词法规则可以使用递归,所以词法解析器在技术上和语法解析器一样强大。那意味着我们甚至可以在词法分析器中匹配语法结构。或者,在另一个极端,我们可以把字符当作记号,使用语法分析器去把语法结构应用到字符流(这种被称为无扫描语法分析器)。这导致什么在词法分析器中匹配和什么在语法分析器中匹配的界线在哪里并不是很明显。幸运的是,有几条经验法则可以让我们做出判断: 在词法分析器中匹配和丢弃任何语法分析器根本不

  • 词法解析、语法解析 这一节我们分析下PHP的解析阶段,即 PHP代码->抽象语法树(AST) 的过程。 PHP使用re2c、bison完成这个阶段的工作: re2c: 词法分析器,将输入分割为一个个有意义的词块,称为token bison: 语法分析器,确定词法分析器分割出的token是如何彼此关联的 例如: $a = 2 + 3; 词法分析器将上面的语句分解为这些token:$a、=、2、+、3

  • 问题内容: 我知道很多人都遇到了这个问题,并且我已经搜索了Google / Stack Overflow,但我仍然不知道自己在做什么错。 我尝试搜索不必要的语句,以及构建/清理/刷新/等,但似乎无法弄清楚。也许我安装SDK的方式有问题?我不认为有,但是我对此很陌生,所以很可能我在某个地方犯了错误。 另外,我收到此错误: 谁能帮我?谢谢! 编辑: 我的XML文件: 问题答案: 在清单中 ( 标记 的