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 []