Index: mojo/public/bindings/pylib/parse/mojo_parser.py |
diff --git a/mojo/public/bindings/pylib/parse/mojo_parser.py b/mojo/public/bindings/pylib/parse/mojo_parser.py |
index 51bbbff269096d60c1b4344b24b0c76526609c05..3560fe2a1db89d5d6135930588c5f5a794aa201c 100755 |
--- a/mojo/public/bindings/pylib/parse/mojo_parser.py |
+++ b/mojo/public/bindings/pylib/parse/mojo_parser.py |
@@ -100,7 +100,7 @@ class Parser(object): |
def p_default(self, p): |
"""default : EQUALS expression |
- | EQUALS expression_array |
+ | EQUALS expression_object |
| """ |
if len(p) > 2: |
p[0] = p[2] |
@@ -190,17 +190,34 @@ class Parser(object): |
### Expressions ### |
+ def p_expression_object(self, p): |
+ """expression_object : expression_array |
+ | LBRACE expression_object_elements RBRACE """ |
+ if len(p) < 3: |
+ p[0] = p[1] |
+ else: |
+ p[0] = ('OBJECT', p[2]) |
+ |
+ def p_expression_object_elements(self, p): |
+ """expression_object_elements : expression_object |
+ | expression_object COMMA expression_object_elements |
+ | """ |
+ if len(p) == 2: |
+ p[0] = ListFromConcat(p[1]) |
+ elif len(p) > 3: |
+ p[0] = ListFromConcat(p[1], p[3]) |
+ |
def p_expression_array(self, p): |
"""expression_array : expression |
| LBRACKET expression_array_elements RBRACKET """ |
if len(p) < 3: |
p[0] = p[1] |
else: |
- p[0] = p[2] |
+ p[0] = ('ARRAY', p[2]) |
def p_expression_array_elements(self, p): |
- """expression_array_elements : expression |
- | expression COMMA expression_array_elements |
+ """expression_array_elements : expression_object |
+ | expression_object COMMA expression_array_elements |
| """ |
if len(p) == 2: |
p[0] = ListFromConcat(p[1]) |