问题标签 [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.
parsing - 如何使用 petitparser 编写 JSON 格式化程序?
据我所知,PetitParser是一个解析器,我们可以定义语法和动作来解析一些文本。
我已经成功地使用它内置的 JSON 解析器来解析一些 JSON 字符串,但我想做更多。我想编写一个 JSON 格式化程序,可以将 JSON 格式化为漂亮的打印样式。
但我不知道该怎么办。我是否必须创建一些节点并为解析的 JSON 构建树?怎么做?
我正在寻找一些样品,但还没有找到。
parsing - 如何在 PetitParser 中使用但不捕获一些字符?
我定义了一个规则:
对于“@who”,它将匹配并得到@who
结果。
如何问它只是返回who
没有@
?
parsing - 如何使用 PetitParser 匹配飞镖字符串中的表达式?
我想使用 PetitParserDart 来解析 dart 字符串中的嵌入表达式。
准备一些对象:
长字符串:
可以看到${}
字符串里面有个a,它的内容很复杂。
我正在尝试使用这样的 petitparser 代码:
但我不知道如何定义expr
规则。它可能包含{
or }
,所以我不能简单地使用anyIn('{}').neg()
.
现在我该怎么做?我觉得这将是一个非常复杂的规则。
whitespace - 如何在 PetitParser 中创建一个空格但不是行分隔符的解析器?
PetitParserDart中有一个内置whitespace()
解析器,用于检查以下字符:
现在我想要一个自定义的空白解析器,它是一个whitespace()
解析器,但不接受行分隔符\n
。
怎么做,我不想复制修改里面的代码whitespace()
。有一个更好的方法吗?
dart - 如何在 PetitParserDart 中创建一个解析器,这意味着任何不在 ['(',')','{','}'] 中的字符?
我想定义一个解析器,它接受除了PetitParserDart['(', ')', '{', '}']
之外的任何字符的任何字符。
我试过了:
我不确定它是否正确,是否有任何简单的方法可以做到这一点?(类似chars('(){}').neg()
)?
dart - 如何在 PetitParserDart 的正则表达式中匹配`\b`?
\b
是正则表达式中的“世界边界”,如何在 PetitParserDart 中匹配它?
我试过了:
但它不匹配任何东西。我想要的上面的模式是\b\w+\b
正则表达式。
我真正的问题是:
我想把它render
当作一个标记,只有当它是一个独立的词时。
以下为真:
以下不是:
我不能string("render").trim()
在这里使用,因为它会占用它周围的空间。所以我想要,\b
但 PetitParserDart 似乎不支持它。
dart - 如何在 PetitParserDart 中向左或向右修剪
有一种trim()
方法可以创建一个解析器来修剪两边的字符串。
如何创建一个只修剪左边或右边的?
dart - @override 的 Dart 代码
我注意到PetitParserDart在代码中有很多@override
,但我不知道如何检查它们?
我尝试了 IDEA dart-plugin for @override
,但它根本没有效果。我们如何@override
与 Dart 一起使用?
parsing - 当规则无法完全匹配时,如何在 PetitParserDart 中失败并抛出异常?
我用PetitParserDart定义了一些规则:
因此将匹配以下文本:
但是如果有一些行不能匹配:
如何定义语法让它失败并在线抛出异常(ccccccccc
,但不在线bbbbb
?
我的意思是它只在规则不完全匹配时抛出异常。如果没有匹配,它不会抛出异常。
dart - petitparser 有数学解析器吗?
是否有可以解析数学字符串的 dart 库,例如(3+4)/4.5
?我试图用 petitparser 构建一个基本的解析器,但我已经不知所措了,它现在只是反复试验:) 在某个地方是否有一个简单的数学解析器的 petitparser(Dart 或任何其他语言)实现?