Lexer modified to read directly from file.