From 19402fbee47b61053a62722fb024af691fce4ae4 Mon Sep 17 00:00:00 2001 From: alisdair sullivan Date: Sun, 1 Apr 2012 17:53:59 -0700 Subject: [PATCH] two new tests for comments and one (tiny) fix for trailing comments --- priv/test_cases/comment_style_a.json | 10 ++++++++++ priv/test_cases/comment_style_a.test | 4 ++++ priv/test_cases/comment_style_b.json | 1 + priv/test_cases/comment_style_b.test | 4 ++++ src/jsx_decoder.erl | 2 +- 5 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 priv/test_cases/comment_style_a.json create mode 100644 priv/test_cases/comment_style_a.test create mode 100644 priv/test_cases/comment_style_b.json create mode 100644 priv/test_cases/comment_style_b.test 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);