1.1 --- a/micropython/ast.py Sun Sep 05 21:14:40 2010 +0200
1.2 +++ b/micropython/ast.py Mon Sep 06 00:48:34 2010 +0200
1.3 @@ -127,12 +127,22 @@
1.4 block = self.new_block()
1.5 self.set_block(block)
1.6
1.7 + # Handle exceptions for the program.
1.8 +
1.9 + if self.module.name == "__main__":
1.10 + handler_block = self.new_block()
1.11 + self.new_op(PushHandler(handler_block))
1.12 +
1.13 + # Generate code for the module.
1.14 +
1.15 if self.module.astnode is not None:
1.16 self.dispatch(self.module.astnode)
1.17
1.18 # Finish off the translated program if appropriate.
1.19
1.20 if self.module.name == "__main__":
1.21 + self.set_block(handler_block)
1.22 + self.new_op(PopHandler())
1.23 self.new_op(Return())
1.24
1.25 self.unit.temp_usage = self.max_temp_position + 1