2012-06-27 2 views
1

ParseKit을 사용하여 PGN 파일을 구문 분석하려고합니다. 나는 토큰의 유형을 인식하고 이후의 대답은 내가 기호 (이 수신 된 경우에만 배열로 단어 유형을 추가 할다양한 기호를 분리하는 방법 ParseKit의 PKTokenizer 클래스

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

답변

1

개발자가 될 것 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 
) 
+1

: 당신이 parsekit의 일부 문서로 날을 제공 할 수있는 일 thanku? 그것을 설명하는 모든 것들. 나는 파스 키트와 그것의 처음으로 사용하지 적이 ... – amar

+0

예, 사용할 수있는 모든 것은 여기에서 찾을 수 있습니다 : http://parsekit.com –

+0

또한 여기에 StackOverflow에 ParseKit 태그를 확인하십시오. 나는 여기에 많은 질문에 대답했고 그 해답이 도움이 될 수있다. http://stackoverflow.com/questions/tagged/parsekit –