Current section

Files

Jump to
pears src pears.erl
Raw

src/pears.erl

-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}}.