Refactor lexers into single lexer with start conditions
Rename variable $remaining to $unprocessed