apply resume stuffing technique to comments for mystery project x (better resume api)
This commit is contained in:
parent
4236edbf95
commit
8a8af8af84
1 changed files with 24 additions and 8 deletions
|
@ -880,12 +880,16 @@ null(Bin, Handler, Stack, Config) ->
|
||||||
?error([Bin, Handler, Stack, Config]).
|
?error([Bin, Handler, Stack, Config]).
|
||||||
|
|
||||||
|
|
||||||
|
%% this just exists to bridge to when i can properly clean up comments
|
||||||
|
comment(Bin, Handler, Resume, Stack, Config) ->
|
||||||
|
comment(Bin, Handler, [Resume|Stack], Config).
|
||||||
|
|
||||||
comment(<<?solidus, Rest/binary>>, Handler, Stack, Config) ->
|
comment(<<?solidus, Rest/binary>>, Handler, Stack, Config) ->
|
||||||
single_comment(Rest, Handler, Stack, Config);
|
single_comment(Rest, Handler, Stack, Config);
|
||||||
comment(<<?star, Rest/binary>>, Handler, Stack, Config) ->
|
comment(<<?star, Rest/binary>>, Handler, Stack, Config) ->
|
||||||
multi_comment(Rest, Handler, Stack, Config);
|
multi_comment(Rest, Handler, Stack, Config);
|
||||||
comment(<<>>, Handler, Stack, Config) ->
|
comment(<<>>, Handler, [Resume|Stack], Config) ->
|
||||||
?incomplete(comment, <<>>, Handler, Stack, Config);
|
?incomplete(comment, <<>>, Handler, Resume, Stack, Config);
|
||||||
comment(Bin, Handler, Stack, Config) ->
|
comment(Bin, Handler, Stack, Config) ->
|
||||||
?error([Bin, Handler, Stack, Config]).
|
?error([Bin, Handler, Stack, Config]).
|
||||||
|
|
||||||
|
@ -894,10 +898,12 @@ single_comment(<<?newline, Rest/binary>>, Handler, Stack, Config) ->
|
||||||
end_comment(Rest, Handler, Stack, Config);
|
end_comment(Rest, Handler, Stack, Config);
|
||||||
single_comment(<<_/utf8, Rest/binary>>, Handler, Stack, Config) ->
|
single_comment(<<_/utf8, Rest/binary>>, Handler, Stack, Config) ->
|
||||||
single_comment(Rest, Handler, Stack, Config);
|
single_comment(Rest, Handler, Stack, Config);
|
||||||
|
single_comment(<<_, Rest/binary>>, Handler, Stack, Config=#config{replaced_bad_utf8=true}) ->
|
||||||
|
single_comment(Rest, Handler, Stack, Config);
|
||||||
single_comment(<<>>, Handler, [done], Config=#config{explicit_end=false}) ->
|
single_comment(<<>>, Handler, [done], Config=#config{explicit_end=false}) ->
|
||||||
end_comment(<<>>, Handler, [done], Config);
|
end_comment(<<>>, Handler, [done], Config);
|
||||||
single_comment(<<>>, Handler, Stack, Config) ->
|
single_comment(<<>>, Handler, [Resume|Stack], Config) ->
|
||||||
?incomplete(single_comment, <<>>, Handler, Stack, Config);
|
?incomplete(comment, <<?solidus>>, Handler, Resume, Stack, Config);
|
||||||
single_comment(Bin, Handler, Stack, Config) ->
|
single_comment(Bin, Handler, Stack, Config) ->
|
||||||
?error([Bin, Handler, Stack, Config]).
|
?error([Bin, Handler, Stack, Config]).
|
||||||
|
|
||||||
|
@ -906,8 +912,10 @@ multi_comment(<<?star, Rest/binary>>, Handler, Stack, Config) ->
|
||||||
end_multi_comment(Rest, Handler, Stack, Config);
|
end_multi_comment(Rest, Handler, Stack, Config);
|
||||||
multi_comment(<<_S/utf8, Rest/binary>>, Handler, Stack, Config) ->
|
multi_comment(<<_S/utf8, Rest/binary>>, Handler, Stack, Config) ->
|
||||||
multi_comment(Rest, Handler, Stack, Config);
|
multi_comment(Rest, Handler, Stack, Config);
|
||||||
multi_comment(<<>>, Handler, Stack, Config) ->
|
multi_comment(<<_, Rest/binary>>, Handler, Stack, Config=#config{replaced_bad_utf8=true}) ->
|
||||||
?incomplete(multi_comment, <<>>, Handler, Stack, Config);
|
multi_comment(Rest, Handler, Stack, Config);
|
||||||
|
multi_comment(<<>>, Handler, [Resume|Stack], Config) ->
|
||||||
|
?incomplete(comment, <<?star>>, Handler, Resume, Stack, Config);
|
||||||
multi_comment(Bin, Handler, Stack, Config) ->
|
multi_comment(Bin, Handler, Stack, Config) ->
|
||||||
?error([Bin, Handler, Stack, Config]).
|
?error([Bin, Handler, Stack, Config]).
|
||||||
|
|
||||||
|
@ -916,8 +924,8 @@ end_multi_comment(<<?solidus, Rest/binary>>, Handler, Stack, Config) ->
|
||||||
end_comment(Rest, Handler, Stack, Config);
|
end_comment(Rest, Handler, Stack, Config);
|
||||||
end_multi_comment(<<_S/utf8, Rest/binary>>, Handler, Stack, Config) ->
|
end_multi_comment(<<_S/utf8, Rest/binary>>, Handler, Stack, Config) ->
|
||||||
multi_comment(Rest, Handler, Stack, Config);
|
multi_comment(Rest, Handler, Stack, Config);
|
||||||
end_multi_comment(<<>>, Handler, Stack, Config) ->
|
end_multi_comment(<<>>, Handler, [Resume|Stack], Config) ->
|
||||||
?incomplete(end_multi_comment, <<>>, Handler, Stack, Config);
|
?incomplete(comment, <<?star, ?space, ?star>>, Handler, Resume, Stack, Config);
|
||||||
end_multi_comment(Bin, Handler, Stack, Config) ->
|
end_multi_comment(Bin, Handler, Stack, Config) ->
|
||||||
?error([Bin, Handler, Stack, Config]).
|
?error([Bin, Handler, Stack, Config]).
|
||||||
|
|
||||||
|
@ -1236,6 +1244,14 @@ comments_test_() ->
|
||||||
{"// comment following // comment", ?_assertEqual(
|
{"// comment following // comment", ?_assertEqual(
|
||||||
[start_array, {literal, true}, end_array, end_json],
|
[start_array, {literal, true}, end_array, end_json],
|
||||||
decode(<<"[// comment", ?newline, "// comment", ?newline, "true]">>, [comments])
|
decode(<<"[// comment", ?newline, "// comment", ?newline, "true]">>, [comments])
|
||||||
|
)},
|
||||||
|
{"// comment with badutf", ?_assertEqual(
|
||||||
|
[start_array, {literal, true}, end_array, end_json],
|
||||||
|
decode(<<"[ // comment ", 16#00c0, " ", ?newline, "true]">>, [comments, replaced_bad_utf8])
|
||||||
|
)},
|
||||||
|
{"/**/ comment with badutf", ?_assertEqual(
|
||||||
|
[start_array, {literal, true}, end_array, end_json],
|
||||||
|
decode(<<"[ /* comment ", 16#00c0, " */ true]">>, [comments, replaced_bad_utf8])
|
||||||
)}
|
)}
|
||||||
].
|
].
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue