gpt4 book ai didi

iphone - Parsekit:如何匹配单个引号字符?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:23:49 27 4
gpt4 key购买 nike

当使用 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com