open Printf let () = let path_to_program_file = Sys.argv.(1) in let ic = open_in path_to_program_file in let lexbuf = Lexing.from_channel ic in let rec parse_and_print () = let token = Tiger.Lexer.token lexbuf in printf "%s\n" (Tiger.Parser.Token.to_string token); match token with | Tiger.Parser.Token.EOF -> () | _ -> parse_and_print () in parse_and_print (); close_in ic;