TC-1 Recurring bugs

Lexer patterns not reached

When scanning an input, reflex matches this input to the pattern with the longest character correspondance. With these reflex patterns:

%%
<
>
<>
%%

and with <> as input, reflex will use the <> pattern.

However, when facing two patterns with the same correspondance length, it uses the first one (i.e. the one declared first). This is why you should always pay attention when using regexes that includes other patterns.

%%
[a-z]+
while
%%

Here, while pattern is unreachable since it is matched by [a-z]+, defined first. To be able to distingish these two cases, we need to switch their declaration order.