- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
当使用 iPhone 的解析器 Parsekit 时。是否可以包含双引号?哪些东西是特殊 BNF 的一部分?(是否可以在定义的语法中转义序列?)
@start = doublequote+;
doublequote= '"'
最佳答案
这里是 ParseKit 的开发者。
默认情况下,您可以使用内置的 QuotedString
解析器轻松匹配带引号的字符串(它将匹配 QuotedString
标记):
@start = quotes;
quotes = QuotedString+;
匹配如下输入:"foo"'bar' "baz"
作为三引号字符串:"foo"
、'bar'
、"baz"
所以这表明默认情况下 ParseKit 标记器(PKTokenizer
类)在遇到 "
或 ' 时会生成
。QuotedString
标记
有关默认分词器行为的更多详细信息,请阅读 ParseKit tokenization documentation .
但是,如果您希望引号字符 ("
, '
) 被识别为独立的符号,而不是指示开始或结束带引号的字符串,您必须先更改分词器的行为。
在代码中,您可以通过调用 PKTokenizer
对象上的方法来改变分词器的行为。
在语法中,您可以使用分词器指令 来改变分词器的行为。
分词器指令 是位于语法顶部的特殊规则,以 @
字符开头。在这种情况下,您想要更改标记器将哪些字符识别为独立的符号标记。具体来说,您想使用 @symbolState
分词器指令添加两个字符作为符号。
您可以在语法中将其更改为:
@symbolState = '"' "'"; // a tokenizer directive stating ' and " should be recognized as standalone symbol tokens
// (by default they are start- and end-markers for quoted string tokens)
@start = stuff;
stuff = (Word | Symbol)+;
给定与上面相同的输入,您将匹配单独的引号和单词:"
、foo
、"
、'
, bar
, '
, "
, baz
, "
关于iphone - Parsekit:如何匹配单个引号字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8961849/
问题: 不知道如何翻译 Antlr4“.g4”语法文件的内容以匹配 ParseKit 的语法. 具体来说: 如何翻译-> Channel(HIDDEN);从 Antlr4 语法到 ParseKit 语
当使用 iPhone 的解析器 Parsekit 时。是否可以包含双引号?哪些东西是特殊 BNF 的一部分?(是否可以在定义的语法中转义序列?) @start = doublequote+; doub
我正在使用与 ParseKit 捆绑在一起的 DemoApp,我遇到了一个奇怪的问题。我创建了这个语法: @start = tag; tag = '{' Word ';' Word '}'; 它会解
给定一个简单的 Parsekit 语法。 @start = sentence+; sentence = 'beer' container; container = 'bottle' | 'cup';
我正在尝试为 Parsekit 编写语法以用于我的 iphone 应用程序。我这样做正确吗? @start = wff; wff = disjunction ('IMPLIES' | disjunct
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
我为 ParseKit 编写了一个 C 语法,它工作得很好,但让我发疯的是预处理器语句。预处理器语句的正确符号定义是什么? 这是我尝试过的简短示例...... @reportsCommentToken
我正在编写一个需要解析 Wine 菜单的应用程序。据我目前所见,它们都遵循某种结构,关键在于定义所有这些结构。 我现在正在探索使用 Parsekit 和创建语法,但学习曲线非常陡峭。与其花接下来的几周
我正在尝试为 ParseKit 编写语法,以便它与 iphone 应用程序中的基本命题逻辑句子相匹配。有人可以告诉我我哪里出错了。 @start = wff; wff = disjunction (i
对于我的应用程序,我正在尝试构建一个 SQLite解析器。由于我的应用程序使用的是 Objective-C,ParseKit似乎是一个不错的选择。我读过 SQLite 的 syntax diagram
我正在尝试让 ParseKit 的 Tokenizer 识别换行符并且不识别其他空白字符。 此外,示例还展示了如何使其识别以哈希开头的注释,但创建的函数似乎仅适用于单个字符。我想让 PK 识别以两个破
我刚刚发现了 ParseKit,但似乎无法让它在一个简单的例子中工作。 NSString *test = @"FOO:BAR"; NSString *grammar = ...//get gr
我正在使用 PK 尝试标记化 .gift 文件格式。我正在尝试执行以下操作: 给定一个类似这样的字符串:@"= 2 + 2" 我试图返回“2 + 2”,而无需确定经过该字符串的标记是否等于一个符号,然
在掌握了一些 ParseKit 语法语法(在演示应用程序中试玩)之后,我现在正在尝试让我自己的迷你演示正常运行,但到目前为止还没有取得太大的成功。汇编程序回调未被调用。 以下是相关代码的精简版。当 t
我想知道是否有一种方法可以返回 PKParser 在遇到语法错误之前已解析到程序集中的程度。 引用:http://parsekit.com/ 我使用的语法基本上描述了前缀表示法表达式语言。 例如: 给
我应该如何在 parekit 中使用回调函数?假设我有以下规则: expr_s = expr_p '+' expr_s | expr_p ; 我应该从生成的 PKAssembly 中弹出 3 个符号并
我正在尝试使用 ParseKit's Tokenization使用 SQL Server 语法。如果您看一下以下示例: CREATE PROCEDURE [dbo].[test] @MyId UN
我正在尝试归档使用 ParseKit 的 iPad 应用程序。对于使用调试配置的任何构建(即在设备/模拟器上运行并进行分析),我能够利用 ParseKit 正常运行该应用程序。但是,当我使用发布配置时
对于 iOS 应用程序,我想解析一个 HTML 文件,该文件可能包含用于替换的 UNIX 样式变量。例如,HTML 可能如下所示: ${title} ${paragrap
我正在为我正在从事的项目构建一个语法来使用 ParseKit 解析 Newick 树,我已经走到这一步了。它基于此处的语法:http://en.wikipedia.org/wiki/Newick_fo
我是一名优秀的程序员,十分优秀!