diff options
author | Mathias Stearn <mathias@10gen.com> | 2009-11-30 18:48:55 -0500 |
---|---|---|
committer | Mathias Stearn <mathias@10gen.com> | 2009-11-30 18:51:39 -0500 |
commit | d5231d774e367ecbf6aad1fe5706b15891184e06 (patch) | |
tree | 8d070bf2f6b9dd4bca792fcd8490ccb13e837a2d | |
parent | 84fbab144fc44c3af8dde09d8ffbb8427b61d077 (diff) | |
download | mongo-d5231d774e367ecbf6aad1fe5706b15891184e06.tar.gz |
Use boost's list_p in the json parser. SUPPORT-11 SERVER-443
-rw-r--r-- | db/json.cpp | 4 | ||||
-rw-r--r-- | stdafx.h | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/db/json.cpp b/db/json.cpp index ceb214e97b5..e0b7743518d 100644 --- a/db/json.cpp +++ b/db/json.cpp @@ -430,13 +430,13 @@ public: struct definition { definition( JsonGrammar const &self ) { object = ch_p( '{' )[ objectStart( self.b ) ] >> !members >> '}'; - members = fieldName >> ':' >> value >> !( ',' >> members ); + members = list_p((fieldName >> ':' >> value) , ','); fieldName = str[ fieldNameEnd( self.b ) ] | singleQuoteStr[ fieldNameEnd( self.b ) ] | unquotedFieldName[ unquotedFieldNameEnd( self.b ) ]; array = ch_p( '[' )[ arrayStart( self.b ) ] >> !elements >> ']'; - elements = value >> !( ch_p( ',' )[ arrayNext( self.b ) ] >> elements ); + elements = list_p(value, ch_p(',')[arrayNext( self.b )]); value = oid[ oidEnd( self.b ) ] | dbref[ dbrefEnd( self.b ) ] | @@ -107,9 +107,11 @@ namespace mongo { #define BOOST_SPIRIT_USE_OLD_NAMESPACE #include <boost/spirit/include/classic_core.hpp> #include <boost/spirit/include/classic_loops.hpp> +#include <boost/spirit/include/classic_lists.hpp> #else #include <boost/spirit/core.hpp> #include <boost/spirit/utility/loops.hpp> +#include <boost/spirit/utility/lists.hpp> #endif #include <boost/tuple/tuple.hpp> |