问题标签 [antlr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 编译 ANTLRWorks 生成的类文件
我正在使用 ANTLRWorks 创建 ANTLR 语法。我有一个有效的语法,并且也生成了解析器和词法分析器源文件。我还尝试调试生成的代码,并且输出与调试器输出中的预期一致。
但是当我尝试调用调试器生成的 __Test__ 类时,控制台中没有任何内容。我已经正确设置了类路径,因为我可以使用相同的类路径成功编译 __Test__.java。
会有什么问题?是否有使用 antlr 和 antlrworks 编写和编译示例解析器的清晰教程?
namespaces - ANTLR v3 C# 命名空间
希望这是一个非常快的一个;)我已经在 ANTLR3 中编写了一个词法分析器/解析器规范,并且目标是 CSharp2 目标。生成的代码可以正常工作,但我无法让 ANTLR 将 C# 输出放入命名空间。
语法文件的相关部分如下:
为了生成正确的命名空间,我尝试过:
和
但是这两个都会产生错误,声称该文件没有规则。
任何帮助表示赞赏。
c# - 如何在 ANTLR v3 生成的解析器或词法分析器上指定访问说明符?
使用 ANTLR v3 和 CSharp2 语言说明符,有没有办法表明您希望生成的词法分析器或解析器是内部的而不是默认的公共?
命名空间指定为:
我会假设访问说明符存在类似的东西,但我一直找不到它。
c# - C# ANTLR 语法?
我正在寻找 C# 的交钥匙ANTLR语法,它生成可用的抽象语法树 (AST),并且与后端语言无关或以 C#、C、C++ 或 D 为目标。
它不需要支持错误报告。
PS 我不愿意做任何修复,因为替代方案不是很难。
antlr - ANTLR 或 JavaCC 哪个更好?
关注点是文档/可学习性、eclipse 集成、工具、社区支持和性能(大致按此顺序)。
inversion-of-control - SFig 语言语法是否高效且清晰(并且比 Spring-Framework 的 XML DSL 更好)?
附录编辑:
由于没有经验丰富的 Spring Framework 开发人员的任何反馈,因此尚未接受对此的回答。
我一直在研究用于 Spring-Framework applicationContext.xml 文件的替代 DSL(其中描述了 bean 初始化和依赖关系以加载到 Spring bean 工厂中)。
我的动机是我完全不喜欢 Spring 为此目的使用 XML,也不喜欢迄今为止设计的任何替代方案。出于各种我不会深入讨论的原因,我想继续使用声明性语言,而不是像 Groovy 这样的命令式脚本语言。
所以我抓住了 ANTLR 解析器工具,并一直在设计一个新的 bean factory DSL,我称之为 SFig。这是一个有关此内容的链接:
SFig™ - Spring-Framework 的替代元数据配置语言
这是源代码存储库站点:
http://code.google.com/p/sfig/
我很想知道到目前为止我在语言语法上的表现如何。您认为 SFig 既高效又清晰易懂?(我现在特别关心多行文本字符串):
java - 在 JVM 之上运行/解释 C?
有没有办法在 JVM 上运行纯 c 代码?
不通过 JNI 连接,运行,就像你可以通过 JRuby 运行 ruby 代码,或者通过 Rhino 运行 javascript。
如果没有当前的解决方案,您建议我应该怎么做?
显然,我想使用尽可能多的部分解决方案来实现它。
ANTLR 似乎是一个很好的起点,拥有完整的“ANSI C”语法实现......
我应该使用 ANTLR 生成的代码在 JVM 上构建一个“玩具”虚拟机吗?
antlr - 如何解决 ANTLR 2 中数字和日期之间的词汇歧义?
我的词法分析器中有两种标记类型,定义如下:
我会认为,由于日期必须在前五个字符内包含连字符,因此在词法分析器选项中设置 k=5 就足以让词法分析器始终将两者区分开来。但是,当我运行 antlr 时,我收到了这个警告:
并且解析器无法识别超过四位数的数字。如何解决词汇歧义?
parsing - Chomsky 层次结构和 LL(*) 解析器
我想解析一种编程语言。我阅读了很多关于形式语言、乔姆斯基层次结构和 ANTLR 的内容。但是我找不到有关如何将 ANTLR v3 语言作为 LL(*) 递归下降解析器接受到 chomsky 层次结构的信息。
Chomsky 类型如何与 LL(*) 混合?非常感谢任何信息(在线、书籍、论文)。
编辑:ANTLR 的句法/语义谓词和回溯如何映射到这个?
parsing - 在 ANTLR 上编写 subshell 解析规则
我正在尝试在 ANTLRv3 上创建一个简单的类似 BaSH 的语法,但无法解析(和检查)子 shell 命令中的输入。
进一步说明:
我想解析以下输入:
并且能够像使用简单输入(例如:命令参数)一样检查它的内容。
IE:
解析它会生成一棵树
(标记为大写)
我可以忽略 '$('s 和 '`'s,但这不会涵盖在双引号字符串中使用子 shell 的情况,例如:
所以......关于如何实现这一目标的任何提示?