当前位置: 首页 > 知识库问答 >
问题:

用ANTLR和Java解析树构建

赖杰
2023-03-14

您好,我需要一些关于使用antlr和java构建简单解析树的帮助。我曾尝试使用powershell编译和运行语法文件(即pascal.g4文件),我希望从中生成一些java文件,但有时我尝试使用命令“\antlr.bat-package pdl-o pdl。\pascal.g4”在powershell上收到一条消息,说明“系统找不到指定的文件”。

我想我输入的命令可能是错误的,但无论如何,我已经得到了语法文件和。bat文件(grun.bat、java.bat

我认为这些基本上是构建解析树所需的所有文件。至于所有这些文件所在的文件夹位置是C:\用户\联想\文档\test2我已经看了其他一些例子,但是我现在真的不能再进一步了,有人能帮我构建这个吗?

非常感谢。

共有2个答案

宗政卓
2023-03-14

这里是我使用的一行程序版本,采用了权威的ANTLR 4引用,以使用对包含的目录的相对引用。CMD/。BAT文件。。。

<代码>@java-cp%~dp0。。\ClassLib\antlr-4.5-完成。jar;%类路径%组织。antlr。v4.工具%*

使用dp0有助于避免对其中的绝对路径进行硬编码。。。

钮博裕
2023-03-14

该批处理文件只不过是一个提示。

尝试显式地使用路径和参数,而不要试图强制Powershell以与批处理文件执行兼容的方式传递参数。

类似这样:

@echo off
rem Execute the Antlr compiler/generator tool

SETLOCAL
set CLASSPATH=C:\Users\Lenovo\Documents\test2\antlr-4.5-complete.jar;%CLASSPATH%

cd /d C:\Users\Lenovo\Documents\test2\
"C:\Program Files\Java\jre8\bin\java.exe" org.antlr.v4.Tool pascal.g4

timeout 4
 类似资料:
  • 我有一个处理AND和OR表达式的antlr规则。看起来是这样的: 这将生成一个非常深的解析树。E、 g.如果你有 结果是这样的树: 这可能会变得非常深入和昂贵,所以我想添加一个优化。我想同时处理多个顺序AND表达式(类似于OR-s)。 所以我想这样做: 我认为这将为序列中的所有And-s生成一个节点。 然而,当我这样做的时候,antlr仍然选择生成递归树。我想那是因为规则是模棱两可的。有什么想法可

  • 我试图在Windows上查看antlr4解析树。我按照https://www.antlr.org/上的说明设置了antlr4路径和grun路径,还添加了类路径。带有"-tree "的grun命令可以工作,但是当我指定"-gui "时,它在cmd中冻结了。 我尝试按照Java上的指令修复该错误消息无法打开/创建prefs错误,它消失了,但我仍然看不到解析树。

  • 我使用ANTLR Version4创建编译器。第一阶段是Lexer部分。我创建了“compilerlexer.g4”文件,并在其中输入了lexer规则。 compilerlexer.g4: null 有几十个这样的警告和错误。病因是什么? 一般问题:使用组合语法和单独使用lexer和parser有什么不同?如何连接单独的语法和lexer文件?

  • 我有一个简单的HelloWorld。g4语法(见底部)。我能够成功生成<代码>。py文件使用: 现在我想使用带有标志的来生成解析树GUI。我安装了ANTRL Python运行时()。我可以打开一个Python解释器并键入: 并且解释器识别 模块。 当我像这样运行< code>TestRig时: 我收到此错误消息: 从我的调查中,我发现了几篇列出相同错误消息的帖子。但是,在这些情况下,他们忘记在类路

  • 我已经尝试了整整一周使用antlr构建一个语法,允许我解析电子邮件消息。 我的目标不是将整个电子邮件彻底解析为令牌,而是将其分解为相关部分。 这是我必须处理的文档格式。描述不属于消息一部分的内联注释: 我面临的问题如下: 我没有想出一个好方法来跳过消息开头的文本,并在找到标记后才开始应用解析规则。截面类型1 捕获节开始和句子标记之间节内的所有文本 在SECTION\u结束标记之后,忽略后面的所有文

  • 简易 XML 操作 通过本文,您将了解使用 Groovy 分解 XML 是多么地容易。在本期的 实战 Groovy 中,作者 Scott Davis 演示了无论您是使用 MarkupBuilder 和 StreamingMarkupBuilder 创建 XML,还是使用 XmlParser 和 XmlSlurper 解析 XML,Groovy 都提供了一系列用于处理这类流行数据格式的工具。 XML