-module(pears). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([parse/2, parse_string/2, ok/2]). -export_type([parsed/2, parse_error/1]). -type parsed(FXT, FXU) :: {parsed, pears@input:input(FXT), FXU}. -type parse_error(FXV) :: {unexpected_end_of_input, pears@input:input(FXV), list(binary())} | {unexpected_token, pears@input:input(FXV), list(binary()), FXV}. -spec parse( list(FYI), fun((pears@input:input(FYI)) -> {ok, parsed(FYI, FYK)} | {error, parse_error(FYI)}) ) -> {ok, parsed(FYI, FYK)} | {error, parse_error(FYI)}. parse(I, P) -> _pipe = {input, I, 0}, P(_pipe). -spec parse_string( binary(), fun((pears@input:input(binary())) -> {ok, parsed(binary(), FYP)} | {error, parse_error(binary())}) ) -> {ok, parsed(binary(), FYP)} | {error, parse_error(binary())}. parse_string(I, P) -> _pipe = I, _pipe@1 = gleam@string:to_graphemes(_pipe), parse(_pipe@1, P). -spec ok(pears@input:input(FYU), FYW) -> {ok, parsed(FYU, FYW)} | {error, parse_error(FYU)}. ok(Input, Value) -> {ok, {parsed, Input, Value}}.