问题标签 [javacc]
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.
grammar - 使用JavaCC解析C语法的源码
作为项目任务,我需要从 Java 解析纯 C 语法以生成 AST 输出。作为一家初创公司,我正在使用我在语法文件中找到的文件 c.jj
http://java.net/projects/javacc/sources/svn/
但我发现它只有句法和词法动作,没有解析 C 源代码的真正语义。是否还有其他包含 typedef、变量、构造函数、包含文件的来源?
assembly - JavaCC 解析器从汇编语言到机器码的指令分离问题
HY.我正在尝试使用 JavaCC(汇编程序)制作一个解析器,以将汇编代码(微控制器 8051)转换为机器代码。我已经阅读了有关 javaCC 语法及其结构方式的信息,但我遇到了困境。例如我有ADD
指示:
并且对于他们每个人,我都有一个 Machine code (hexa code)ex:ADD A,R0
转换为 28H 。而且我也可以得到MOV
指令:
MOV A,Rn
或者MOV A,@Ri
但我也有 MOV data_addr,Rn
等等 MOV R6,#data
。
现在我的问题是我如何在两条指令之间做出这种区别。假设我这样定义我的标记:
我无法为每个标记定义函数来指定特定行为的函数,因为我有很多指令。说这是一个很少,你不觉得吗?....所以我几乎被卡住了。我不知道该怎么走。
谢谢你的帮助。!
Token{
<IN_MOV :"mov">
|<IN_ADD:"add"
}token.image==.equals("mov"), then go on one direction to the specific behaviour
java - JavaCC/JJTree 节点类中缺少字段?
我“继承”了一个项目,该项目使用JavaCC的 JJTree来实现一个简单的语言解析器。由于代码已经超过 5 年,我决定在进行任何实际开发之前将所有依赖项(包括 JavaCC)更新到最新版本。
因此,我删除了所有由 JJTree/JavaCC 生成的文件,并使用最新版本(5.0)重新构建它们。但是,生成的文件似乎缺少以前存在的字段和方法,并且代码不再编译。
我假设 JavaCC 中发生了一些变化,需要我更新语法文件,所以我尝试了Interpretter
当前 JavaCC 发行版中的示例,结果相同:缺少不允许代码编译的类字段。
例如,以下是示例的SPL.jjt
定义Interpretter
:
此示例的文件夹包含一个ASTId.java
最初具有以下内容的文件:
重新生成AST*.java
文件后,内容发生了变化:
这里缺少很多内容,因此SPLParser.java
生成的文件无法编译,因为它使用了相应类中未定义的字段。
我错过了什么?是否有我必须使用的 JJTree 或 JavaCC 选项?也许在语法文件中进行修改?或者,由于我真的不知道原始文件是否已被编辑,我是否应该直接修改生成的文件并手动添加缺失的位?
我没有使用 JavaCC 的经验,因此我将不胜感激任何解决此问题的提示。
java - Javacc 的单元测试
我在我的应用程序中使用 Javacc 解析器生成器,并且想对我的语法进行一些单元测试。
我想知道是否有任何用于 javacc 的单元测试框架,例如 gUnit 用于 ANTLR。如果不是,那么测试这种语法的最佳方法是什么?
java - 试图理解解析器
我正在尝试使用 JavaCC 构建一个可以处理各种表达式的简单命令行计算器。虽然有很多关于如何编写语法的教程,但到目前为止我所看到的都没有解释之后会发生什么。
我现在理解的是,一个字符串传入解析器后,会被拆分成一个tokens,变成一个解析树。接下来发生什么?我是否遍历解析树,对每个节点的内容进行一堆 if-else 字符串比较,然后执行适当的功能?
character-encoding - 如何在 JavaCC 中支持西里尔字母?
我可以为 *.jjt 文件制作西里尔字母吗?
例如,令牌在 jjt 中给出:
但是 jj 文件中的标记看起来很糟糕:
使用以下选项:
如果我在她的班级的帮助下做 Unicode:
程序启动后:
结果,我可以看到 unicode 字符串不匹配。例如:
你知道为什么会发生这种情况吗?
PS:此错误仅在 Windows 操作系统下出现。
eclipse - Eclipse 编译错误
我将一些 JTB 和 JavaCC 生成的文件导入到 Eclipse 中,有一行给我一个错误 - 大多数类文件的第一行(注释)说“无法解析类型 java.lang.Object。它间接引用自所需的 .class 文件”我该如何解决这个问题?
java - 令牌定义中的 JavaCC 操作
我想知道是否可以连接到 JavaCC 的词法分析器来调用一个函数来检查一个字符是否有效。
我问的原因是我试图实现有点像:
其中 id() 是:
这是可能吗?
eclipse - 是否有任何使用 JavaCC 的 Eclipse 语言 IDE -plugins-?
我正在使用 JavaCC 为 Eclipse 创建一个语言插件,我想知道是否有任何用于 Eclipse 的稳定语言 IDE 使用 JavaCC 创建它们的 AST 表示和 Lexer/Parser 文件。谢谢。
objective-c - 解析 Objective-C 代码以进行静态分析
我喜欢静态分析和编译时检查,几乎是个错误,但我日常工作的大部分时间都在 Objective-C 中。为了解决这种紧张关系,我希望能够编写自己的分析工具,可以在我的 Objective-C 项目中运行。
但是在互联网上搜索表明人们很难整理出完整的 Objective-C 语法。一个网站 基本上建议放弃。
我确实在 ANTLR 网站上找到了一个语法,但是当我启动它时,我根本无法让它解析任何东西。例如,它响应了以下行:
和src/main/resources/somecode.m line 1:0 no viable alternative at input 'void'
:(
我仔细查看了语法,发现以下令人沮丧的免责声明:
但我需要一些可以解析接口和实现的东西。
那里有完整的 Objective-C 2.0 语法吗?我更喜欢可以与 Scala 一起使用的东西(因此任何与 Java 兼容的东西,比如 ANTLR,都是完美的),但在这一点上,我愿意调整为另一个解析器工具包设计的东西。