Implement basic lexer (untested)