antlrworks相关内容
我已经为模糊的类似 Java 的 DSL 编写了语法.虽然它仍然存在一些问题(它不能像我希望的那样识别所有输入),但我最担心的是生成的 C 代码不可编译. 我使用 AntlrWorks 1.5 和 Antlr 3.5(Antlr 4 显然不支持 C 目标). 问题在于表达式规则.我有规则 prio14Expression 到 prio0Expression 处理运算符优先级.问题的优先
..
我有以下代码是用 ANTLRWorks 1.4 编写的 语法嗯;s : (put_a_in_b)|(put_out_a)|(drop_kick)|(drop_a)|(put_on_a);put_a_in_b : (PUT_SYN)(ID)(IN_SYN)(ID);put_out_a : (PUT2_SYN)(OUT_SYN)(ID) |(E1)(ID);drop_kick : ('drop')(
..
在 ANTLR4 中使用显式令牌定义的优点和缺点是什么?我发现单括号中的文本比创建单独的标记并使用它代替文本更具描述性和更易于使用. 例如: grammar SimpleTest;顶部:图书馆 |模块 ;图书馆:'图书馆' library_name ';';图书馆名称:标识符;模块:模块 module_name ';';模块名称:标识符;模块:'模块';标识符:[a-zA-Z0-9]+;
..
是否有任何常见的解决方案如何使用不完整的语法?就我而言,我只想检测 Delphi (Pascal) 文件中的方法,这意味着 procedures 和 functions.以下第一次尝试有效 方法:( 过程 | 函数 | . )+; 但这真的是一个解决方案吗?有没有更好的解决方案?是否可以通过操作停止解析(例如,在检测到 implementation 之后).使用预处理器有意义吗?当是时 -
..
在ANTLR中解决这个问题的正确方法是什么: 我有一个简单的语法规则,比如一个包含任意数量元素的列表. 列表: '[]'|'[' 值(逗号值)* ']' 如果我想为列表分配一个返回值,并使该值成为生产中返回值的实际列表,那么正确的方法是什么?我正在娱乐的替代方案是: 在全局范围内创建我自己的堆栈以跟踪这些列表 尝试检查我下面的树节点并以这种方式提取信息 以某种巧妙而酷炫的方式访
..
我已经使用 ANTLRv3IDE 插件在 Eclipse 中使用 ANTLR 有一段时间了.虽然它并不完美,也有点过时,但它的工作做得相当不错. 现在我想为我正在创建的另一个 DSL 切换到 ANTLRv4.但是,Eclipse 支持似乎非常薄弱.我决定试用 ANTLRWorks,它是一个 NetBeans 插件,但我无法安装它(它似乎被锁定到特定的过时版本(201302132200,而我有
..
ANTLR 使用的推荐模式是让解析器构建一个抽象语法树,然后构建树遍历器(又名树语法)来处理它们. 我试图找出为什么我的树语法不起作用的原因,并且很想使用 ANTLRWorks 的调试器,就像我将它用于解析器本身一样.解析器的输入是“源代码",但树解析器的输入是解析器的 AST 结果.我不知道如何将其用作测试树语法的输入. 不清楚在ANTLRWorks中有没有测试树语法的方法.如果可以
..
我正在用 ANTLR 和 ANTLRWorks 2 创建我的第一个语法.我基本上已经完成了语法本身(它识别用所描述的语言编写的代码并构建正确的解析树),但除此之外我还没有开始任何事情. 让我担心的是,解析器规则中每个第一次出现的标记都带有黄色波浪线下划线,上面写着“解析器规则中的隐式标记定义". 例如,在此规则中,'var' 具有波浪线: variableDeclaration: '
..
我正在使用 ANTLRWorks 的调试模式来测试我的 c 语法.在 ANTLRWorks 中进行调试非常有助于更好地理解,但我在理解输出树的不同颜色方面存在问题.我在语法中使用了 backtrack=true.我认为红色意味着调试器走错了路,而绿色告诉我它走对了.但是深红色和深绿色呢? 我添加了一张“小树"的图片,它只匹配以下输入: int 测试; 如果有必要回答这个问题,这里是最重要
..
我在弄清楚 antlr3 API 时遇到了麻烦,因此我可以在某些 javascript 代码中生成和使用解析树.当我使用 antlrWorks(他们的 IDE)打开语法文件时,解释器能够向我展示解析树,它甚至是正确的. 我在追踪有关如何使用 antlr3 运行时在我的代码中获取此解析树的资源时遇到了很多困难.我一直在处理运行时和解析器文件中的各种函数,但无济于事: var input =
..
ANTLRWorks2 中的TestDriver 似乎有点挑剔,它何时接受没有显式EOF 的语法,何时不接受.ANTLR4 Getting中的Hello语法Started Guide 不会在任何地方使用 EOF,所以我推断如果可能的话,最好避免使用显式的 EOF. 使用 EOF 的最佳实践是什么?你什么时候真正需要它? 解决方案 每当您尝试解析整个输入文件时,您都应该在输入规则的末尾
..
对于一个宠物项目,我开始使用 ANTLR.在学习了一些教程之后,我现在正在尝试为我自己的语言创建语法并生成 AST. 现在我主要是在 ANTLRWorks 里乱搞,但现在我已经验证了解析树似乎没问题(反复地,因为我仍在学习,仍然需要做出一些关于树的最终结构)创建 AST.似乎 antlrworks 不会将它可视化(或者至少不使用“解释器"功能,调试在我的任何机器上都不起作用). 底线:
..
Antlr3不会生成Mylexer.java.我使用AntlrWorks ... 当我的语法像这样 语法mylexer; 它会生成myParser.java 这看起来很简单. 我想知道可能是什么原因..以及解决方案... 我没有收到错误消息. 解决方案 我找到了一种方法. AntlrWorks 1.4似乎有一个错误. 当我按ctrl + shift + G生成时,它
..
我是ANTLR和ANTLRWorks的新手,所以我对此感到很困惑: 我正在使用ANTLRWorks 2.1进行语法创建以及随后的词法分析器和解析器(Java目标)的创建.然后,我创建了一个小的Eclipse项目,并从ANTLRWorks导入了ANTLR4 jar,以手动调用词法分析器和解析器,如ANTLR书籍示例中所述.运行应用程序时,出现以下异常: Caused by: java.lang
..
以下可能吗?我想“反转"输入给antlr的输入,并使每个标记成为上一个标记的子代. 因此,对于输入(假设每个令牌都由'.'字符分隔): Stack.Overflow.Horse 我希望我的语法产生以下AST: Horse |---Overflow |---Stack 到目前为止,我已经设法反转了节点,但是我无法使它们彼此成为子节点: funct
..
我想知道在哪里可以找到C教程/使用AntLR的示例.我发现的只是使用Java语言. 我正在集中精力寻找一个主要功能,该功能使用AntLR生成的解析器和词法分析器. 解决方案 contrapunctus.net/blog/2012/antlr-c一个简单的Google即可满足要求.但是请注意,示例是C ++,我不认为ANTLR支持PURE C – Aniket Jan 1 at 1:5
..
我在这方面是新手,因此,我需要您的帮助. 我正在尝试解析Wikipedia转储,而第一步是将它们定义的每个规则映射到ANTLR,不幸的是,我遇到了第一个障碍: 第1:8行多余的输入'''''期望'\'\'' 我不了解发生了什么,请帮忙. 我的代码: grammar Test; options { language = Java; } parse : t
..
我正在将ANTLRWorks 1.4.3与ANTLR 3.4一起使用,以从语法文件中生成基于Java的解析器和词法分析器.生成的.java文件包含类似 的字符串 C:\\Users\\[path to the eclipse project]\\src\\some\\package\\name\\MyGrammar.g 此绝对路径用作 返回字符串,例如在词法分析器和解析器的方法get
..
[11:45:19] warning(200): mygrammar.g:14:57: Decision can match input such as "','" using multiple alternatives: 1, 2 As a result, alternative(s) 2 were disabled for that input [11:45:19] warning(200):
..
我正在从事一个相当标准的编译器项目,为此我选择了ANTLR作为解析器生成器.在将现有语法从v2更新到v3时,我注意到ANTLRWorks(ANTLR的官方IDE)没有在文件中正确显示任何扩展的ASCII字符.即使在使用Notepad ++将文件从ASCII转换为UTF8之后,它仍然将那些字符显示为正方形.在Notepad ++中,它们显示良好. 由于此故障意味着ANTLRWorks在保存文件
..