def test_return(self):
     tree = tr("return_statement", tr("int_literal", "1"))
     stack = Stack()
     stack.context_return_type = Real
     expression = parser.handle(tree, stack)
     assert expression.type == Void
     assert expression.expression == ["return ", "1"]
 def test_return_void(self):
     tree = tr("return_statement")
     stack = Stack()
     stack.context_return_type = Void
     expression = parser.handle(tree, stack)
     assert expression.expression == ["return"]
 def test_return_wrong_type(self):
     tree = tr("return_statement", tr("int_literal", "1"))
     stack = Stack()
     stack.context_return_type = Bool
     with pytest.raises(ValueTypeError):
         parser.handle(tree, stack)