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

objective-c - ParseKit - SQLite 解析器进入无限递归

对于我的应用程序,我正在尝试构建一个SQLite解析器。由于我的应用程序使用的是 Objective-C,ParseKit似乎是一个不错的选择。我阅读了 SQLite 的语法图并基于它们构建了一个语法。但是,当我尝试使用此语法解析某些内容时,解析器会进入无限递归。

我需要的唯一语句是 SELECT、INSERT、UPDATE 和 DELETE(我需要 SELECT 主要是因为其他人引用它)。我的@start 旨在处理由分号分隔的多个语句:

声明如下:

以及他们的支持表达:

名称、别名:

杂项运算符等:

基本类型:

和 EXPR:

当我单步执行代码时,基本路径是@start -> statement -> select_stmt -> select_core -> result_column -> expr -> expr -> expr...

在 PKParser 的 matchAndAssemble: 和 PKParser/Subclass 的 allMatchesFor: 之间进行了大约 8-9k 次调用后,某些东西会死掉,通常是由于 EXC_BAD_ACCESS 错误(然后 LLDB 也无法执行任何操作)。

PS:如果你要发布一个答案说,'哦,你真的应该这样做/使用这个,'A)我喜欢Objective-C。不要告诉我不要使用它。这是我的选择。我的回应很可能是咆哮。B)我尝试挖掘 SQLite 的源代码以使用他们的解析器。我从来没有到过任何地方。如果您认为我应该使用它,请将其解析器的源代码发布为没有其他依赖项的单个文件。

0 投票
1 回答
370 浏览

xcode - 找不到设置 Xcode 标志的位置

我正在尝试在最新的 Xcode 版本(4.6?)中存档 ParseKit 并继续停止在未使用的标志中:

我已经仔细检查了该项目,似乎没有设置异常标志。我已经用谷歌搜索了这可能意味着什么,但找不到任何东西。clang -cc1 --help尽管我承认我可能在那里遗漏了一些东西,但似乎并没有多大帮助。

有没有人设法用最新的 Xcode 归档 ParseKit?如何从构建过程中删除该标志?


说清楚:我将 ParseKit 添加为依赖项目或创建调试版本没有问题。我不能做的是存档,发布版本。

0 投票
2 回答
416 浏览

objective-c - 测量单位的 BNF 语法

我正在使用ParseKit来解析度量单位。为了做到这一点,我必须提供一个语法。我尝试使用谷歌搜索,但这并没有让我走得太远。虽然这对我自己来说是一个有趣的练习,但我想确保我做对了。ParseKit 期待这样的 BNF 语法:

我希望支持输入,例如:

0 投票
1 回答
140 浏览

objective-c - 如何在 ParseKit 中自定义 PKTokenizer 以标记子字符串?

假设我想用 ParseKit 解析子字符串,比如单词的前缀。例如,我想解析“预览”和“评论”。所以我的语法可能是:

现在无需修改 ParseKit 我可以匹配“预览”和“重新查看”,但不能匹配“预览”或“审查”。通过查看文档,我想我需要自定义 PKTokeinzer 的单词状态,因为它正在寻找空格来终止“单词”令牌。我该如何解决?

0 投票
1 回答
2445 浏览

syntax-highlighting - 通过 NSAttributedString 提高 NSTextView 语法高亮的性能

我正在为应用程序添加一些语法突出显示。在测试课上,我目前有一个NSTextViewwithtextDidChange通知。与此类似:

突出显示文本的作用是从NSTextView解析中获取字符串并创建一个NSMutableAttributedString并最终显示该字符串。代码与此类似:(我使用 ParseKit 进行解析。下面的示例仅突出显示代码注释)。

现在,如果我处理少量文本,这可以正常工作,但我想在处理大量文本时提高其性能。我对这个问题有两个想法:

  1. 在后台进行处理。当用户键入时,这意味着文本可能会在几秒钟内未格式化。我真的不喜欢这个主意。
  2. 仅对文本的可见部分执行突出显示。在用户滚动时进行更多突出显示。这仍然存在当用户滚动时,文本将未格式化但会慢慢弹出格式化样式的问题。

有人对这方面有什么建议吗?我是否错过了另一种方法来做到这一点,或者这应该可以正常工作吗?有没有人可能知道任何类似/更好的示例代码?我目前正在考虑选择选项#2。

0 投票
1 回答
339 浏览

xcode4 - Xcode 中的 ParseKit 框架是红色的,不会构建

我正在尝试将 ParseKit 添加到 Xcode 中的新命令行项目中,但该框架在项目导航器中显示为红色。当我尝试构建时,出现此错误

error: /Users/acdlite/Xcode/Chemistry Parser/../parsekit-trunk/build/Debug/ParseKit.framework: No such file or directory

我遵循了开发人员在此答案中给出的指示:如何将 ParseKit 作为私有框架嵌入 Mac App bundle中。

据我所知,红色表示文件不在指定位置。文件检查器说它应该位于/parsekit-trunk/build/Debug/ParseKit.framework,如果我尝试在 Finder 中导航,它实际上并不存在。那么它在哪里?我不知道。

我现在已经从头开始执行所有步骤十多次了,包括通过 SVN 检查代码。这让我发疯,我觉得自己像个白痴。我希望我能更具体一些,但我真的不知道从这里去哪里。

0 投票
1 回答
211 浏览

parsing - 如何使用 ParseKit 语法解析简单的布尔表达式语言

尝试构建一个可以解析简单布尔表达式的语法。
当有多个表达式时,我遇到了一个问题。
我需要能够解析1..n and/or'ed 表达式。

下面的每个示例都是一个完整的表达式:

  1. (myitem.isavailable("1234") or myitem.ispresent("1234")) and myitem.isready("1234")
  2. myitem.value > 4 and myitem.value < 10
  3. myitem.value = yes or myotheritem.value = no

语法:

0 投票
1 回答
78 浏览

objective-c - 如何让 ParseKit 识别换行符?

我正在尝试让 ParseKit 的 Tokenizer 识别换行符而不识别其他空白字符。

此外,这些示例还展示了如何使其识别以哈希开头的注释,但创建的函数似乎仅适用于单个字符。我想让 PK 识别以两个破折号('--')开头并以换行符结尾的评论。

0 投票
1 回答
423 浏览

objective-c - Parsekit 和 Cocoapods

尝试通过 cocoapods 在项目中使用 ParseKit,但遇到链接错误。
所有其他 cocoapods 库都可以正常工作。

播客文件

错误

0 投票
1 回答
72 浏览

objective-c - 使用 ParseKit 标记化和 DelimitedString

我正在尝试将ParseKit 的标记 与 SQL Server 语法一起使用。如果您看一下以下示例:

我正在使用以下内容来设置注释(和多行注释):

它设置了对处理 sql 注释的支持。现在我正在尝试添加对检测参数的支持,例如@MyId. 当前标记器将这些作为单词提取,但不包含@在字符串值中。我的想法是尝试delimitState通过做来使用:

然后检查token.isDelimitedString,但似乎没有任何反应。

我要解决这个问题了吗?关于如何@在我的单词状态中包含的任何建议?