SQL Server 構文でParseKitの トークン化を使用しようとしています。次の例を見てみましょう。
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
ます。現在、トークナイザーはこれらを単語として@
取得しますが、文字列値には含めません。私の考えは、次のようにして a を使用しようとすることでしたdelimitState
:
[t.delimitState addStartMarker: @"@" endMarker: @" " allowedCharacterSet: [NSCharacterSet alphanumericCharacterSet]];
次に を確認しtoken.isDelimitedString
ますが、何も検出されないようです。
私はこれについて間違っていますか?@
wordstateにどのように含めることができるかについて何か提案はありますか?