diff --git a/priv/test_cases/comment_style_a.json b/priv/test_cases/comment_style_a.json new file mode 100644 index 0000000..5bdc1f7 --- /dev/null +++ b/priv/test_cases/comment_style_a.json @@ -0,0 +1,10 @@ +// comment +{ // comment + "key" // comment + : // comment + [ // comment + true // comment + , // comment + false // comment + ] // comment +} // comment \ No newline at end of file diff --git a/priv/test_cases/comment_style_a.test b/priv/test_cases/comment_style_a.test new file mode 100644 index 0000000..60d9900 --- /dev/null +++ b/priv/test_cases/comment_style_a.test @@ -0,0 +1,4 @@ +{name, "comment_style_a"}. +{jsx, [start_object,{key, <<"key">>}, start_array, {literal, true}, {literal, false}, end_array, end_object,end_json]}. +{json, "comment_style_a.json"}. +{jsx_flags, [comments]}. \ No newline at end of file diff --git a/priv/test_cases/comment_style_b.json b/priv/test_cases/comment_style_b.json new file mode 100644 index 0000000..c515fee --- /dev/null +++ b/priv/test_cases/comment_style_b.json @@ -0,0 +1 @@ +/* comment */ { /* comment */ "key" /* comment */ : /* comment */ [ /* comment */ true /* comment */ , /* comment */ false /* comment */ ] /* comment */ } /* comment */ \ No newline at end of file diff --git a/priv/test_cases/comment_style_b.test b/priv/test_cases/comment_style_b.test new file mode 100644 index 0000000..60d9900 --- /dev/null +++ b/priv/test_cases/comment_style_b.test @@ -0,0 +1,4 @@ +{name, "comment_style_a"}. +{jsx, [start_object,{key, <<"key">>}, start_array, {literal, true}, {literal, false}, end_array, end_object,end_json]}. +{json, "comment_style_a.json"}. +{jsx_flags, [comments]}. \ No newline at end of file diff --git a/src/jsx_decoder.erl b/src/jsx_decoder.erl index 2abd30c..4e64bec 100644 --- a/src/jsx_decoder.erl +++ b/src/jsx_decoder.erl @@ -972,7 +972,7 @@ single_comment(<>, Handler, Stack, Opts) -> end_comment(Rest, Handler, Stack, Opts); single_comment(<<_/utf8, Rest/binary>>, Handler, Stack, Opts) -> single_comment(Rest, Handler, Stack, Opts); -single_comment(<<>>, Handler, [done], Opts) -> +single_comment(<<>>, Handler, [done], Opts=#opts{explicit_end=false}) -> end_comment(<<>>, Handler, [done], Opts); single_comment(<<>>, Handler, Stack, Opts) -> ?incomplete(single_comment, <<>>, Handler, Stack, Opts);