/* ** ** The C code is generated by ATS/Anairiats ** The compilation time is: 2011-9-10: 22h:10m ** */ /* include some .h files */ #ifndef _ATS_HEADER_NONE #include "ats_config.h" #include "ats_basics.h" #include "ats_types.h" #include "ats_exception.h" #include "ats_memory.h" #endif /* _ATS_HEADER_NONE */ /* include some .cats files */ #ifndef _ATS_PRELUDE_NONE #include "prelude/CATS/basics.cats" #include "prelude/CATS/bool.cats" #include "prelude/CATS/byte.cats" #include "prelude/CATS/char.cats" #include "prelude/CATS/float.cats" #include "prelude/CATS/integer.cats" #include "prelude/CATS/integer_fixed.cats" #include "prelude/CATS/integer_ptr.cats" #include "prelude/CATS/lazy.cats" #include "prelude/CATS/lazy_vt.cats" #include "prelude/CATS/pointer.cats" #include "prelude/CATS/printf.cats" #include "prelude/CATS/reference.cats" #include "prelude/CATS/sizetype.cats" #include "prelude/CATS/string.cats" #include "prelude/CATS/array.cats" #include "prelude/CATS/list.cats" #include "prelude/CATS/matrix.cats" #include "prelude/CATS/option.cats" #endif /* _ATS_PRELUDE_NONE */ /* prologues from statically loaded files */ /* external codes at top */ /* type definitions */ typedef struct { ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; ats_ptr_type atslab_2 ; } anairiats_sum_0 ; typedef struct { int tag ; ats_int64_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_1 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; } anairiats_sum_2 ; typedef struct { int tag ; ats_ptr_type atslab_0 ; ats_ptr_type atslab_1 ; } anairiats_sum_3 ; /* external typedefs */ /* external dynamic constructor declarations */ ATSextern_val(ats_sum_type, _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__LABTYLSTcons) ; ATSextern_val(ats_sum_type, _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__LABTYLSTnil) ; ATSextern_val(ats_sum_type, _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__TYarr) ; ATSextern_val(ats_sum_type, _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__TYbase) ; ATSextern_val(ats_sum_type, _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__TYname) ; ATSextern_val(ats_sum_type, _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__TYnil) ; ATSextern_val(ats_sum_type, _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__TYrec) ; ATSextern_val(ats_sum_type, _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__TYtop) ; ATSextern_val(ats_sum_type, _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__TYunit) ; /* external dynamic constant declarations */ ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_int_type, atspre_sub_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ; ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2stamp_2esats__eq_stamp_stamp) (ats_int64_type, ats_int64_type) ; ATSextern_fun(ats_void_type, _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2symbol_2esats__fprint_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_bool_type, _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2symbol_2esats__eq_symbol_symbol) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_void_type, _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__fprint_ty) (ats_ptr_type, ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__ty_lnkrmv) (ats_ptr_type) ; ATSextern_fun(ats_ptr_type, _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__ty_normalize_max) (ats_ptr_type, ats_int_type) ; ATSextern_fun(ats_ptr_type, _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__join_ty_ty) (ats_ptr_type, ats_ptr_type) ; /* external dynamic terminating constant declarations */ #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* sum constructor declarations */ /* exn constructor declarations */ /* global dynamic (non-functional) constant declarations */ /* internal function declarations */ static ats_void_type loop_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ; static ats_void_type fprint_labtylst_0 (ats_ptr_type arg0, ats_ptr_type arg1) ; /* partial value template declarations */ /* static temporary variable declarations */ /* external value variable declarations */ /* function implementations */ /* // /cs-pub/www-dir/faculty/hwxi/academic/courses/CS525/Spring09/code/Tiger/types.dats: 333(line=23, offs=7) -- 755(line=33, offs=6) */ ATSstaticdec() ats_void_type loop_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) { /* local vardec */ // ATSlocal_void (tmp1) ; ATSlocal (ats_ptr_type, tmp2) ; ATSlocal (ats_ptr_type, tmp3) ; ATSlocal (ats_ptr_type, tmp4) ; // ATSlocal_void (tmp5) ; ATSlocal (ats_bool_type, tmp6) ; // ATSlocal_void (tmp7) ; // ATSlocal_void (tmp8) ; // ATSlocal_void (tmp9) ; ATSlocal (ats_int_type, tmp10) ; __ats_lab_loop_1: #line 25 "types.dats" do { /* branch: __ats_lab_0 */ #line 26 "types.dats" __ats_lab_0_0: #line 26 "types.dats" if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; } #line 26 "types.dats" __ats_lab_0_1: #line 26 "types.dats" tmp2 = ats_caselptr_mac(anairiats_sum_0, arg1, atslab_0) ; #line 26 "types.dats" tmp3 = ats_caselptr_mac(anairiats_sum_0, arg1, atslab_1) ; #line 26 "types.dats" tmp4 = ats_caselptr_mac(anairiats_sum_0, arg1, atslab_2) ; #line 27 "types.dats" tmp6 = atspre_gt_int_int (arg2, 0) ; #line 27 "types.dats" if (tmp6) { #line 27 "types.dats" /* tmp5 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ; } else { /* empty */ } /* end of [if] */ #line 29 "types.dats" /* tmp7 = */ _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2symbol_2esats__fprint_symbol (arg0, tmp2) ; #line 29 "types.dats" /* tmp8 = */ atspre_fprint_string (arg0, ATSstrcst(": ")) ; #line 29 "types.dats" /* tmp9 = */ _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__fprint_ty (arg0, tmp3) ; #line 26 "types.dats" tmp10 = atspre_add_int_int (arg2, 1) ; #line 26 "types.dats" arg0 = arg0 ; #line 26 "types.dats" arg1 = tmp4 ; #line 26 "types.dats" arg2 = tmp10 ; #line 26 "types.dats" goto __ats_lab_loop_1 ; // tail call break ; /* branch: __ats_lab_1 */ #line 32 "types.dats" __ats_lab_1_0: #line 32 "types.dats" // if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; } #line 32 "types.dats" __ats_lab_1_1: break ; } while (0) ; return /* (tmp1) */ ; } /* end of [loop_1] */ /* // /cs-pub/www-dir/faculty/hwxi/academic/courses/CS525/Spring09/code/Tiger/types.dats: 266(line=21, offs=4) -- 801(line=36, offs=4) */ ATSstaticdec() ats_void_type fprint_labtylst_0 (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp0) ; __ats_lab_fprint_labtylst_0: #line 35 "types.dats" /* tmp0 = */ loop_1 (arg0, arg1, 0) ; return /* (tmp0) */ ; } /* end of [fprint_labtylst_0] */ /* // /cs-pub/www-dir/faculty/hwxi/academic/courses/CS525/Spring09/code/Tiger/types.dats: 851(line=38, offs=21) -- 1537(line=60, offs=4) */ ATSglobaldec() ats_void_type _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__fprint_ty (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ // ATSlocal_void (tmp11) ; ATSlocal (ats_ptr_type, tmp12) ; // ATSlocal_void (tmp13) ; // ATSlocal_void (tmp14) ; ATSlocal (ats_ptr_type, tmp15) ; ATSlocal (ats_ptr_type, tmp16) ; // ATSlocal_void (tmp17) ; ATSlocal (ats_ptr_type, tmp18) ; // ATSlocal_void (tmp19) ; // ATSlocal_void (tmp20) ; // ATSlocal_void (tmp21) ; // ATSlocal_void (tmp22) ; __ats_lab__2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__fprint_ty: #line 42 "types.dats" do { /* branch: __ats_lab_2 */ #line 43 "types.dats" __ats_lab_2_0: #line 43 "types.dats" if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_3_0 ; } #line 43 "types.dats" __ats_lab_2_1: #line 43 "types.dats" tmp12 = ats_caselptr_mac(anairiats_sum_1, arg1, atslab_1) ; #line 44 "types.dats" /* tmp13 = */ atspre_fprint_string (arg0, ATSstrcst("TYarr(")) ; #line 44 "types.dats" /* tmp14 = */ _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__fprint_ty (arg0, tmp12) ; #line 44 "types.dats" /* tmp11 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_3 */ #line 46 "types.dats" __ats_lab_3_0: #line 46 "types.dats" if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_4_0 ; } #line 46 "types.dats" __ats_lab_3_1: #line 46 "types.dats" tmp15 = ats_caselptr_mac(anairiats_sum_2, arg1, atslab_0) ; #line 46 "types.dats" /* tmp11 = */ _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2symbol_2esats__fprint_symbol (arg0, tmp15) ; break ; /* branch: __ats_lab_4 */ #line 47 "types.dats" __ats_lab_4_0: #line 47 "types.dats" if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_5_0 ; } #line 47 "types.dats" __ats_lab_4_1: #line 47 "types.dats" tmp16 = ats_caselptr_mac(anairiats_sum_3, arg1, atslab_0) ; #line 47 "types.dats" /* tmp11 = */ _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2symbol_2esats__fprint_symbol (arg0, tmp16) ; break ; /* branch: __ats_lab_5 */ #line 48 "types.dats" __ats_lab_5_0: #line 48 "types.dats" if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_6_0 ; } #line 48 "types.dats" __ats_lab_5_1: #line 49 "types.dats" /* tmp17 = */ atspre_fprint_string (arg0, ATSstrcst("TYnil(")) ; #line 49 "types.dats" /* tmp11 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_6 */ #line 51 "types.dats" __ats_lab_6_0: #line 51 "types.dats" if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_7_0 ; } #line 51 "types.dats" __ats_lab_6_1: #line 51 "types.dats" tmp18 = ats_caselptr_mac(anairiats_sum_1, arg1, atslab_1) ; #line 52 "types.dats" /* tmp19 = */ atspre_fprint_string (arg0, ATSstrcst("TYrec(")) ; #line 52 "types.dats" /* tmp20 = */ fprint_labtylst_0 (arg0, tmp18) ; #line 52 "types.dats" /* tmp11 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_7 */ #line 54 "types.dats" __ats_lab_7_0: #line 54 "types.dats" if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_8_0 ; } #line 54 "types.dats" __ats_lab_7_1: #line 55 "types.dats" /* tmp21 = */ atspre_fprint_string (arg0, ATSstrcst("TYtop(")) ; #line 55 "types.dats" /* tmp11 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; /* branch: __ats_lab_8 */ #line 57 "types.dats" __ats_lab_8_0: #line 57 "types.dats" // if (((ats_sum_ptr_type)arg1)->tag != 6) { ats_deadcode_failure_handle () ; } #line 57 "types.dats" __ats_lab_8_1: #line 58 "types.dats" /* tmp22 = */ atspre_fprint_string (arg0, ATSstrcst("TYunit(")) ; #line 58 "types.dats" /* tmp11 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ; break ; } while (0) ; return /* (tmp11) */ ; } /* end of [_2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__fprint_ty] */ /* // /cs-pub/www-dir/faculty/hwxi/academic/courses/CS525/Spring09/code/Tiger/types.dats: 1601(line=64, offs=20) -- 1634(line=64, offs=53) */ ATSglobaldec() ats_void_type _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__print_ty (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp23) ; __ats_lab__2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__print_ty: #line 64 "types.dats" /* tmp23 = */ _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__fprint_ty (stdout, arg0) ; return /* (tmp23) */ ; } /* end of [_2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__print_ty] */ /* // /cs-pub/www-dir/faculty/hwxi/academic/courses/CS525/Spring09/code/Tiger/types.dats: 1654(line=65, offs=20) -- 1687(line=65, offs=53) */ ATSglobaldec() ats_void_type _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__prerr_ty (ats_ptr_type arg0) { /* local vardec */ // ATSlocal_void (tmp24) ; __ats_lab__2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__prerr_ty: #line 65 "types.dats" /* tmp24 = */ _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__fprint_ty (stderr, arg0) ; return /* (tmp24) */ ; } /* end of [_2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__prerr_ty] */ /* // /cs-pub/www-dir/faculty/hwxi/academic/courses/CS525/Spring09/code/Tiger/types.dats: 1730(line=69, offs=21) -- 1875(line=73, offs=13) */ ATSglobaldec() ats_ptr_type _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__ty_lnkrmv (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp25) ; ATSlocal (ats_ptr_type, tmp26) ; ATSlocal (ats_ptr_type, tmp27) ; ATSlocal (ats_ptr_type, tmp28) ; __ats_lab__2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__ty_lnkrmv: #line 69 "types.dats" tmp26 = ats_ptrget_mac(ats_ptr_type, arg0) ; #line 69 "types.dats" do { /* branch: __ats_lab_9 */ #line 70 "types.dats" __ats_lab_9_0: #line 70 "types.dats" if (((ats_sum_ptr_type)tmp26)->tag != 2) { goto __ats_lab_10_0 ; } #line 70 "types.dats" __ats_lab_9_1: #line 70 "types.dats" tmp27 = ats_caselptr_mac(anairiats_sum_3, tmp26, atslab_1) ; #line 71 "types.dats" tmp28 = _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__ty_lnkrmv (tmp27) ; #line 71 "types.dats" ats_ptrget_mac(ats_ptr_type, arg0) = tmp28 ; #line 71 "types.dats" tmp25 = tmp28 ; break ; /* branch: __ats_lab_10 */ #line 73 "types.dats" __ats_lab_10_0: #line 73 "types.dats" __ats_lab_10_1: #line 73 "types.dats" tmp25 = tmp26 ; break ; } while (0) ; return (tmp25) ; } /* end of [_2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__ty_lnkrmv] */ /* // /cs-pub/www-dir/faculty/hwxi/academic/courses/CS525/Spring09/code/Tiger/types.dats: 1922(line=76, offs=24) -- 1991(line=77, offs=51) */ ATSglobaldec() ats_ptr_type _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__ty_normalize (ats_ptr_type arg0) { /* local vardec */ ATSlocal (ats_ptr_type, tmp29) ; ATSlocal (ats_ptr_type, tmp30) ; __ats_lab__2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__ty_normalize: #line 76 "types.dats" do { /* branch: __ats_lab_11 */ #line 77 "types.dats" __ats_lab_11_0: #line 77 "types.dats" if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_12_0 ; } #line 77 "types.dats" __ats_lab_11_1: #line 77 "types.dats" tmp30 = ats_caselptr_mac(anairiats_sum_3, arg0, atslab_1) ; #line 77 "types.dats" tmp29 = _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__ty_lnkrmv (tmp30) ; break ; /* branch: __ats_lab_12 */ #line 77 "types.dats" __ats_lab_12_0: #line 77 "types.dats" __ats_lab_12_1: #line 77 "types.dats" tmp29 = arg0 ; break ; } while (0) ; return (tmp29) ; } /* end of [_2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__ty_normalize] */ /* // /cs-pub/www-dir/faculty/hwxi/academic/courses/CS525/Spring09/code/Tiger/types.dats: 2039(line=80, offs=22) -- 2669(line=94, offs=23) */ ATSglobaldec() ats_ptr_type _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__join_ty_ty (ats_ptr_type arg0, ats_ptr_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp31) ; ATSlocal (ats_ptr_type, tmp32) ; ATSlocal (ats_ptr_type, tmp33) ; ATSlocal (ats_ptr_type, tmp34) ; ATSlocal (ats_ptr_type, tmp35) ; ATSlocal (ats_ptr_type, tmp36) ; ATSlocal (ats_ptr_type, tmp37) ; ATSlocal (ats_bool_type, tmp38) ; ATSlocal (ats_int64_type, tmp39) ; ATSlocal (ats_int64_type, tmp40) ; ATSlocal (ats_bool_type, tmp41) ; ATSlocal (ats_int64_type, tmp42) ; ATSlocal (ats_int64_type, tmp43) ; ATSlocal (ats_bool_type, tmp44) ; __ats_lab__2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__join_ty_ty: #line 80 "types.dats" do { /* branch: __ats_lab_13 */ #line 81 "types.dats" __ats_lab_13_0: #line 81 "types.dats" if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_14_0 ; } #line 81 "types.dats" __ats_lab_13_1: #line 81 "types.dats" __ats_lab_13_2: #line 81 "types.dats" tmp32 = ats_caselptr_mac(anairiats_sum_3, arg0, atslab_1) ; #line 82 "types.dats" tmp33 = _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__ty_lnkrmv (tmp32) ; #line 82 "types.dats" arg0 = tmp33 ; #line 82 "types.dats" arg1 = arg1 ; #line 82 "types.dats" goto __ats_lab__2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__join_ty_ty ; // tail call break ; /* branch: __ats_lab_14 */ #line 84 "types.dats" __ats_lab_14_0: #line 84 "types.dats" __ats_lab_14_1: #line 84 "types.dats" if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_15_0 ; } #line 84 "types.dats" __ats_lab_14_2: #line 84 "types.dats" tmp34 = ats_caselptr_mac(anairiats_sum_3, arg1, atslab_1) ; #line 85 "types.dats" tmp35 = _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__ty_lnkrmv (tmp34) ; #line 85 "types.dats" arg0 = arg0 ; #line 85 "types.dats" arg1 = tmp35 ; #line 85 "types.dats" goto __ats_lab__2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__join_ty_ty ; // tail call break ; /* branch: __ats_lab_15 */ #line 87 "types.dats" __ats_lab_15_0: #line 87 "types.dats" if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_16_0 ; } #line 87 "types.dats" __ats_lab_15_1: #line 87 "types.dats" if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_22_1 ; } #line 87 "types.dats" __ats_lab_15_2: #line 87 "types.dats" tmp36 = ats_caselptr_mac(anairiats_sum_2, arg0, atslab_0) ; #line 87 "types.dats" tmp37 = ats_caselptr_mac(anairiats_sum_2, arg1, atslab_0) ; #line 87 "types.dats" tmp38 = _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2symbol_2esats__eq_symbol_symbol (tmp36, tmp37) ; #line 87 "types.dats" if (!tmp38) { goto __ats_lab_22_2 ; } #line 87 "types.dats" tmp31 = arg0 ; break ; /* branch: __ats_lab_16 */ #line 88 "types.dats" __ats_lab_16_0: #line 88 "types.dats" if (((ats_sum_ptr_type)arg0)->tag != 6) { goto __ats_lab_17_0 ; } #line 88 "types.dats" __ats_lab_16_1: #line 88 "types.dats" if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_22_1 ; } #line 88 "types.dats" __ats_lab_16_2: #line 88 "types.dats" tmp31 = arg0 ; break ; /* branch: __ats_lab_17 */ #line 89 "types.dats" __ats_lab_17_0: #line 89 "types.dats" if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_18_0 ; } #line 89 "types.dats" __ats_lab_17_1: #line 89 "types.dats" if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_18_1 ; } #line 89 "types.dats" __ats_lab_17_2: #line 89 "types.dats" tmp39 = ats_caselptr_mac(anairiats_sum_1, arg0, atslab_0) ; #line 89 "types.dats" tmp40 = ats_caselptr_mac(anairiats_sum_1, arg1, atslab_0) ; #line 89 "types.dats" tmp41 = _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2stamp_2esats__eq_stamp_stamp (tmp39, tmp40) ; #line 89 "types.dats" if (!tmp41) { goto __ats_lab_22_2 ; } #line 89 "types.dats" tmp31 = arg0 ; break ; /* branch: __ats_lab_18 */ #line 90 "types.dats" __ats_lab_18_0: #line 90 "types.dats" if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_19_0 ; } #line 90 "types.dats" __ats_lab_18_1: #line 90 "types.dats" if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_22_1 ; } #line 90 "types.dats" __ats_lab_18_2: #line 90 "types.dats" tmp31 = arg0 ; break ; /* branch: __ats_lab_19 */ #line 91 "types.dats" __ats_lab_19_0: #line 91 "types.dats" if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_20_0 ; } #line 91 "types.dats" __ats_lab_19_1: #line 91 "types.dats" if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_20_1 ; } #line 91 "types.dats" __ats_lab_19_2: #line 91 "types.dats" tmp31 = arg1 ; break ; /* branch: __ats_lab_20 */ #line 92 "types.dats" __ats_lab_20_0: #line 92 "types.dats" if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_21_0 ; } #line 92 "types.dats" __ats_lab_20_1: #line 92 "types.dats" if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_22_1 ; } #line 92 "types.dats" __ats_lab_20_2: #line 92 "types.dats" tmp31 = arg0 ; break ; /* branch: __ats_lab_21 */ #line 93 "types.dats" __ats_lab_21_0: #line 93 "types.dats" if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_22_0 ; } #line 93 "types.dats" __ats_lab_21_1: #line 93 "types.dats" if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_22_1 ; } #line 93 "types.dats" __ats_lab_21_2: #line 93 "types.dats" tmp42 = ats_caselptr_mac(anairiats_sum_1, arg0, atslab_0) ; #line 93 "types.dats" tmp43 = ats_caselptr_mac(anairiats_sum_1, arg1, atslab_0) ; #line 93 "types.dats" tmp44 = _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2stamp_2esats__eq_stamp_stamp (tmp42, tmp43) ; #line 93 "types.dats" if (!tmp44) { goto __ats_lab_22_2 ; } #line 93 "types.dats" tmp31 = arg0 ; break ; /* branch: __ats_lab_22 */ #line 94 "types.dats" __ats_lab_22_0: #line 94 "types.dats" __ats_lab_22_1: #line 94 "types.dats" __ats_lab_22_2: #line 94 "types.dats" tmp31 = (ats_sum_ptr_type)(&_2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__TYtop) ; break ; } while (0) ; return (tmp31) ; } /* end of [_2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__join_ty_ty] */ /* // /cs-pub/www-dir/faculty/hwxi/academic/courses/CS525/Spring09/code/Tiger/types.dats: 2721(line=97, offs=28) -- 2993(line=106, offs=24) */ ATSglobaldec() ats_ptr_type _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__ty_normalize_max (ats_ptr_type arg0, ats_int_type arg1) { /* local vardec */ ATSlocal (ats_ptr_type, tmp45) ; ATSlocal (ats_bool_type, tmp46) ; ATSlocal (ats_ptr_type, tmp47) ; ATSlocal (ats_ptr_type, tmp48) ; ATSlocal (ats_ptr_type, tmp49) ; ATSlocal (ats_int_type, tmp50) ; __ats_lab__2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__ty_normalize_max: #line 97 "types.dats" do { /* branch: __ats_lab_23 */ #line 98 "types.dats" __ats_lab_23_0: #line 98 "types.dats" __ats_lab_23_1: #line 98 "types.dats" tmp46 = atspre_gt_int_int (arg1, 0) ; #line 98 "types.dats" if (!tmp46) { goto __ats_lab_26_1 ; } #line 98 "types.dats" do { /* branch: __ats_lab_24 */ #line 99 "types.dats" __ats_lab_24_0: #line 99 "types.dats" if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_25_0 ; } #line 99 "types.dats" __ats_lab_24_1: #line 99 "types.dats" tmp47 = ats_caselptr_mac(anairiats_sum_3, arg0, atslab_1) ; #line 100 "types.dats" tmp49 = ats_ptrget_mac(ats_ptr_type, tmp47) ; #line 100 "types.dats" tmp50 = atspre_sub_int_int (arg1, 1) ; #line 100 "types.dats" tmp48 = _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__ty_normalize_max (tmp49, tmp50) ; #line 102 "types.dats" ats_ptrget_mac(ats_ptr_type, tmp47) = tmp48 ; #line 102 "types.dats" tmp45 = tmp48 ; break ; /* branch: __ats_lab_25 */ #line 104 "types.dats" __ats_lab_25_0: #line 104 "types.dats" __ats_lab_25_1: #line 104 "types.dats" tmp45 = arg0 ; break ; } while (0) ; break ; /* branch: __ats_lab_26 */ #line 106 "types.dats" __ats_lab_26_0: #line 106 "types.dats" __ats_lab_26_1: #line 106 "types.dats" tmp45 = arg0 ; break ; } while (0) ; return (tmp45) ; } /* end of [_2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__ty_normalize_max] */ /* static load function */ extern ats_void_type _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2stamp_2esats__staload (void) ; extern ats_void_type _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2symbol_2esats__staload (void) ; extern ats_void_type _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__staload (void) ; ats_void_type _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2edats__staload () { static int _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2edats__staload_flag = 0 ; if (_2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2edats__staload_flag) return ; _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2edats__staload_flag = 1 ; _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2stamp_2esats__staload () ; _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2symbol_2esats__staload () ; _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2esats__staload () ; return ; } /* staload function */ /* dynamic load function */ // dynload flag declaration extern ats_int_type _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2edats__dynload_flag ; ats_void_type _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2edats__dynload () { _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2edats__dynload_flag = 1 ; _2cs_2dpub_2www_2ddir_2faculty_2hwxi_2academic_2courses_2CS525_2Spring09_2code_2Tiger_2types_2edats__staload () ; #ifdef _ATS_PROOFCHECK #endif /* _ATS_PROOFCHECK */ /* marking static variables for GC */ /* marking external values for GC */ /* code for dynamic loading */ return ; } /* end of [dynload function] */ /* external codes at mid */ /* external codes at bot */ /* ****** ****** */ /* end of [types_dats.c] */