I'm writing a parser for a little language similar to GLSL. I was just working on parsing "in" and "out" variables, and noticed that my rule broke parsing of "int x;" presumably because "int" begins with "in". "float x;" parsed fine. The relevant rule is:
decl = -(lexeme["in"] | lexeme["out"]) >> type >> var >> (('(' >> arglist >> ')' >> block)
| ('=' >> expr >> ';')
| ';');
So do I need to tokenize first using lex? Or can I get away with just using Qi somehow?