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

linux - 如何在 javacc 中更新和打印“Rational”令牌?

我在我的 JavaCC 解析器上添加了识别有理数的新标记 RATIONAL。如何更新程序的输出部分以打印有理数的数值?

例如('2/5')值 = 0.4,('8/2')值 = 4.0,('4/0')值 = 无穷大。

如果有人可以帮助我,我将不胜感激。谢谢。

0 投票
2 回答
332 浏览

java - 解释对多个 XML 文档应用多个 xpath 查询的规则

我需要构建一个组件,该组件将在输入中使用一些 XML 文档并检查以下类型的规则:

基本上我的组件应该能够:

  • 用相应的 XML 文档替换 XML 标记(冒号前)
  • 对此 XML 文档应用 xpath 查询
  • 根据预期结果检查 xpath 输出(“=”、“!=”、“包含”)
  • 遵循基本语法(“and”、“or”和括号)
  • 判断规则是真还是假

你知道任何可以帮助我的图书馆吗?也许JavaCC?

谢谢

0 投票
1 回答
784 浏览

.net - .NET 的 JavaCC?

我一直在为大学的作业生成 JavaCC 解析器,想知道是否有类似的简单的 .NET 解析器生成器框架可用?

我知道有 ANTLR,但我发现它对我的口味来说有点太大了,并且真的开始喜欢 JavaCC 带来的简单性。

问候丹尼尔

0 投票
4 回答
14393 浏览

java - JavaCC:请给我“真实”示例的链接

我知道这里有很多 JavaCC 解析器的例子但它们都什么都不做。他们只是接受一个字符串,或者产生解析错误。

我需要的是一些真正的解析器的例子,它们在解析过程中实际上做了一些事情。(例如在解析 XML 字符串时构建 DOM 树)。

请帮忙!;)

0 投票
2 回答
4761 浏览

java - JavaCC:如何指定在特定上下文中需要哪些令牌?

我需要让 JavaCC 了解上下文(当前父令牌),并根据该上下文,期望出现不同的令牌。

考虑以下伪代码:

因此,当生成的解析器在一个名为的标记“内部”"element1"并且遇到"abcdef"它时,它会将其识别为<abc>,但是当它的“内部”一个名为的标记时"element2",它会将相同的字符串识别为<abcd>.

如果我没记错的话,它的行为类似于 XML 文件的更复杂的 DTD 定义。

那么,如何指定在哪个“上下文”中哪些令牌是有效/预期的?

注意:对于我的真实案例来说,定义一种标记的“层次结构”是不够的,因此“abcdef”总是首先与and<abcd>匹配<abc>。我真的需要上下文感知令牌。

0 投票
0 回答
234 浏览

java - JavaCC:如何使生成的样板类包私有?

我知道我可以SUPPORT_CLASS_VISIBILITY_PUBLIC = false;.jj文件中指定选项。但这只会使生成的类本身成为包私有的。

“样板”类(例如ParseException)仍然是公开的。这很烦人,因为我java.text.ParseException用于公开公开 API。

任何想法如何使样板类也包私有?

0 投票
2 回答
1495 浏览

java - Java、JavaCC:如何解析 BMP 之外的字符?

我指的是 XML 1.1 规范

看看 的定义NameStartChar

NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]

如果我正确解释,最后一个范围 ( #x10000-#xEFFFF) 超出了Java类型的UTF16 范围。char所以它必须是UTF32,对吧?所以,我需要char根据这个范围检查对,而不是单个chars,对吧?

我的问题是:

  • 如何使用标准 Java 方法检查此类字符范围?
  • 如何在 JavaCC 中定义这样的范围?
    • JavaCC 抱怨\u10000\uEFFFF

谢谢!

注意: 别担心,我不是在尝试编写自己的 XML 解析器。
编辑: 我正在编写一个解析器,它将检查来自其他(非 XML)文本格式的文本输入是否与有效的 XML 名称匹配。

0 投票
2 回答
3672 浏览

xml - JavaCC:如何从令牌中排除字符串?(又名理解令牌歧义。)

我已经在理解方面遇到了很多问题,即如何在 JavaCC 中优雅地(或以某种方式)处理模棱两可的标记。让我们看这个例子:

我想解析 XML 处理指令。

格式是:"<?" <target> <data> "?>":target是一个 XML 名称,data可以是之外的任何内容?>,因为它是结束标记。

所以,让我们在 JavaCC 中定义它:(
在这种情况下,我使用词法状态DEFAULTPROC_INST

现在识别处理指令的部分:

让我们测试一下<?mytarget here-goes-some-data?>

目标被识别:"target: mytarget"。但现在我得到了我最喜欢的JavaCC 解析错误:

什么都没遇到?什么都没期待吗?或者是什么?谢谢你,JavaCC!

我知道,我可以使用MOREJavaCC 的关键字,但这会给我整个处理指令作为一个标记,所以我不得不自己进一步解析/标记它。我为什么要那么做?我在写一个不解析的解析器吗?

问题是(我猜):因此<PI_DATA>承认“一切”,我的定义是错误的。我应该告诉 JavaCC 将“除?>”之外的所有内容识别为处理指令数据。

但是怎么做呢?

注意:我只能使用排除单个字符~["a"|"b"|"c"]不能排除诸如or之类的字符串。JavaCC 的另一个很棒的反特性。~["abc"]~["?>"]

谢谢你。

0 投票
3 回答
2682 浏览

ruby - 在 ruby​​ 中创建解析器的最佳对应物是 ANTLR?

我已经使用 antlr 和 javacc/freecc 有一段时间了。现在我需要使用 antlr 语法编写一堆解析器,但是这样的解析器需要用 ruby​​ lang 编写。

我用谷歌搜索但没有找到。是否有任何使用 antlr 语法并创建解析器的 ruby​​ 解析器生成器?如果有很多,你认为哪个是最好的?

蒂亚保罗

0 投票
3 回答
618 浏览

java - Debian 中的 java.io

我尝试编译一个 java 程序,但在代码的导入部分失败:

如何解决 linux debian 机器中的问题?谢谢