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