1
我試圖使用ParseKit'sTokenization與SQL Server語法。如果您在下面的例子來看看:使用ParseKit Tokenization和DelimitedString
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
,但它似乎並沒有挑選任何起來。
我該怎麼處理這個錯誤?任何關於如何將@
包含在我的wordstate中的建議?
真棒,這就像一個魅力的工作!感謝偉大的組件。 – Kyle