问题标签 [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.

0 投票
5 回答
12056 浏览

javacc - 有人有 javacc 教程的链接吗?

在网上很难找到这种文件。

我在JAVAWORLD找到了一个,但是这个不包括jjTree和visitor的。

有没有人碰巧有一些教程的链接?

0 投票
6 回答
566 浏览

parsing - 人们用解析器做什么,比如 antlr javacc?

出于好奇,我想知道人们可以用解析器做什么,它们是如何应用的,人们通常用它来创建什么?

我知道它在编程语言行业中被广泛使用,但是我认为这只是其中的一小部分,对吧?

0 投票
3 回答
2414 浏览

java - 使用 JavaCC 格式化 ParseException

我想知道如何将 JavaCC 抛出的 ParseException 格式化为人类可读的格式:实际上,它在异常的标记引用中包含诸如beginLine, beginColumn, endColumn,之类的字段endLine,但不包含对已解析源的引用。

谢谢!:)

0 投票
2 回答
1596 浏览

java - JavaCC:我希望从动态生成的 jj 文件生成 java 类并在运行时编译它们

我正在重构一个使用 javaCC 在编译期间创建专有语言解析器的项目。由于可以同时存在不同的语言变体,所以决定在运行时从jj文件中动态生成java源代码,然后将java文件编译成class文件并加载。

为了更有效地执行此操作,我想将内存中的 java 文件生成到我想的某个流中。JavaCC 的 API Javadoc 不太容易访问 :)。

如何最好地进步?

0 投票
3 回答
7170 浏览

java - JavaCC 问题 - 生成的代码未找到所有解析错误

刚开始使用 JavaCC。但我有一个奇怪的行为。我想以标记(字母和数字)的形式验证输入,这些标记与符号(+、-、/)连接,并且可以包含括号。我希望这是可以理解的:)

在 main 方法中是一个字符串,它应该会产生错误,因为它有一个左括号和两个右括号,但是我没有得到解析异常 --> 为什么?

有人知道为什么我没有得到例外吗?

我在最初的尝试中遇到了左递归和选择冲突,但设法克服了它们。也许那里是我介绍的问题?!

哦 - 也许我的解决方案不是很好 - 忽略这个事实......或者更好,给一些建议;-)

文件:CodeParser.jj

编辑 - 2009 年 11 月 16 日

现在我尝试了ANTLR。

我更改了一些术语以更好地匹配我的问题域。我想出了以下代码(使用本网站上的答案),现在似乎可以完成工作:

顺便说一句... ANTLRWORKS 是一个很好的调试/可视化工具!帮了我很多。

附加信息
上面的代码匹配如下内容:

0 投票
3 回答
1670 浏览

java - JavaCC 与 ANTLR 的优势是什么

太多人告诉我缺点,但如果有的话,它的优点是什么?

0 投票
2 回答
447 浏览

java - 使用 Javacc 进行预处理/在流中推送一些字符?

使用javacc我可以在输入流前面推送一些新字符吗?

例如,假设我的解析器解析以下语法:

我如何告诉 javacc在调用解析器之前${Volume}它的扫描器应该预处理?(Title,(Chapter,Paragraph+)+)

可以使用MORE语句来实现吗?

谢谢

0 投票
1 回答
2295 浏览

javacc - 在 JavaCC 中打印匹配的令牌

我需要打印 javacc 匹配的令牌,但我不知道如何“存储它”。假设我的令牌定义是:

我的 parser.input() 函数是:

但是,给定一些输入,比如 5,我真正想要输出的是:

有小费吗?谢谢

0 投票
3 回答
9438 浏览

java - Javacc 解析器选项 LOOKAHEAD,Java

我最近开始使用 javacc 使用语法分析器,其中一个字段是选项之一...我有如下代码:

LOOKAHEAD 选项到底是什么意思?谢谢

0 投票
1 回答
374 浏览

javacc - Javacc 中的“理性”标记

如何在 javacc 中创建一个“有理”令牌,该令牌采用有理数并计算其值。敌人示例“2/5”值=0.4。我知道如何为此编写正则表达式,但不知道并且从未被正确教授过如何/在哪里将 java 方法合并到 javacc 代码中。我被告知:

请注意,分母为 0 的有理数是未定义的。如上所示,打印无穷大,而不是生成错误。建议:您可以使用 Java String 类中的 indexOf 和 substring 方法来提取有理数的分子和分母部分。定义第二个变量(例如 val2)以存储分母的值是个好主意。此外,将除法的结果转换为双倍,即(双)val / val2。

请记住,我是 javacc 的新手,但对 java 有基本的了解。任何关于此事的建议将不胜感激。非常感谢。