let append_eof program = let rec eof_add rtokens = function | [] -> List.rev (EOF::rtokens) | tk::tks -> eof_add (tk::rtokens) tks in eof_add [] program