make the lexer return tokens
add basic parser capabilities throw a simple lexer and parser