예제 #1
0
        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;
        }
예제 #2
0
        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 );
            }
        }
예제 #3
0
 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;
 }
예제 #4
0
 public static Object CALLCC_JUMP_EXIT(exit v, Object o)
 {
     return o;
 }