21 lines
530 B
OCaml
21 lines
530 B
OCaml
open Angstrom
|
|
|
|
let is_digit = function '0' .. '9' -> true | _ -> false
|
|
let is_semi c = c == ';'
|
|
|
|
let digit = take_while is_digit >>| int_of_string
|
|
let skip_semi = skip is_semi
|
|
|
|
let semi_digits = sep_by1 skip_semi digit
|
|
|
|
|
|
type parser = {
|
|
separator : char array;
|
|
delimiter : char array;
|
|
}
|
|
|
|
let create_parser ?(separator = [|'\x20'; '\x09'|]) ?(delimiter = [|'\x0a'; '\x0d'|]) () = { separator ; delimiter }
|
|
|
|
let is_sep = function '\x20' | '\x09' -> true | _ -> false
|
|
let is_delim = function '\x0a' | '\x0d' -> true | _ -> false
|