public static Object PUSH_EXIT( exit v, int protect ) { //print( "** PUSH " + v + " " + protect ); v.userp= protect; v.prev= (exit)bgldynamic.abgldynamic.get().exitd_top; bgldynamic.abgldynamic.get().exitd_top= v; return unspecified._unspecified; }
public static Object debug_dot_handler( Exception v, exit tag ) { try { Console.Out.Flush(); String stack_trace= stackwriter.demangle( v.StackTrace ); return fail( "Exception caught in Bigloo .NET runtime", v.Message, ("\n"+stack_trace) ); } catch ( bexception bex ) { return debug_handler( bex, tag ); } }
public static Object debug_handler( bexception v, exit tag ) { if (tag.userp == 0) { //print( "** PROTECT " + v + " " + tag ); return v.value; } if (v.tag == tag) { // print( "** TAG reached " + v + " " + tag ); return v.value; } // print( "** TAG forward " + v + " " + tag ); throw v; }
public static Object CALLCC_JUMP_EXIT(exit v, Object o) { return o; }