aboutsummaryrefslogtreecommitdiffstats
path: root/src/rlx_goal.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/rlx_goal.erl')
-rw-r--r--src/rlx_goal.erl10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/rlx_goal.erl b/src/rlx_goal.erl
index e588a0e..354aa48 100644
--- a/src/rlx_goal.erl
+++ b/src/rlx_goal.erl
@@ -16,9 +16,9 @@
file(Filename) -> case file:read_file(Filename) of {ok,Bin} -> parse(Bin); Err -> Err end.
-spec parse(binary() | list()) -> any().
-parse(List) when is_list(List) -> parse(list_to_binary(List));
+parse(List) when is_list(List) -> parse(unicode:characters_to_binary(List));
parse(Input) when is_binary(Input) ->
- setup_memo(),
+ _ = setup_memo(),
Result = case 'constraint'(Input,{{line,1},{column,1}}) of
{AST, <<>>, _Index} -> AST;
Any -> Any
@@ -115,7 +115,7 @@ setup_memo() ->
release_memo() ->
ets:delete(memo_table_name()).
--spec memoize(index(), atom(), term()) -> true.
+-spec memoize(index(), atom(), parse_result()) -> true.
memoize(Index, Name, Result) ->
Memo = case ets:lookup(memo_table_name(), Index) of
[] -> [];
@@ -252,8 +252,8 @@ p_label(Tag, P) ->
-endif.
-ifdef(p_scan).
--spec p_scan(parse_fun(), input(), index(), [term()]) -> parse_result().
-p_scan(_, [], Index, Accum) -> {lists:reverse( Accum ), [], Index};
+-spec p_scan(parse_fun(), input(), index(), [term()]) -> {[term()], input(), index()}.
+p_scan(_, <<>>, Index, Accum) -> {lists:reverse(Accum), <<>>, Index};
p_scan(P, Inp, Index, Accum) ->
case P(Inp, Index) of
{fail,_} -> {lists:reverse(Accum), Inp, Index};