There may be an approach of splitting the type/var string in the lexer.
- using a buffer to save the string.
- cut the string from the end to the beginning
- using unput() to get the scanned characters.
Then we can return the type and var as two individual tokens to the parser.
It would be a better solution than this one because we can keep the ompparser grammar the same as OpenMP spec.