You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by lo...@apache.org on 2012/07/15 07:45:14 UTC

[lucy-commits] svn commit: r1361630 - /lucy/trunk/core/Lucy/Util/Json/JsonParser.y

Author: logie
Date: Sun Jul 15 05:45:13 2012
New Revision: 1361630

URL: http://svn.apache.org/viewvc?rev=1361630&view=rev
Log:
LUCY-239
Simplified the grammar for the lemon y file for JSON.

Modified:
    lucy/trunk/core/Lucy/Util/Json/JsonParser.y

Modified: lucy/trunk/core/Lucy/Util/Json/JsonParser.y
URL: http://svn.apache.org/viewvc/lucy/trunk/core/Lucy/Util/Json/JsonParser.y?rev=1361630&r1=1361629&r2=1361630&view=diff
==============================================================================
--- lucy/trunk/core/Lucy/Util/Json/JsonParser.y (original)
+++ lucy/trunk/core/Lucy/Util/Json/JsonParser.y Sun Jul 15 05:45:13 2012
@@ -48,14 +48,6 @@ result ::= top_level_value(A).
  */
 top_level_value(A) ::= value(B).  { A = B; }
 
-/* Structural characters. */
-begin_array     ::= LEFT_SQUARE_BRACKET.
-end_array       ::= RIGHT_SQUARE_BRACKET.
-begin_object    ::= LEFT_CURLY_BRACKET.
-end_object      ::= RIGHT_CURLY_BRACKET.
-name_separator  ::= COLON.
-value_separator ::= COMMA.
-
 /* Values */
 %type STRING { cfish_CharBuf* }
 
@@ -83,33 +75,33 @@ object(A) ::= empty_object(B).         {
 object(A) ::= single_pair_object(B).   { A = B; }
 object(A) ::= multi_pair_object(B).    { A = B; }
 
-empty_object(A) ::= begin_object end_object.
+empty_object(A) ::= LEFT_CURLY_BRACKET RIGHT_CURLY_BRACKET.
 { 
     A = cfish_Hash_new(0);
 }
 
-single_pair_object(A) ::= begin_object STRING(B) name_separator value(C) end_object.
+single_pair_object(A) ::= LEFT_CURLY_BRACKET STRING(B) COLON value(C) RIGHT_CURLY_BRACKET.
 {
     A = cfish_Hash_new(1);
     Cfish_Hash_Store(A, (cfish_Obj*)B, C);
     CFISH_DECREF(B);
 }
 
-multi_pair_object(A) ::= begin_object key_value_pair_list(B) STRING(C) name_separator value(D) end_object.
+multi_pair_object(A) ::= LEFT_CURLY_BRACKET key_value_pair_list(B) STRING(C) COLON value(D) RIGHT_CURLY_BRACKET.
 {
     A = B;
     Cfish_Hash_Store(A, (cfish_Obj*)C, D);
     CFISH_DECREF(C);
 }
 
-key_value_pair_list(A) ::= key_value_pair_list(B) STRING(C) name_separator value(D) value_separator.
+key_value_pair_list(A) ::= key_value_pair_list(B) STRING(C) COLON value(D) COMMA.
 { 
     A = B; 
     Cfish_Hash_Store(A, (cfish_Obj*)C, D);
     CFISH_DECREF(C);
 }
 
-key_value_pair_list(A) ::= STRING(B) name_separator value(C) value_separator.
+key_value_pair_list(A) ::= STRING(B) COLON value(C) COMMA.
 {
     A = cfish_Hash_new(0);
     Cfish_Hash_Store(A, (cfish_Obj*)B, C);
@@ -131,30 +123,30 @@ array(A) ::= empty_array(B).       { A =
 array(A) ::= single_elem_array(B). { A = B; }
 array(A) ::= multi_elem_array(B).  { A = B; }
 
-empty_array(A) ::= begin_array end_array.
+empty_array(A) ::= LEFT_SQUARE_BRACKET RIGHT_SQUARE_BRACKET.
 {
     A = cfish_VA_new(0);
 }
 
-single_elem_array(A) ::= begin_array value(B) end_array.
+single_elem_array(A) ::= LEFT_SQUARE_BRACKET value(B) RIGHT_SQUARE_BRACKET.
 {
     A = cfish_VA_new(1);
     Cfish_VA_Push(A, B);
 }
 
-multi_elem_array(A) ::= begin_array array_elem_list(B) value(C) end_array.
+multi_elem_array(A) ::= LEFT_SQUARE_BRACKET array_elem_list(B) value(C) RIGHT_SQUARE_BRACKET.
 {
     A = B;
     Cfish_VA_Push(A, C);
 }
 
-array_elem_list(A) ::= array_elem_list(B) value(C) value_separator. 
+array_elem_list(A) ::= array_elem_list(B) value(C) COMMA. 
 { 
     A = B; 
     Cfish_VA_Push(A, C);
 }
 
-array_elem_list(A) ::= value(B) value_separator.
+array_elem_list(A) ::= value(B) COMMA.
 {
     A = cfish_VA_new(1);
     Cfish_VA_Push(A, B);