blob: 999cd836bc3ac35450d5027e34161d14b7b14516 (
plain) (
tree)
|
|
module type PARSE_COMMON =
sig
val is_letter : char -> bool
val is_digit : char -> bool
val is_whitespace : char -> bool
val is_cr : char -> bool
val lift_or : ('a -> bool) -> ('a -> bool) -> 'a -> bool
val skip_spaces : unit Angstrom.t
val take_till_cr : string Angstrom.t
end
module ParseCommon : PARSE_COMMON =
struct
open Angstrom
let is_letter = function
| 'a' .. 'z' | 'A' .. 'Z' -> true
| _ -> false
let is_digit = function
| '0' .. '9' -> true
| _ -> false
let is_whitespace = function
| ' ' | '\t' -> true
| _ -> false
let is_cr = function
| '\r' -> true
| _ -> false
let lift_or p q b = p b || q b
let skip_spaces = skip_while is_whitespace
let take_till_cr = take_till is_cr <* string "\r\n"
end
|