let trim_lines program =
    let rec lines_trim tokens rtokens =
        match tokens with
            | [] -> List.rev rtokens
            | SPACE(_)::NEWLINE::rest -> lines_trim rest (NEWLINE::rtokens)
            | SPACE(_)::COLON::rest -> lines_trim rest (COLON::rtokens)
            | token::rest -> lines_trim rest (token::rtokens) in
    lines_trim program []