Current section
Files
Jump to
Current section
Files
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(FLE, FLF) :: {parsed, pears@input:input(FLE), FLF}.
-type parse_error(FLG) :: {unexpected_end_of_input,
pears@input:input(FLG),
list(binary())} |
{unexpected_token, pears@input:input(FLG), list(binary()), FLG}.
-spec parse(
list(FLT),
fun((pears@input:input(FLT)) -> {ok, parsed(FLT, FLV)} |
{error, parse_error(FLT)})
) -> {ok, parsed(FLT, FLV)} | {error, parse_error(FLT)}.
parse(I, P) ->
_pipe = {input, I, 0},
P(_pipe).
-spec parse_string(
binary(),
fun((pears@input:input(binary())) -> {ok, parsed(binary(), FMA)} |
{error, parse_error(binary())})
) -> {ok, parsed(binary(), FMA)} | {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(FMF), FMH) -> {ok, parsed(FMF, FMH)} |
{error, parse_error(FMF)}.
ok(Input, Value) ->
{ok, {parsed, Input, Value}}.