Merge lp:~paul-lucas/zorba/pjl-misc into lp:zorba

Proposed by Paul J. Lucas
Status: Merged
Approved by: Matthias Brantner
Approved revision: 11156
Merged at revision: 11332
Proposed branch: lp:~paul-lucas/zorba/pjl-misc
Merge into: lp:zorba
Diff against target: 89 lines (+57/-0)
3 files modified
src/runtime/json/jsonml_array.cpp (+45/-0)
test/rbkt/Queries/zorba/json/json-jsonml_array-parse-08.spec (+1/-0)
test/rbkt/Queries/zorba/json/json-jsonml_array-parse-08.xq (+11/-0)
To merge this branch: bzr merge lp:~paul-lucas/zorba/pjl-misc
Reviewer Review Type Date Requested Status
Matthias Brantner Approve
Paul J. Lucas Approve
Review via email: mp+156453@code.launchpad.net

Commit message

Now catching (more) invalid JsonML.

Description of the change

Now catching (more) invalid JsonML.

To post a comment you must log in.
lp:~paul-lucas/zorba/pjl-misc updated
11156. By Paul J. Lucas

Now catching (more) invalid JsonML.

Revision history for this message
Paul J. Lucas (paul-lucas) :
review: Approve
Revision history for this message
Matthias Brantner (matthias-brantner) :
review: Approve
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue job pjl-misc-2013-04-02T03-01-57.515Z is finished. The final status was:

All tests succeeded!

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/runtime/json/jsonml_array.cpp'
--- src/runtime/json/jsonml_array.cpp 2013-02-07 17:24:36 +0000
+++ src/runtime/json/jsonml_array.cpp 2013-04-02 02:52:24 +0000
@@ -62,6 +62,41 @@
6262
63namespace jsonml_array {63namespace jsonml_array {
6464
65// JsonML grammar
66// Source: http://www.ibm.com/developerworks/library/x-jsonml/#N10138
67//
68// element
69// = '[' tag-name ',' attributes ',' element-list ']'
70// | '[' tag-name ',' attributes ']'
71// | '[' tag-name ',' element-list ']'
72// | '[' tag-name ']'
73// | json-string
74// ;
75// tag-name
76// = json-string
77// ;
78// attributes
79// = '{' attribute-list '}'
80// | '{' '}'
81// ;
82// attribute-list
83// = attribute ',' attribute-list
84// | attribute
85// ;
86// attribute
87// = attribute-name ':' attribute-value
88// ;
89// attribute-name
90// = json-string
91// ;
92// attribute-value
93// = json-string
94// ;
95// element-list
96// = element ',' element-list
97// | element
98// ;
99
65void parse( json::parser &p, store::Item_t *result ) {100void parse( json::parser &p, store::Item_t *result ) {
66 ZORBA_ASSERT( result );101 ZORBA_ASSERT( result );
67102
@@ -83,11 +118,21 @@
83 switch ( token.get_type() ) {118 switch ( token.get_type() ) {
84119
85 case '[':120 case '[':
121 if ( expect_what )
122 throw XQUERY_EXCEPTION(
123 zerr::ZJPE0006_UNEXPECTED_TOKEN,
124 ERROR_PARAMS( token )
125 );
86 PUSH_STATE( in_array );126 PUSH_STATE( in_array );
87 expect_what = expect::element_name;127 expect_what = expect::element_name;
88 break;128 break;
89129
90 case '{':130 case '{':
131 if ( expect_what )
132 throw XQUERY_EXCEPTION(
133 zerr::ZJPE0006_UNEXPECTED_TOKEN,
134 ERROR_PARAMS( token )
135 );
91 if ( state_stack.empty() )136 if ( state_stack.empty() )
92 throw XQUERY_EXCEPTION(137 throw XQUERY_EXCEPTION(
93 zerr::ZJPE0010_JSONML_ARRAY_REQUIRES_BRACKET138 zerr::ZJPE0010_JSONML_ARRAY_REQUIRES_BRACKET
94139
=== added file 'test/rbkt/Queries/zorba/json/json-jsonml_array-parse-08.spec'
--- test/rbkt/Queries/zorba/json/json-jsonml_array-parse-08.spec 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/json/json-jsonml_array-parse-08.spec 2013-04-02 02:52:24 +0000
@@ -0,0 +1,1 @@
1Error: http://www.zorba-xquery.com/errors:ZJPE0006
02
=== added file 'test/rbkt/Queries/zorba/json/json-jsonml_array-parse-08.xq'
--- test/rbkt/Queries/zorba/json/json-jsonml_array-parse-08.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/json/json-jsonml_array-parse-08.xq 2013-04-02 02:52:24 +0000
@@ -0,0 +1,11 @@
1import module namespace json =
2 "http://www.zorba-xquery.com/modules/converters/json";
3
4let $opt :=
5 <options xmlns="http://www.zorba-xquery.com/modules/converters/json-options">
6 <json-format value="JsonML-array"/>
7 </options>
8let $json := '[ { "x" : "x" } ]'
9return json:parse( $json, $opt )
10
11(: vim:set et sw=2 ts=2: :)

Subscribers

People subscribed via source and target branches