diff --git a/src/celpy/celparser.py b/src/celpy/celparser.py index 020621e..d5c80e0 100644 --- a/src/celpy/celparser.py +++ b/src/celpy/celparser.py @@ -335,6 +335,8 @@ def list_lit(self, tree: lark.Tree) -> None: if self.stack: left = self.stack.pop() self.stack.append(f"[{left}]") + else: + self.stack.append("") def map_lit(self, tree: lark.Tree) -> None: if self.stack: diff --git a/tests/test_parser.py b/tests/test_parser.py index 265a090..63e321c 100644 --- a/tests/test_parser.py +++ b/tests/test_parser.py @@ -439,6 +439,12 @@ def test_dump_ast(parser): assert DumpAST.display(ast6) == ".min()" +def test_dump_issue_35(): + cel = "[]" + tree = CELParser().parse(cel) + assert DumpAST.display(tree) == "" + + def test_tree_dump(parser): ast = parser.parse("-(3*4+5-1/2%3==1)?name[index]:f(1,2)||false&&true") assert tree_dump(ast) == '- (3 * 4 + 5 - 1 / 2 % 3 == 1) ? name[index] : f(1, 2) || false && true'