{"kind":"Program","statements":[ {"kind":"FunctionDeclaration","name":"f","params":["x"],"body":[{"kind":"Return","value":{"kind":"Variable","name":"x"}}]}, {"kind":"FunctionDeclaration","name":"main","params":["args"],"body":[ {"kind":"Local","variables":["i"],"inits":[{"kind":"Literal","value":{"type":"int","value":0}}]}, {"kind":"Loop","condition":{"kind":"BinaryOp","op":"<","left":{"kind":"Variable","name":"i"},"right":{"kind":"Literal","value":{"type":"int","value":2}}},"body":[ {"kind":"TryCatch", "try":[{"kind":"FunctionCall","name":"f","arguments":[{"kind":"Variable","name":"i"}]}], "catch":[{"type":"Error","var":"e","body":[{"kind":"Print","expression":{"kind":"Variable","name":"e"}}]}], "cleanup":[{"kind":"Print","expression":{"kind":"Literal","value":{"type":"string","value":"cleanup"}}}] }, {"kind":"Assignment","target":{"kind":"Variable","name":"i"},"value":{"kind":"BinaryOp","op":"+","left":{"kind":"Variable","name":"i"},"right":{"kind":"Literal","value":{"type":"int","value":1}}}} ]} ]} ]}