问题标签 [parslet]

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

ruby - Parslet:如何缓冲/解析增量数据

我正在用 parslet 编写一个 HTTP/1 响应解析器。它有效,但只有当我发送完整的有效载荷时。

我有这样的东西:

但是如果我传递一个不完整的有效载荷,我会得到:

我希望能够在不失败的情况下向解析器提供字节,至少如果它们不违反预期的话。有没有办法以某种方式“缓冲”直到违反某些规则或满足所有期望?

0 投票
1 回答
165 浏览

ruby - SystemStackError:使用 Parslet 解析 SCIM 2.0 过滤器查询时

我正在使用 Parslet 编写一个 SCIM 2.0 过滤器解析器。当我尝试解析以下查询时,我得到了 SystemStackError。

'title pr or userType eq "Intern"'

我已将 ABNF 表示法从https://www.rfc-editor.org/rfc/rfc7644#page-21转换为示例代码中显示的 Parslet 解析器。

我期望 Parslet 应该能够安全地处理递归,而不是引发 SystemStackError。默认情况下,基本原子将 设置def cached?为返回 true。如果我修补 Atom 基类以从该cached?方法返回 false,那么我就能够解析这个查询。我不确定我做错了什么。

0 投票
1 回答
252 浏览

ruby - 如何使用 parslet 将 json 中的嵌套数组字符串(如字符串)转换为结构化对象

我在将包含嵌套数组的已解析的类似 JSON 的字符串转换为结构化对象时遇到问题。我正在使用 parslet 来做到这一点。

我创建了解析器和转换器,如下所示。但我无法处理嵌套数组的情况。

有问题的字符串是"[[[1],[2,3]]]". 我希望收到正确的嵌套结构。但我得到的是"[[[[1],[2,3]]]]"一个支架太多了。

0 投票
0 回答
27 浏览

ruby - 如何在 irb 中测试 parslet atom

我在 parslet gem 介绍中发现了这样的内容:

来源:香芹宝石

我确实在 irb 上尝试过这个(在 require 'parslet' 之后),但它不起作用。当然,如果我把它作为一个规则放在 Parslet::Parser 类中它会起作用。我的问题是我们可以在 irb 中尝试像上面那样的 parslet atom 吗?有什么办法可以试试吗?

像这样:

0 投票
1 回答
63 浏览

regex - 尝试按 OR 运算符对术语进行分组

我正在尝试解析一个字符串,以便我可以轻松识别由“OR”分隔的术语。

我目前有以下规则和解析器类设置:

这目前允许我这样做:

哪个工作正常,但理想情况下,我想要一些可以单独给我这些术语但带有 or 标志的东西:{:query=>[{:clause=>{:term=>"wow",:or=>true}},{:clause=>{:term=>"lol",:or=>true},{:clause=>{:term=>"omg",:or=>true}}]}

这是应该用变压器做的事情吗?就像,只是在变压器中设置一个规则来做split(' OR ')还是有更好的方法来设置我的规则?