问题标签 [pegkit]

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

pegkit - 是否可以使用 PEGKit 在另一个语法定义中导入一个语法?

我想使用一个语法定义作为我自己的扩展点。

使用 Antlr,您可以在自己的语法定义中导入语法文件。

是否可以对 PEGKit 做同样的事情?

0 投票
1 回答
52 浏览

ios8 - 没有有效的 Mac 开发人员证书,无法构建/运行 PEGKit ParserGenApp

我正在使用 PEGKit 为我正在开发的 iOS 应用程序生成解析器。为此,我需要运行一个与 PEGKit 一起分发的帮助应用程序 (ParserGenApp) 以生成解析器源代码。我已按照此处的说明进行操作:

https://github.com/itod/PEGKitMiniMathTutorial

但是每当我尝试构建/运行应用程序时,我都会收到错误消息“未找到签名身份!”

我有 iOS 开发者证书,但没有 Mac 开发者证书。我能够在本地构建/运行其他示例 mac 应用程序。

0 投票
1 回答
34 浏览

ios - PegKit:以不同方式处理相同工作的语法语法

我正在编写一些使用PegKit的代码,但我遇到了一些我不确定如何解决的问题。我有一个看起来像这样的语法(简化):

我正在寻找以下结果:

然而,正在发生的是生成的解析器代码如下所示:

有效的说,为了解析运行时表达式,它必须以'is'开头。这意味着它[abc]被作为对象 expr 传递。

所以我需要帮助的是理解如何在语法语法中表达这个逻辑:

  1. 如果字符串以“is”开头,后跟 runtimeObject,或者只是一个 runtimeObject,则将其作为 runtimeExpr 处理。

  2. 否则将其作为 objectExpr 处理。

0 投票
1 回答
29 浏览

pegkit - PegKit 字符串插值

我正在使用 PegKit 来构建一个简单的领域特定的解释语言。

除了插值字符串之外,我基本上可以正常工作。

我们的想法是实现这样的某种规则:

其中“表达式”产生式已经定义。

我在这里插入了一些逻辑,从我需要的令牌中构建了一个字符串。如果我们遇到一个表达式,我会评估它并将其添加到正在构建的字符串中。

atom 和 reference 类型的产品解析完美。

但是,如果我尝试解析“hello”之类的内容,则在运行 atom 规则时,生成的令牌始终是内置 Word 类型。

我尝试用美元符号和其他字符组合替换单引号来表示字符串的开头和结尾,但它从不匹配。

有任何想法吗?

干杯

0 投票
1 回答
99 浏览

parsing - PEGKit 在堆栈上组合匹配的符号

我正在为 PEGKit 编写语法来解析 Twine 导出的 Twee 文件。这是我第一次使用 PEGKit,我正在尝试了解它的工作原理。

我有我正在解析的这个 twee 源文件

目前我已经研究出如何使用以下语法解析上述内容

我得到的结果是

理想情况下,我希望解析器将匹配的单词组合passageTitle成一个字符串,类似于内置 PEGKitQuotedString语法的工作方式。我还希望将与 a 匹配的单词也contentLine组合起来。

所以,最终,我会把它放在堆栈上

任何关于如何实现这一目标的想法将不胜感激。