Introduce seperate lexer class to do more complex lexing. Introducing
multiple nodes as target state with branching capabilities.