gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 17:12:41 25 4
gpt4 key购买 nike

我正在尝试使用 ParseKit's Tokenization使用 SQL Server 语法。如果您看一下以下示例:

CREATE PROCEDURE [dbo].[test]
@MyId UNIQUEIDENTIFIER
AS
BEGIN
-- something something
END
GO

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

PKTokenizer *t = [PKTokenizer tokenizerWithString: [inputString substringWithRange: range]];

// SQL does not support // comments.
[t.commentState removeSingleLineStartMarker: @"//"];

// But it does support -- comments.
[t setTokenizerState:t.commentState from: '-' to:'-'];
[t.commentState addSingleLineStartMarker: @"--"];

[t setTokenizerState: t.commentState from: '/' to: '/'];
[t.commentState addMultiLineStartMarker: @"/*" endMarker: @"*/"];

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

[t.delimitState addStartMarker: @"@" endMarker: @" " allowedCharacterSet: [NSCharacterSet alphanumericCharacterSet]];

然后检查token.isDelimitedString,但它似乎没有找到任何内容。

我的做法是错的吗?关于如何在我的文字状态中包含 @ 有什么建议吗?

最佳答案

ParseKit 的开发者在这里。

要将 @MyId 匹配为单个分隔字符串标记,请尝试:

[t setTokenizerState:t.delimitState from:'@' to:'@'];
[t.delimitState addStartMarker:@"@" endMarker:nil allowedCharacterSet:[NSCharacterSet alphanumericCharacterSet]];

关于objective-c - 使用 ParseKit 标记化和 DelimitedString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17238063/

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