Module Pcombinators


module Pcombinators: sig .. end

type 'a parser 
val return : 'a -> 'a parser
val (>>=) : 'a parser ->
('a -> 'b parser) -> 'b parser
val fail : 'a parser
val eof : unit parser
val predicate : (char -> bool) -> char parser
val (++) : 'a parser -> 'a parser -> 'a parser
val (+?+) : 'a parser -> 'a parser -> 'a parser
val many : 'a parser -> 'a list parser
val many1 : 'a parser -> 'a list parser
val repeat : int -> 'a parser -> 'a list parser
val sep_by : 'a parser ->
'b parser -> 'a list parser
val sep_by1 : 'a parser ->
'b parser -> 'a list parser
val one_of : char list -> char parser
val char_exact : char -> char parser
val string_exact : string -> string parser
val int_exact : int -> string parser
val bool_exact : bool -> string parser
val digit : int parser
val digits : int parser
val whitespace : string parser
val whitespace1 : string parser

type 'a parse_result =
| Yes of 'a
| No of string
val parse : string -> 'a parser -> 'a parse_result
val parse_and_print : string -> 'a parser -> ('a -> string) -> unit