2013-06-21 4 views
1

ParseKit'sTokenization을 SQL Server 구문과 함께 사용하려고합니다. 다음 예를 살펴 경우ParseKit Tokenization 및 DelimitedString 사용

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

을 내가 사용 설정 코멘트 (그리고 여러 댓글)에 다음

SQL 주석을 처리하기위한 지원을 설정
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: @"*/"]; 

. 이제 @MyId과 같은 매개 변수를 감지 할 수있는 지원을 추가하려고합니다. 현재 토크 나이저는이를 단어로 선택하지만 문자열 값에 @을 포함하지 않습니다. 내 생각은 수행하여 delimitState를 사용하여 시도했다 :

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

그런 다음 token.isDelimitedString을 확인하지만, 어떤을 선택하지 않는 것 같습니다.

내가 잘못 생각하고 있습니까? 내 단어 상태에 @을 포함시킬 수있는 방법에 대한 제안이 있으십니까?

답변

1

개발자는 ParseKit입니다. 하나의 구분 된 문자열 토큰으로 @MyId에 맞게

, 시도 :

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

최고를 마법처럼 일이! 훌륭한 구성 요소를 가져 주셔서 감사합니다. – Kyle