问题标签 [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 回答
118 浏览

dart - 如何匹配块的开始和结束

我想定义一个特殊的代码块,它可以以 的任意字符组合开头,{[<#以 . 结尾}]>#

一些例子:

petitparser-dart可以吗?

0 投票
1 回答
140 浏览

dart - 如何将 'debug()' 与 'undefined()' 解析器一起使用

我正在尝试undefined在 petitparser 中调试解析器。

先看代码debug

它打印:

但如果我添加debug

它会失败:

我的使用有什么问题吗?

0 投票
1 回答
100 浏览

dart - “解析失败时做某事”的更好解决方案?

当解析器失败时,我无法在 petitparser 中做某事。

我的解决方案是:

我想知道是否有更好的解决方案?

0 投票
1 回答
527 浏览

dart - 如何使用 Dart Petitparser XML 解析器执行“getElementsByTagName”?

我可能在某个地方忽略了它,但是通过 PetitParser 的 Dart 版本获取特定名称的所有元素(类似于旧的 getElementsByTagName)的好方法是什么?

我设法加载了一个 XML 文件并使用 PetitParser 成功解析它,但现在我想通过具有特定名称的所有节点(例如,参见下面的带有“importantData”的节点)。

对于我的测试 xml 文件中位于 result.value.children[1].children 的 665 个“importantData”节点,result.value.length 似乎也非常高(16654)

0 投票
1 回答
103 浏览

dart - 为什么 *any* 在此示例中不回溯?

我试图理解为什么在下面的例子中我没有在 f2 上得到匹配。与 f1 相比,它确实按预期成功。

导入“包:petitparser/petitparser.dart”;导入“包:petitparser/debug.dart”;

输出:

我很确定原因与任何匹配结束括号的事实有关。但是当它然后寻找关闭的paren并且找不到它时,不应该:

  • 回溯最后一个字符
  • 假设any().star()仅使用 'a' 成功
  • 接受最后的括号并成功

同样相比之下,我展示了执行此操作的类似正则表达式。

0 投票
1 回答
330 浏览

parsing - 使用 smalltalk 编写一个小解析器,如何使用创建的方法'标识符?

我目前有一个方法

我也有这两种方法

1-关键词法

2-标识符方法

问题:pMain 中如何使用标识符解析器?

我喂它这条线

0 投票
1 回答
83 浏览

dart - 我将如何创建一个解析器,它消耗一个也在开头和结尾的字符

我将如何创建一个解析器,它允许一个字符也恰好与开始/结束字符相同。使用以下示例:

第二个单引号应该被接受作为开始和结束单引号之间的内容的一部分。我创建了一个这样的解析器:

但它失败了:

如果我使用 "any()|char("'") 那么它会贪婪地消耗结束单引号,从而导致错误。

我需要创建一个实际的语法类吗?我试图创建一个,但不知道如何制作一个不会贪婪地消耗结束标记的解析器。

0 投票
1 回答
63 浏览

smalltalk - 教科书中的 PetitParser 算术脚本不起作用。它一直说 ParseOn 是空的?

我正在学习如何在 Pharo、Smalltalk 上使用 PetitParser,并且我正在使用教科书来学习它。在教科书中,给出了以下脚本。

但是,当我尝试在操场上打印它时,我得到 MessageNotUnderstood:“parseOn:”的接收者为零。我做错了什么?

0 投票
1 回答
71 浏览

smalltalk - PetitParser 评估器无法正常工作

当我尝试在 pharo 上运行此代码时,我的答案有些偏离。我尝试评估 1-2+3 但由于某种原因,它确实是 1- (2+3),我不明白为什么会这样。谢谢你的时间。

0 投票
1 回答
125 浏览

dart - Dart Petitparser 处理 Lisp 代码

我正在考虑在我的项目中使用petitparser for Dart ( https://pub.dartlang.org/packages/petitparser )。我想用它来处理存储为字符串的 Lisp 代码。

例如,给定这样的数据:

还有一个 String包含这样的 Lisp 表达式的 a:

我怎样才能得到结果?

其次,你这是一个很好的方法,并且正确使用了petitparser吗?

请注意,我是 Lisp 新手。