def p_unwind(p): """ unwind : UNWIND_PROTECT stmt_list UNWIND_PROTECT_CLEANUP stmt_list END_UNWIND_PROTECT """ p[0] = node.try_catch(try_stmt=p[2], catch_stmt=node.expr_list(), finally_stmt=p[4])
def p_try_catch(p): """ try_catch : TRY stmt_list CATCH stmt_list END_STMT """ assert isinstance(p[2],node.stmt_list) assert isinstance(p[4],node.stmt_list) p[0] = node.try_catch(try_stmt=p[2], catch_stmt=p[4])
def p_try_catch(p): """ try_catch : TRY stmt_list CATCH stmt_list END_STMT | TRY stmt_list END_STMT """ assert isinstance(p[2],node.stmt_list) #assert isinstance(p[4],node.stmt_list) p[0] = node.try_catch(try_stmt=p[2], catch_stmt=node.stmt_list(), # FIXME finally_stmt=node.stmt_list())
def p_try_catch(p): """ try_catch : TRY stmt_list CATCH stmt_list END_STMT """ ## | TRY stmt_list END_STMT assert isinstance(p[2], node.stmt_list) # assert isinstance(p[4],node.stmt_list) p[0] = node.try_catch(try_stmt=p[2], catch_stmt=p[4], finally_stmt=node.stmt_list())