| 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])
|
|
|