问题标签 [petitparser]

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

parsing - 如何使用 petitparser 编写 JSON 格式化程序?

据我所知,PetitParser是一个解析器,我们可以定义语法和动作来解析一些文本。

我已经成功地使用它内置的 JSON 解析器来解析一些 JSON 字符串,但我想做更多。我想编写一个 JSON 格式化程序,可以将 JSON 格式化为漂亮的打印样式。

但我不知道该怎么办。我是否必须创建一些节点并为解析的 JSON 构建树?怎么做?

我正在寻找一些样品,但还没有找到。

0 投票
1 回答
129 浏览

parsing - 如何在 PetitParser 中使用但不捕获一些字符?

我定义了一个规则:

对于“@who”,它将匹配并得到@who结果。

如何问它只是返回who没有@

0 投票
3 回答
376 浏览

parsing - 如何使用 PetitParser 匹配飞镖字符串中的表达式?

我想使用 PetitParserDart 来解析 dart 字符串中的嵌入表达式。

准备一些对象:

长字符串:

可以看到${}字符串里面有个a,它的内容很复杂。

我正在尝试使用这样的 petitparser 代码:

但我不知道如何定义expr规则。它可能包含{or },所以我不能简单地使用anyIn('{}').neg().

现在我该怎么做?我觉得这将是一个非常复杂的规则。

0 投票
1 回答
128 浏览

whitespace - 如何在 PetitParser 中创建一个空格但不是行分隔符的解析器?

PetitParserDart中有一个内置whitespace()解析器,用于检查以下字符:

现在我想要一个自定义的空白解析器,它是一个whitespace()解析器,但不接受行分隔符\n

怎么做,我不想复制修改里面的代码whitespace()。有一个更好的方法吗?

0 投票
1 回答
70 浏览

dart - 如何在 PetitParserDart 中创建一个解析器,这意味着任何不在 ['(',')','{','}'] 中的字符?

我想定义一个解析器,它接受除了PetitParserDart['(', ')', '{', '}']之外的任何字符的任何字符。

我试过了:

我不确定它是否正确,是否有任何简单的方法可以做到这一点?(类似chars('(){}').neg())?

0 投票
1 回答
103 浏览

dart - 如何在 PetitParserDart 的正则表达式中匹配`\b`?

\b是正则表达式中的“世界边界”,如何在 PetitParserDart 中匹配它?

我试过了:

但它不匹配任何东西。我想要的上面的模式是\b\w+\b正则表达式。


我真正的问题是:

我想把它render当作一个标记,只有当它是一个独立的词时。

以下为真:

以下不是:

我不能string("render").trim()在这里使用,因为它会占用它周围的空间。所以我想要,\b但 PetitParserDart 似乎不支持它。

0 投票
1 回答
94 浏览

dart - 如何在 PetitParserDart 中向左或向右修剪

有一种trim()方法可以创建一个解析器来修剪两边的字符串。

如何创建一个只修剪左边或右边的?

0 投票
3 回答
15582 浏览

dart - @override 的 Dart 代码

我注意到PetitParserDart在代码中有很多@override,但我不知道如何检查它们?

我尝试了 IDEA dart-plugin for @override,但它根本没有效果。我们如何@override与 Dart 一起使用?

0 投票
1 回答
59 浏览

parsing - 当规则无法完全匹配时,如何在 PetitParserDart 中失败并抛出异常?

我用PetitParserDart定义了一些规则:

因此将匹配以下文本:

但是如果有一些行不能匹配:

如何定义语法让它失败并在线抛出异常(ccccccccc,但不在线bbbbb

我的意思是它只在规则不完全匹配时抛出异常。如果没有匹配,它不会抛出异常。

0 投票
1 回答
259 浏览

dart - petitparser 有数学解析器吗?

是否有可以解析数学字符串的 dart 库,例如(3+4)/4.5?我试图用 petitparser 构建一个基本的解析器,但我已经不知所措了,它现在只是反复试验:) 在某个地方是否有一个简单的数学解析器的 petitparser(Dart 或任何其他语言)实现?