问题标签 [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.
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 的源代码以使用他们的解析器。我从来没有到过任何地方。如果您认为我应该使用它,请将其解析器的源代码发布为没有其他依赖项的单个文件。
xcode - 找不到设置 Xcode 标志的位置
我正在尝试在最新的 Xcode 版本(4.6?)中存档 ParseKit 并继续停止在未使用的标志中:
我已经仔细检查了该项目,似乎没有设置异常标志。我已经用谷歌搜索了这可能意味着什么,但找不到任何东西。clang -cc1 --help
尽管我承认我可能在那里遗漏了一些东西,但似乎并没有多大帮助。
有没有人设法用最新的 Xcode 归档 ParseKit?如何从构建过程中删除该标志?
说清楚:我将 ParseKit 添加为依赖项目或创建调试版本没有问题。我不能做的是存档,发布版本。
objective-c - 测量单位的 BNF 语法
我正在使用ParseKit来解析度量单位。为了做到这一点,我必须提供一个语法。我尝试使用谷歌搜索,但这并没有让我走得太远。虽然这对我自己来说是一个有趣的练习,但我想确保我做对了。ParseKit 期待这样的 BNF 语法:
我希望支持输入,例如:
objective-c - 如何在 ParseKit 中自定义 PKTokenizer 以标记子字符串?
假设我想用 ParseKit 解析子字符串,比如单词的前缀。例如,我想解析“预览”和“评论”。所以我的语法可能是:
现在无需修改 ParseKit 我可以匹配“预览”和“重新查看”,但不能匹配“预览”或“审查”。通过查看文档,我想我需要自定义 PKTokeinzer 的单词状态,因为它正在寻找空格来终止“单词”令牌。我该如何解决?
syntax-highlighting - 通过 NSAttributedString 提高 NSTextView 语法高亮的性能
我正在为应用程序添加一些语法突出显示。在测试课上,我目前有一个NSTextView
withtextDidChange
通知。与此类似:
突出显示文本的作用是从NSTextView
解析中获取字符串并创建一个NSMutableAttributedString
并最终显示该字符串。代码与此类似:(我使用 ParseKit 进行解析。下面的示例仅突出显示代码注释)。
现在,如果我处理少量文本,这可以正常工作,但我想在处理大量文本时提高其性能。我对这个问题有两个想法:
- 在后台进行处理。当用户键入时,这意味着文本可能会在几秒钟内未格式化。我真的不喜欢这个主意。
- 仅对文本的可见部分执行突出显示。在用户滚动时进行更多突出显示。这仍然存在当用户滚动时,文本将未格式化但会慢慢弹出格式化样式的问题。
有人对这方面有什么建议吗?我是否错过了另一种方法来做到这一点,或者这应该可以正常工作吗?有没有人可能知道任何类似/更好的示例代码?我目前正在考虑选择选项#2。
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 检查代码。这让我发疯,我觉得自己像个白痴。我希望我能更具体一些,但我真的不知道从这里去哪里。
parsing - 如何使用 ParseKit 语法解析简单的布尔表达式语言
尝试构建一个可以解析简单布尔表达式的语法。
当有多个表达式时,我遇到了一个问题。
我需要能够解析1..n
and/or
'ed 表达式。
下面的每个示例都是一个完整的表达式:
(myitem.isavailable("1234") or myitem.ispresent("1234")) and myitem.isready("1234")
myitem.value > 4 and myitem.value < 10
myitem.value = yes or myotheritem.value = no
语法:
objective-c - 如何让 ParseKit 识别换行符?
我正在尝试让 ParseKit 的 Tokenizer 识别换行符而不识别其他空白字符。
此外,这些示例还展示了如何使其识别以哈希开头的注释,但创建的函数似乎仅适用于单个字符。我想让 PK 识别以两个破折号('--')开头并以换行符结尾的评论。
objective-c - Parsekit 和 Cocoapods
尝试通过 cocoapods 在项目中使用 ParseKit,但遇到链接错误。
所有其他 cocoapods 库都可以正常工作。
播客文件
错误
objective-c - 使用 ParseKit 标记化和 DelimitedString
我正在尝试将ParseKit 的标记 化与 SQL Server 语法一起使用。如果您看一下以下示例:
我正在使用以下内容来设置注释(和多行注释):
它设置了对处理 sql 注释的支持。现在我正在尝试添加对检测参数的支持,例如@MyId
. 当前标记器将这些作为单词提取,但不包含@
在字符串值中。我的想法是尝试delimitState
通过做来使用:
然后检查token.isDelimitedString
,但似乎没有任何反应。
我要解决这个问题了吗?关于如何@
在我的单词状态中包含的任何建议?