#define KEYWORD_FIRST_CHAR_FILTER(la) \
(!(la == 'c' || la == 'm' || la == 'n' || la == 'p' || la == 'r' || la == 's' || la == 'u'))
#define KEYWORD_WORD_CHAR(la) \
(la == 'a' || la == 'b' || la == 'c' || la == 'd' || la == 'e' || la == 'g' || la == 'h' || la == 'k' || la == 'l' || la == 'm' || la == 'n' || la == 'o' || la == 'p' || la == 'r' || la == 's' || la == 't' || la == 'u')
#define KEYWORD_MATCH(word, kind) do { \
if (strcmp(word, "package") == 0 || strcmp(word, "use") == 0 || strcmp(word, "no") == 0 || strcmp(word, "class") == 0 || strcmp(word, "role") == 0) { \
(kind) = KW_ALWAYS; \
} else if (strcmp(word, "sub") == 0 || strcmp(word, "method") == 0) { \
(kind) = KW_NEEDS_NAME; \
} else { \
(kind) = KW_NONE; \
} \
} while(0)