nibble/pratt

Types

pub opaque type Config(a, ctx)
pub opaque type Operator(a, ctx)

Functions

pub fn expression(one_of first: List(
    fn(Config(a, b)) -> Parser(a, b),
  ), and_then_one_of then: List(Operator(a, b)), dropping spaces: Parser(
    Nil,
    b,
  )) -> Parser(a, b)
pub fn infix_left(precedence: Int, operator: Parser(Nil, a), apply: fn(
    b,
    b,
  ) -> b) -> Operator(b, a)
pub fn infix_right(precedence: Int, operator: Parser(Nil, a), apply: fn(
    b,
    b,
  ) -> b) -> Operator(b, a)
pub fn postfix(precedence: Int, operator: Parser(Nil, a), apply: fn(
    b,
  ) -> b) -> Operator(b, a)
pub fn prefix(precedence: Int, operator: Parser(Nil, a), apply: fn(
    b,
  ) -> b) -> fn(Config(b, a)) -> Parser(b, a)
pub fn sub_expression(config: Config(a, b), precedence: Int) -> Parser(
  a,
  b,
)
Search Document