gpt4 book ai didi

objective-c - ParseKit之PKTokenizer类如何分离各类符号

转载 作者:行者123 更新时间:2023-11-29 13:33:30 24 4
gpt4 key购买 nike

我正在尝试使用 ParseKit 解析 PGN 文件。我想识别 token 的类型并进行后续回答

PKTokenizer *t = [PKTokenizer tokenizerWithString:moveString];
[t.symbolState add:@"..."];
[t setTokenizerState:t.commentState from:'{' to:'{'];
[t.commentState addMultiLineStartMarker:@"{" endMarker:@"}"];
[t setTokenizerState:t.wordState from:'$' to:'$'];
t.commentState.reportsCommentTokens = YES;
PKToken *eof = [PKToken EOFToken];
PKToken *tok = nil;

while ((tok = [t nextToken]) != eof) {
NSLog(@" %@", [tok debugDescription]);
}

我只想在收到符号 ( 时才将单词类型添加到数组中。

任何关于使用 ParseKit 的文档都会有很大的帮助谢谢

最佳答案

ParseKit 的开发者|在这里。

下面是捕获括号内标记的简单方法:

BOOL inParens = NO;
PKToken *openParen = [PKToken tokenWithTokenType:PKTokenTypeSymbol stringValue:@"(" floatValue:0.0];
PKToken *closeParen = [PKToken tokenWithTokenType:PKTokenTypeSymbol stringValue:@")" floatValue:0.0];
NSMutableArray *cache = [NSMutableArray array];

PKTokenizer *t = [PKTokenizer tokenizerWithString:@"foo (bar) baz"];

PKToken *eof = [PKToken EOFToken];
PKToken *tok = nil;
while ((tok = [t nextToken]) != eof) {
if ([openParen isEqual:tok]) {
inParens = YES;
} else if (inParens) {
if ([closeParen isEqual:tok]) {
inParens = NO;
} else {
[cache addObject:tok];
}
}
}

NSLog(@"%@", cache);

打印:

(
bar
)

关于objective-c - ParseKit之PKTokenizer类如何分离各类符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11225866/

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