问题标签 [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.
linux - 如何在 javacc 中更新和打印“Rational”令牌?
我在我的 JavaCC 解析器上添加了识别有理数的新标记 RATIONAL。如何更新程序的输出部分以打印有理数的数值?
例如('2/5')值 = 0.4,('8/2')值 = 4.0,('4/0')值 = 无穷大。
如果有人可以帮助我,我将不胜感激。谢谢。
java - 解释对多个 XML 文档应用多个 xpath 查询的规则
我需要构建一个组件,该组件将在输入中使用一些 XML 文档并检查以下类型的规则:
基本上我的组件应该能够:
- 用相应的 XML 文档替换 XML 标记(冒号前)
- 对此 XML 文档应用 xpath 查询
- 根据预期结果检查 xpath 输出(“=”、“!=”、“包含”)
- 遵循基本语法(“and”、“or”和括号)
- 判断规则是真还是假
你知道任何可以帮助我的图书馆吗?也许JavaCC?
谢谢
.net - .NET 的 JavaCC?
我一直在为大学的作业生成 JavaCC 解析器,想知道是否有类似的简单的 .NET 解析器生成器框架可用?
我知道有 ANTLR,但我发现它对我的口味来说有点太大了,并且真的开始喜欢 JavaCC 带来的简单性。
问候丹尼尔
java - JavaCC:请给我“真实”示例的链接
我知道这里有很多 JavaCC 解析器的例子,但它们都什么都不做。他们只是接受一个字符串,或者产生解析错误。
我需要的是一些真正的解析器的例子,它们在解析过程中实际上做了一些事情。(例如在解析 XML 字符串时构建 DOM 树)。
请帮忙!;)
java - JavaCC:如何指定在特定上下文中需要哪些令牌?
我需要让 JavaCC 了解上下文(当前父令牌),并根据该上下文,期望出现不同的令牌。
考虑以下伪代码:
因此,当生成的解析器在一个名为的标记“内部”"element1"
并且遇到"abcdef"
它时,它会将其识别为<abc>
,但是当它的“内部”一个名为的标记时"element2"
,它会将相同的字符串识别为<abcd>
.
如果我没记错的话,它的行为类似于 XML 文件的更复杂的 DTD 定义。
那么,如何指定在哪个“上下文”中哪些令牌是有效/预期的?
注意:对于我的真实案例来说,定义一种标记的“层次结构”是不够的,因此“abcdef”总是首先与and<abcd>
匹配<abc>
。我真的需要上下文感知令牌。
java - JavaCC:如何使生成的样板类包私有?
我知道我可以SUPPORT_CLASS_VISIBILITY_PUBLIC = false;
在.jj
文件中指定选项。但这只会使生成的类本身成为包私有的。
“样板”类(例如ParseException
)仍然是公开的。这很烦人,因为我java.text.ParseException
用于公开公开 API。
任何想法如何使样板类也包私有?
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
根据这个范围检查对,而不是单个char
s,对吧?
我的问题是:
- 如何使用标准 Java 方法检查此类字符范围?
- 如何在 JavaCC 中定义这样的范围?
- JavaCC 抱怨
\u10000
和\uEFFFF
- JavaCC 抱怨
谢谢!
注意: 别担心,我不是在尝试编写自己的 XML 解析器。
编辑: 我正在编写一个解析器,它将检查来自其他(非 XML)文本格式的文本输入是否与有效的 XML 名称匹配。
xml - JavaCC:如何从令牌中排除字符串?(又名理解令牌歧义。)
我已经在理解方面遇到了很多问题,即如何在 JavaCC 中优雅地(或以某种方式)处理模棱两可的标记。让我们看这个例子:
我想解析 XML 处理指令。
格式是:"<?" <target> <data> "?>"
:target
是一个 XML 名称,data
可以是除之外的任何内容?>
,因为它是结束标记。
所以,让我们在 JavaCC 中定义它:(
在这种情况下,我使用词法状态DEFAULT
和PROC_INST
)
现在识别处理指令的部分:
让我们测试一下<?mytarget here-goes-some-data?>
:
目标被识别:"target: mytarget"
。但现在我得到了我最喜欢的JavaCC 解析错误:
什么都没遇到?什么都没期待吗?或者是什么?谢谢你,JavaCC!
我知道,我可以使用MORE
JavaCC 的关键字,但这会给我整个处理指令作为一个标记,所以我不得不自己进一步解析/标记它。我为什么要那么做?我在写一个不解析的解析器吗?
问题是(我猜):因此<PI_DATA>
承认“一切”,我的定义是错误的。我应该告诉 JavaCC 将“除?>
”之外的所有内容识别为处理指令数据。
但是怎么做呢?
注意:我只能使用排除单个字符~["a"|"b"|"c"]
,不能排除诸如or之类的字符串。JavaCC 的另一个很棒的反特性。~["abc"]
~["?>"]
谢谢你。
ruby - 在 ruby 中创建解析器的最佳对应物是 ANTLR?
我已经使用 antlr 和 javacc/freecc 有一段时间了。现在我需要使用 antlr 语法编写一堆解析器,但是这样的解析器需要用 ruby lang 编写。
我用谷歌搜索但没有找到。是否有任何使用 antlr 语法并创建解析器的 ruby 解析器生成器?如果有很多,你认为哪个是最好的?
蒂亚保罗
java - Debian 中的 java.io
我尝试编译一个 java 程序,但在代码的导入部分失败:
如何解决 linux debian 机器中的问题?谢谢