问题标签 [parboiled]

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 回答
1097 浏览

java - EBNF / parboiled:如何将正则表达式翻译成 PEG?

这是一个特定于 parboiled 解析器框架和一般 BNF/PEG 的问题。

假设我有一个相当简单的正则表达式

表示伪 EBNF

您将如何在 EBNF 中定义非空格(一个或多个不是空格的字符)?

对于那些熟悉 Java parboiled 库的人,您如何实现定义非空白的规则?

0 投票
2 回答
211 浏览

java - 一种同时使用多个解析器的方法:这是一个安全的代码吗?

我有一个使用 xml 配置文件的应用程序,我在其中描述组件的布局。目前我有 3 种布局:网格、水平和垂直。我想创建一个使用这三个的布局。

最后我找到了一种方法来做到这一点:对于每个布局类,我定义了该布局类的受保护的包保护字段,并在声明中初始化它们。我的一般规则使用这些字段。唯一要记住的是,它们都有自己的堆栈,这不是问题,因为您可以像这样调用代码:push(gridLayoutParser.pop()).

这是一个使用不同解析器的示例:

第一个子解析器:

第二个是一样的:

这里使用它们的解析器:

公共类 OP 扩展 BaseParser {

}

对我来说,它工作正常。但是对于更复杂的语法会好吗?

0 投票
1 回答
130 浏览

parsing - 寻找有关我正在构建的解析器的运算符关联性和优先级的学习资源

我正在使用Parboiled为搜索语法构建解析器,该语法具有多个优先级和关联性不同的运算符。因为这将是我的第一个解析器,所以很高兴看到一些很好的例子来说明优先级和关联性是如何处理的。此外,我们还有一些不寻常的运算符,它们似乎没有关联性,类似于 Python 的三元<运算符(例如a<b<c=> (a<b)&&<b<c>)。

您能否指导我找到有关解析不同关联性和优先级的运算符的良好资源和示例?

0 投票
1 回答
131 浏览

java - What is the type parameter V in parboiled used for

Some classes in the parboiled framework have a generic type parameter. E.g. the class BaseParser. In it's documentation it says:

which I really not find a sufficient documentation. The documentation in the other classes is similiar or missing. Even in the wiki I didn't find information on that. They are just using Object.

Can anyone explain to me what this parameter is used for and what are valid types to hand over?

0 投票
1 回答
729 浏览

java - 无法创建半熟解析器

根据这个简单的例子,我为 parboiled 框架创建了一个解析器类:

如果我尝试创建解析器,如示例所示

我在那一行遇到了一个例外:

我真的没有做示例中没有做的任何特别的事情。唯一的区别是解析器和调用它的类在不同的项目中,但我无法想象为什么这很重要。项目(即 Eclipse 插件项目)之间的依赖关系应该没问题。

谁能告诉我我做错了什么或错误可能在哪里?

0 投票
1 回答
831 浏览

maven - Parboiled 和 Cglib 依赖冲突

我正在开发一个使用 cglib 的程序,该程序作为大型依赖包(版本 2.1_3)的一部分包含在内,并使用半熟处理器编写了一个新功能来进行一些降价到 html 的转换。

问题源于依赖冲突。如果我什么都不做,我对 parboiled 功能的所有测试都会失败,消息如下:

如果我包括以下排除

在声明了我的大依赖项的地方,所有煮熟的测试都将通过,但其他大多数测试都会失败,并显示如下消息

我正在使用挂钩 1.4.1

有什么建议么?浏览互联网似乎建议使用新版本的 asm(4.0 或更高版本,我目前项目中的版本是 1.5.3)可能会有所帮助,但尝试排除我拥有的 asm 并导入后者并没有帮助.

0 投票
0 回答
261 浏览

java - 使用 parboiled 解析方程并应用于值

我需要解析一个方程,然后将其应用于值。例如,我想解析

然后将其应用于 x 和 y 的值数组。我可以使用计算器示例来评估单个方程式,例如

但我不知道如何使这个通用。我正在为 Java 使用 Parboiled。任何方向都将受到高度赞赏。

0 投票
2 回答
648 浏览

scala - Extract double quoted string content with Parboiled

I'm writing a parser, one of it's parts should match and retrieve double-quoted string content It yields only quotation mark, but not whole string. For unquoted ones everything works well

Here is the corresponding rule:

The problem is:

  • input -> "directive"
  • expected output -> StringWrapper("\"directive\"")
  • real output -> StringWrapper("\"")
0 投票
1 回答
1411 浏览

java - 使用 Parboiled 生成 AST (Java)

我使用Java的Parboiled 库创建了一个 PEG。
我基于这个例子

它工作正常,但现在我需要实际创建 AST。

我的问题是如何使用库来做到这一点?

在 Google 上浏览了一下并查看了 Github 上的示例后,我发现您打算使用 push、pop、swap 等来创建 AST,但我无法弄清楚如何使用我的解析器。我的解析器与 Java 解析器非常相似,如果您能帮助我了解它在 Java 解析器中的工作原理,我可以将其改编为我的解析器。

0 投票
1 回答
572 浏览

scala - Scala Parboiled 2 制定了一些规则

我想创建一些辅助规则,它们采用一条规则并为其添加一些功能。例如,强制字符串文字需要被引用,或者将标记位置跟踪添加到标记规则/ADT。

我尝试了以下语法(以及很多排列)。

它编译得很好,但只要我把它连接起来——例如,

使用子规则:

我明白了Illegal rule call: quoted[this.String](this.IdentifierStringUnwrapped)

我可以采用另一种方法:混合原始令牌解析器,然后创建我需要的变体。但我真的很想弄清楚发生了什么。