|
@@ -101,12 +101,11 @@ compile_rules(<< S, Rest/bits >>, S, Segments, Rules, <<>>) ->
|
|
compile_rules(Rest, S, Segments, Rules, <<>>);
|
|
compile_rules(Rest, S, Segments, Rules, <<>>);
|
|
compile_rules(<< S, Rest/bits >>, S, Segments, Rules, Acc) ->
|
|
compile_rules(<< S, Rest/bits >>, S, Segments, Rules, Acc) ->
|
|
compile_rules(Rest, S, [Acc|Segments], Rules, <<>>);
|
|
compile_rules(Rest, S, [Acc|Segments], Rules, <<>>);
|
|
|
|
+%% Colon on path segment start is special, otherwise allow.
|
|
compile_rules(<< $:, Rest/bits >>, S, Segments, Rules, <<>>) ->
|
|
compile_rules(<< $:, Rest/bits >>, S, Segments, Rules, <<>>) ->
|
|
{NameBin, Rest2} = compile_binding(Rest, S, <<>>),
|
|
{NameBin, Rest2} = compile_binding(Rest, S, <<>>),
|
|
Name = binary_to_atom(NameBin, utf8),
|
|
Name = binary_to_atom(NameBin, utf8),
|
|
compile_rules(Rest2, S, Segments, Rules, Name);
|
|
compile_rules(Rest2, S, Segments, Rules, Name);
|
|
-compile_rules(<< $:, _/bits >>, _, _, _, _) ->
|
|
|
|
- error(badarg);
|
|
|
|
compile_rules(<< $[, $., $., $., $], Rest/bits >>, S, Segments, Rules, Acc)
|
|
compile_rules(<< $[, $., $., $., $], Rest/bits >>, S, Segments, Rules, Acc)
|
|
when Acc =:= <<>> ->
|
|
when Acc =:= <<>> ->
|
|
compile_rules(Rest, S, ['...'|Segments], Rules, Acc);
|
|
compile_rules(Rest, S, ['...'|Segments], Rules, Acc);
|