问题标签 [parsekit]

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

parsing - 我在哪里可以阅读有关为 ParseKit 定义语法的详细文档?

我刚刚开始掌握 ParseKit,阅读了“基本语法语法”,但这只是一个非常基本的介绍。现在我想着手定义我自己的语法,我很快就超出了我的理解范围。我从这里去哪里?

例如,我想以非常自定义的格式解析一个日志文件。将其分解为页眉、正文和页脚,这将是我的页眉第一行的 BNF:

我如何定义它,以便 ParseKit 理解?我已经走到这一步了;

我怀疑必须至少有一种方法来定义一系列字符?

当然, parsekit 的作者引用的书可能会对我有所帮助,但如果有人可以帮助我在深入研究该主题之前帮助我开始使用我自己的小例子,那就太好了。我只是在调查一个想法,只是概念证明。

0 投票
1 回答
206 浏览

objective-c - 未调用 ParseKit 汇编程序回调:我做错了什么?

在掌握了 ParseKit 语法语法(在演示应用程序中玩耍)之后,我现在正试图让我自己的迷你演示工作,但到目前为止还没有取得多大成功。汇编程序回调没有被调用。

下面是相关代码的精简版。运行时testParse解析器似乎可以正常工作,并且可以正确地将我的字符串与我的anything产品匹配(在演示中也可以使用),但是 didMatchAnything: 只是没有被调用。

在 ParseKit 代码中挖掘,我可以看到 PKParser 的第 129 行

没有被执行,因为assembler是 nil。这反过来又把我带到了解析器工厂;我对正在发生的事情的理解开始失败。

免责声明;我知道,我可能需要阅读The Book,但一次只有一件事。我想先做一个小的概念证明,然后再花 30 只老鼠买一本书,如果我的项目不是初学者,我可能永远不会再读 :)

0 投票
4 回答
4795 浏览

objective-c - 如何将 ParseKit 作为私有框架嵌入到 Mac 应用程序包中

我需要安装 ParseKit 才能在 Mac Os X 下使用 cocoa 进行编译,我使用的是 xcode 4。我在网上搜索过,但只有一个为 iPhone 安装 parse kit 的指南。我在哪里可以找到 Mac Os X 的下载和/或指南?

0 投票
1 回答
284 浏览

objective-c - ParseKit 与我的 EOL 符号不匹配:我做错了什么?

ParseKit 的冒险仍在继续……我的下一个障碍是尝试识别换行符。

这是我的语法:

这是我的测试文本:

正在从具有 Unix 格式 (LF) 行尾的 UTF-8 文本文件中读取文本。我已经在 Xcode(文件检查器 -> 文本设置)以及外部使用 TextWrangler 验证了该格式。

这是相关的代码:

但恐怕油漆还没干!已经尝试了上述各种变化。我一辈子都无法让解析器识别换行符。我可能可以通过逐行读取文件缓冲区来解决这个问题(无论如何这可能会更高性能?),但仍然可以选择匹配'\ n'。

0 投票
2 回答
253 浏览

objective-c - 使用 ParseKit 语法解析时间戳

我有一个关于 ParseKit 和解析时间戳的相当简单的问题......我如何去强制一个点/句点的符号性质。

例如,如果我试图解析2008-01-25,我可以使用类似date = /\d{4}/ '-' /\d{2}/ '-' /\d{2}/. 事实上,date.grammarParseKit 附带了一个可以做到这一点的(有趣的是,提供的语法在 DemoApp 中不起作用,除非你添加@symbolState='-';,但我离题了......)

但是,如果我想解析一个带有点的日期,我该怎么办......例如,2008.01.252008-01-25-12.34.45. 我已经尝试添加'.'@symbolState指令中,但它一直被忽略。请注意,我现在依靠 DemoApp 来测试我的语法......不确定这是否有任何区别。

任何想法将不胜感激。

0 投票
1 回答
270 浏览

objective-c - 编写具有不同数量字段的 ParseKit 语法(按顺序)

我在编写语法方面不是很有经验,但是假设我有这样的记录类型:(示例)

基本上:

  1. 必须以“记录编号”开头,并以分号结尾。
  2. 可能按以下顺序包含 0 或 1 个捕获:
  3. 源数据集
  4. 数据集参数
  5. 数据集中的字段
  6. 数据集中的值

这是我的语法,它不起作用:

--- 开始语法:

--- 结束语法

@“ParseKit 的开发者”,你能帮帮我吗?

谢谢 :)

0 投票
2 回答
216 浏览

objective-c - 如何使用 ParseKit 框架查找解析错误

我想知道是否有办法让 PKParser 在遇到语法错误之前返回到程序集的解析程度。

参考: http: //parsekit.com/

我使用的语法基本上描述了前缀符号表达式语言。

例如:

给定您的标准前缀符号表达式语法和字符串“(+ a - bc))”,我想检索匹配的 [(,+,a],因此我可以让用户了解在哪里寻找修复他们的错误,但 completeMatchFor 和 bestMatchFor 不返回任何我可以用来查找此信息的内容。

理想情况下,我想说一个'('是预期的,但对于像我正在使用的那样简单的语法来说,这不是必需的。

从作为用户手册提到的书中,似乎我需要为此创建一个自定义解析器,但我希望我可能只是错过了框架中的某些内容。

想法?

0 投票
1 回答
477 浏览

objective-c - ParseKit 的汇编程序回调如何工作?我应该在哪里存储我在其中所做的工作?

我应该如何在 parsekit 中使用回调函数?假设我有以下规则:

我应该从生成的 PKAssembly 中弹出 3 个符号并添加第一个和最后一个数字,然后将答案推回堆栈吗?
对于上述规则,我怎么知道是第一条规则还是第二条规则导致了匹配?
我不明白 ParseKit 调用回调函数的顺序。我真的可以使用一些帮助。

感谢 Todd 的回复,请记住您的指示,我为一个简单的数学表达式编写了以下语法和回调函数,其中包括加法和乘法:

这是我得到的输出:

为什么我的 res 为 0?

0 投票
2 回答
174 浏览

objective-c - 如何使用 ParseKit 过滤掉不需要的令牌?

我正在使用 PK 来尝试标记 .gift 文件格式。我正在尝试执行以下操作:

给定一个与此类似的字符串:@"= 2 + 2"

我试图返回“2 + 2”,而无需费力地确定越过该字符串的标记是否等于符号,然后定义输出字符串应该如何。我想要做的是,如果 [PKToken.stringValue isEqualToString: @"="] 将该值从 PKTokenizer 中弹出,然后返回字符串的其余部分,其格式仍然完好无损。

让我知道这是否足够清楚......

——斯凯拉。

0 投票
1 回答
959 浏览

objective-c - Parsekit 还是我自己解析?

我正在编写一个需要解析葡萄酒菜单的应用程序。从我目前看到的情况来看,它们都遵循某种结构,诀窍将是定义所有这些结构。我现在正在探索使用 Parsekit 并创建语法,但学习曲线非常陡峭。我想我会问,而不是花接下来的几周弄清楚它然后意识到这不是正确的方法。

人们想在解析这类事情时分享任何见解/资源?谢谢,奥利维尔