问题标签 [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 投票
2 回答
576 浏览

jvm - JRuby 和 Jython 使用什么解析器来生成 JVM 字节码?

你们知道 JRuby 和 Jython 使用什么解析器来生成 JVM 字节码吗?是 ANTLR 还是 JavaCC 还是他们在实现中使用了其他解析器?

0 投票
1 回答
149 浏览

javacc - JavaCC中使用JJTree的并行关系表达式(即1<2<3),这可能吗?

我查看了 JavaCC 包附带的“解释器”示例。它允许并行关系表达式的语法,但它没有给出正确的答案。

这将给出 ClassCastException,因为解释器处理“1<2”并将布尔值放入堆栈,而第三个变量 3 是一个整数,因此它不能与布尔值进行比较。

我尝试更改包含

如果我在解释()的末尾添加“top++”,堆栈将保留最后一个值,但是当处理完成时,它将显示最后一个数字而不是布尔值。

你们有做这件事的想法吗?非常感谢。

0 投票
1 回答
387 浏览

java - JavaCC:与通配符匹配但不消耗状态切换

在JavaCC中,例如在 state 中DEFAULT,我要进行状态切换,如果下一个标记是<A>,我要切换到 state STATE_A,否则我要切换到 state STATE_B

我尝试使用类似以下代码的内容""作为通配符:

但它不起作用,当遇到一个无法还原的字符时A,该函数立即返回,并且不会切换到STATE_B,因此""似乎无法完成这项工作。

你有什么建议吗?谢谢。

0 投票
2 回答
361 浏览

java - Java:有限递归中的 Stackoverflow

我为一些命题逻辑表达式编写了一个 javaCC 解析器。表达式可以变得很长,有 30k 个字符。

当我解析这么大的表达式时,我得到一个堆栈溢出异常。

是否有一些 VM 参数决定了堆栈大小?

或者在这种情况下你会怎么做?

谢谢

0 投票
2 回答
750 浏览

cobol - 这个 cobol 语法不处理 --9 图片

我在我的 javacc 中使用这个站点上的语法。除了一些图片陈述外,它还可以正常工作。例如----、---、---.99 或--9。

http://mapage.noos.fr/~bpinon/cobol.jj

它似乎不喜欢超过一个破折号。

我需要改变什么来支持我的图片示例。

我搞砸了

但似乎没有任何效果。任何帮助深表感谢

编辑:

这是整行的正则表达式:

如果我想接受05 TEST3 REDEFINES TEST2 PIC X(10).,我会将正则表达式更改为:

非常感谢到目前为止的帮助

0 投票
1 回答
579 浏览

cobol - 逗号是否仅用于 Cobol 中的图片子句

我正在使用这个解析器http://mapage.noos.fr/~bpinon/cobol.jj并试图让图片与逗号一起使用。它似乎只支持图片字符串中的逗号作为分隔符。只是想知道 Cobol 中还有哪些地方使用了逗号。

干杯

0 投票
1 回答
178 浏览

compiler-construction - 在编译器中定义变量名,除了保留字

我正在尝试使用 JavaCC 为 Java 的一个子集做一个词法分析器。变量名可以是字母、数字和_的任意组合,以字母开头。我只有一个问题,保留字(如int, new, ...)不能用作变量名,我想知道如何声明它。现在我有这个,首先声明保留字,然后是变量名的规则,是否足够,然后由解析器来处理它?

TOK_ID 是变量名的规则。

谢谢,如果有不清楚的地方问我。

0 投票
2 回答
2909 浏览

whitespace - 任何类型的空格上的 JavaCC 词法错误

我清楚地在我的 SKIP 令牌中定义了 unicode 空白字符,如下所示:

但是,当我运行 Java CC 时,它会很好地解析所有标记,直到我遇到上面提到的任何空白字符并抛出以下错误:

所以你可以看到它运行良好,直到它到达“\r”。我得到与“”、“\n”和“\t”相同的错误。有什么想法吗?谢谢

0 投票
2 回答
2296 浏览

regex - 在 javacc 中正确跳过单行注释的另一种方法?<"//" (~["\n"])* "\n"> 导致多行注释跳过中断

所以我遇到了 javacc 和跳过评论的问题。我有一个多行注释跳过,它本身可以包含多个注释(注释是出现在/*和 a中的任何内容*/),我还使用此代码段<"//" (~["\n"])* "\n">来跳过单行注释。两者的功能相互独立,但是当组合在一起时,单行注释似乎打破了我的多行注释。

解析器不再识别多行注释,而是将其解析为 OTHER( /*)、ID 等的组合。

下面是我的多行注释和单行注释跳过代码:

我的问题是:

  • 当单行注释在我相对较新的眼中看起来具有完全不同的正则表达式时,单行注释如何导致多行注释中断?
  • 他们是编写单行注释 skip 的一种方法,以便它执行与以前相同的功能,但在两者一起使用时不会破坏多行注释?
0 投票
1 回答
144 浏览

java - 我可以使用什么库来解析 Java 中的单词?

我试图在很多类别(日期、年份、时间、名称、标点符号、电子邮件等)中发现适合它们的单词类型。我正在编写自己的代码来检测这一点(并且有效),但我发现了像 ANTLR 和 JavaCC 这样的库。

我想做的是为这些图书馆做些什么?如果是,我应该使用什么,如果不是,我可以使用什么?

有哪些建议?JavaCC,ANTRL,还有一些吗?我看到 JavaCC 生成了一些类,但是我不希望它做一些事情,比如标记化。