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(FKF, FKG) :: {parsed, list(FKF), FKG}.
-type parse_error(FKH) :: {parse_error, list(FKH), list(binary())}.
-spec parse(
list(FKU),
fun((list(FKU)) -> {ok, parsed(FKU, FKW)} | {error, parse_error(FKU)})
) -> {ok, parsed(FKU, FKW)} | {error, parse_error(FKU)}.
parse(I, P) ->
P(I).
-spec parse_string(
binary(),
fun((list(binary())) -> {ok, parsed(binary(), FLB)} |
{error, parse_error(binary())})
) -> {ok, parsed(binary(), FLB)} | {error, parse_error(binary())}.
parse_string(I, P) ->
_pipe = I,
_pipe@1 = gleam@string:to_graphemes(_pipe),
parse(_pipe@1, P).
-spec ok(list(FLG), FLI) -> {ok, parsed(FLG, FLI)} | {error, parse_error(FLG)}.
ok(Input, Value) ->
{ok, {parsed, Input, Value}}.