Custom pragma's


I’ve been playing around with clang defining a custom pragma type. Does the pragma need to consist of expressions? I don’t know if I’m phrasing it correctly, but I want to define a custom pragma such as
#pragma X b[i:j]
When I try to implement the HandlePragma method as some of the other examples (using preprocessor’s lex function) then I get “error: expected ‘]’” where the colon is. Something like ‘[i]’ was expected. Is there a way to do this via the lex function? Or would I need to do something like DiscardUntilEndOfDirective and then work on the string “b[i:j]”?