package alba

  1. Overview
  2. Docs

Basic Combinators

type expect
include Generic_parser.COMBINATORS
type 'a t
type semantic
val return : 'a -> 'a t
val succeed : 'a -> 'a t
val fail : semantic -> 'a t
val consumer : 'a t -> 'a t
val map : ('a -> 'b) -> 'a t -> 'b t
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
val (<|>) : 'a t -> 'a t -> 'a t
val optional : 'a t -> 'a option t
val one_of : 'a t list -> 'a t
val zero_or_more : 'a t -> 'a list t
val one_or_more : 'a t -> 'a list t
val one_or_more_separated : 'a t -> _ t -> 'a list t
val zero_or_more_separated : 'a t -> _ t -> 'a list t
val skip_zero_or_more : 'a t -> int t
val skip_one_or_more : 'a t -> int t
val (|=) : ('a -> 'b) t -> 'a t -> 'b t
val (|.) : 'a t -> _ t -> 'a t
val (|==) : ('a -> 'b) t -> (unit -> 'a t) -> 'b t
val (|..) : 'a t -> (unit -> _ t) -> 'a t
val unexpected : expect -> 'a t
val backtrackable : 'a t -> expect -> 'a t
val followed_by : 'a t -> expect -> unit t
val not_followed_by : 'a t -> expect -> unit t
val (<?>) : 'a t -> expect -> 'a t

Position and State Combinators

val get_position : Position.t t
val located : 'a t -> 'a Located.t t
type state
val get_state : state t
val put_state : state -> unit t
val update : (state -> state) -> unit t

Indentation Combinators

val absolute : 'a t -> 'a t
val absolute_at : int -> 'a t -> 'a t
val indented : 'a t -> 'a t
val maybe_indented : 'a t -> 'a t
val detached : 'a t -> 'a t
val get_bounds : (int * int option) t
val one_or_more_aligned : 'a t -> 'a list t
val zero_or_more_aligned : 'a t -> 'a list t
val skip_one_or_more_aligned : 'a t -> int t
val skip_zero_or_more_aligned : 'a t -> int t

Context Combinator

type context
val in_context : context -> 'a t -> 'a t