Skip to content

Instantly share code, notes, and snippets.

@simmsb
Created September 26, 2020 10:39
Show Gist options
  • Save simmsb/dbe577e65db16706b7c8e5ae9f0c275f to your computer and use it in GitHub Desktop.
Save simmsb/dbe577e65db16706b7c8e5ae9f0c275f to your computer and use it in GitHub Desktop.
#include "base.h"
#include "builtin.h"
#include <stdlib.h>
#include <string.h>
struct env_34 {
struct obj *v_rv_448;
struct obj *v_k_447;
};
void lambda_34(struct obj *, struct env_obj *) __attribute__((noreturn));
struct env_39 {
struct obj *v_rv_480;
struct obj *v_k_478;
};
void lambda_39(struct obj *, struct env_obj *) __attribute__((noreturn));
struct env_40 {
struct obj *v_k_478;
struct obj *v_rv_479;
};
void lambda_40(struct obj *, struct env_obj *) __attribute__((noreturn));
struct env_23 {
struct obj *v_rv_467;
struct obj *v_k_462;
struct obj *v_get_454;
};
void lambda_23(struct obj *, struct env_obj *) __attribute__((noreturn));
struct env_25 {
struct obj *v_get_454;
struct obj *v_k_462;
struct obj *v_rv_463;
struct obj *v_set_459;
};
void lambda_25(struct obj *, struct env_obj *) __attribute__((noreturn));
struct env_0 {
struct obj *v_k_426;
struct obj *v_ii_415;
struct obj *v_go_405;
};
void lambda_0(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_42 {
struct obj *v_k_408;
struct obj *v_rv_476;
};
void lambda_42(struct obj *, struct env_obj *) __attribute__((noreturn));
struct env_46 {
struct obj *v_makebox_407;
struct obj *v_go_405;
struct obj *v_k_408;
};
void lambda_46(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_44 {
struct obj *v_rv_445;
struct obj *v_makebox_407;
struct obj *v_k_408;
};
void lambda_44(struct obj *, struct env_obj *) __attribute__((noreturn));
struct env_43 {
struct obj *v_rv_471;
struct obj *v_k_408;
};
void lambda_43(struct obj *, struct env_obj *) __attribute__((noreturn));
struct env_32 {
struct obj *v_boxfns_449;
struct obj *v_k_452;
};
void lambda_32(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_41 {
struct obj *v_k_478;
};
void lambda_41(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_5 {
struct obj *v_ii_415;
struct obj *v_go_405;
struct obj *v_k_418;
};
void lambda_5(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_12 {
struct obj *v_k_439;
struct obj *v_initial_432;
};
void lambda_12(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_14 {
struct obj *v_initial_432;
struct obj *v_v_441;
struct obj *v_k_444;
};
void lambda_14(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_24 {
struct obj *v_get_454;
struct obj *v_rv_464;
struct obj *v_set_459;
struct obj *v_k_462;
};
void lambda_24(struct obj *, struct env_obj *) __attribute__((noreturn));
struct env_45 {
struct obj *v_makebox_407;
struct obj *v_k_408;
struct obj *v_rv_429;
};
void lambda_45(struct obj *, struct env_obj *) __attribute__((noreturn));
struct env_3 {
struct obj *v_k_421;
struct obj *v_go_405;
struct obj *v_ii_415;
};
void lambda_3(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_17 {
struct obj *v_k_435;
struct obj *v_initial_432;
};
void lambda_17(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_22 {
struct obj *v_get_454;
struct obj *v_k_469;
};
void lambda_22(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_47 {
struct obj *v_k_406;
struct obj *v_go_405;
};
void lambda_47(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_13 {
struct obj *v_initial_432;
struct obj *v_k_437;
};
void lambda_13(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_1 {
struct obj *v_rv_424;
struct obj *v_ii_415;
struct obj *v_k_423;
struct obj *v_go_405;
};
void lambda_1(struct obj *, struct env_obj *) __attribute__((noreturn));
struct env_2 {
struct obj *v_ii_415;
struct obj *v_go_405;
struct obj *v_k_423;
};
void lambda_2(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_33 {
struct obj *v_boxfns_449;
struct obj *v_k_450;
};
void lambda_33(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_48 {
struct obj *v_rv_481;
struct obj *v_k_404;
};
void lambda_48(struct obj *, struct env_obj *) __attribute__((noreturn));
struct env_19 {
struct obj *v_k_431;
struct obj *v_makebox_407;
};
void lambda_19(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_10 {
struct obj *v_k_410;
struct obj *v_i_409;
struct obj *v_go_405;
};
void lambda_10(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_18 {
struct obj *v_k_433;
struct obj *v_initial_432;
};
void lambda_18(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_35 {
struct obj *v_makebox_407;
struct obj *v_k_447;
};
void lambda_35(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_8 {
struct obj *v_rv_413;
struct obj *v_k_412;
struct obj *v_go_405;
};
void lambda_8(struct obj *, struct env_obj *) __attribute__((noreturn));
struct env_29 {
struct obj *v_k_457;
struct obj *v_get_454;
struct obj *v_boxfns_449;
};
void lambda_29(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_38 {
struct obj *v_k_473;
};
void lambda_38(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_16 {
struct obj *v_rv_440;
struct obj *v_initial_432;
struct obj *v_k_435;
};
void lambda_16(struct obj *, struct env_obj *) __attribute__((noreturn));
struct env_49 {
struct obj *v_k_404;
};
void lambda_49(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_4 {
struct obj *v_k_419;
struct obj *v_go_405;
struct obj *v_ii_415;
};
void lambda_4(struct obj *, struct env_obj *) __attribute__((noreturn));
struct env_20 {
struct obj *v_set_459;
struct obj *v_k_466;
};
void lambda_20(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_30 {
struct obj *v_boxfns_449;
struct obj *v_k_455;
struct obj *v_get_454;
};
void lambda_30(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_37 {
struct obj *v_k_473;
struct obj *v_rv_474;
};
void lambda_37(struct obj *, struct env_obj *) __attribute__((noreturn));
struct env_36 {
struct obj *v_rv_475;
struct obj *v_k_473;
};
void lambda_36(struct obj *, struct env_obj *) __attribute__((noreturn));
struct env_15 {
struct obj *v_v_441;
struct obj *v_initial_432;
struct obj *v_k_442;
};
void lambda_15(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_28 {
struct obj *v_k_457;
struct obj *v_get_454;
struct obj *v_rv_458;
};
void lambda_28(struct obj *, struct env_obj *) __attribute__((noreturn));
struct env_6 {
struct obj *v_k_416;
struct obj *v_ii_415;
struct obj *v_go_405;
};
void lambda_6(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_7 {
struct obj *v_rv_414;
struct obj *v_k_412;
struct obj *v_go_405;
};
void lambda_7(struct obj *, struct env_obj *) __attribute__((noreturn));
struct env_9 {
struct obj *v_i_409;
struct obj *v_go_405;
struct obj *v_k_412;
};
void lambda_9(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_11 {
struct obj *v_go_405;
struct obj *v_k_428;
};
void lambda_11(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_31 {
struct obj *v_boxfns_449;
struct obj *v_rv_453;
struct obj *v_k_452;
};
void lambda_31(struct obj *, struct env_obj *) __attribute__((noreturn));
struct env_21 {
struct obj *v_rv_470;
struct obj *v_k_469;
};
void lambda_21(struct obj *, struct env_obj *) __attribute__((noreturn));
struct env_26 {
struct obj *v_set_459;
struct obj *v_k_462;
struct obj *v_get_454;
};
void lambda_26(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
struct env_27 {
struct obj *v_get_454;
struct obj *v_k_460;
struct obj *v_set_459;
};
void lambda_27(struct obj *, struct obj *, struct env_obj *)
__attribute__((noreturn));
void lambda_34(struct obj *var_0, struct env_obj *env_in) {
struct env_34 *env = (struct env_34 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_1, var_0);
((env)->v_rv_448) = (var_1);
OBJECT_ENV_OBJ_NEW(var_2, struct env_33);
OBJECT_CLOSURE_TWO_NEW(var_3, lambda_33, var_2);
call_closure_two(var_3, ((struct cell_obj *)((env)->v_rv_448))->val,
((struct cell_obj *)((env)->v_k_447))->val);
__builtin_unreachable();
}
void lambda_39(struct obj *var_4, struct env_obj *env_in) {
struct env_39 *env = (struct env_39 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_5, var_4);
((env)->v_rv_480) = (var_5);
OBJECT_CLOSURE_TWO_NEW(var_6, println_k, NULL);
call_closure_two(var_6, ((struct cell_obj *)((env)->v_rv_480))->val,
((struct cell_obj *)((env)->v_k_478))->val);
__builtin_unreachable();
}
void lambda_40(struct obj *var_7, struct env_obj *env_in) {
struct env_40 *env = (struct env_40 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_8, var_7);
((env)->v_rv_479) = (var_8);
OBJECT_STRING_OBJ_NEW(var_9, "b");
OBJECT_ENV_OBJ_NEW(var_10, struct env_39);
(((struct env_39 *)(&((var_10)->env)))->v_k_478) = ((env)->v_k_478);
OBJECT_CLOSURE_ONE_NEW(var_11, lambda_39, var_10);
call_closure_two(((struct cell_obj *)((env)->v_rv_479))->val, var_9, var_11);
__builtin_unreachable();
}
void lambda_23(struct obj *var_12, struct env_obj *env_in) {
struct env_23 *env = (struct env_23 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_13, var_12);
((env)->v_rv_467) = (var_13);
OBJECT_ENV_OBJ_NEW(var_14, struct env_22);
(((struct env_22 *)(&((var_14)->env)))->v_get_454) = ((env)->v_get_454);
OBJECT_CLOSURE_TWO_NEW(var_15, lambda_22, var_14);
call_closure_two(var_15, ((struct cell_obj *)((env)->v_rv_467))->val,
((struct cell_obj *)((env)->v_k_462))->val);
__builtin_unreachable();
}
void lambda_25(struct obj *var_16, struct env_obj *env_in) {
struct env_25 *env = (struct env_25 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_17, var_16);
((env)->v_rv_463) = (var_17);
OBJECT_CLOSURE_TWO_NEW(var_18, println_k, NULL);
OBJECT_ENV_OBJ_NEW(var_19, struct env_24);
(((struct env_24 *)(&((var_19)->env)))->v_get_454) = ((env)->v_get_454);
(((struct env_24 *)(&((var_19)->env)))->v_set_459) = ((env)->v_set_459);
(((struct env_24 *)(&((var_19)->env)))->v_k_462) = ((env)->v_k_462);
OBJECT_CLOSURE_ONE_NEW(var_20, lambda_24, var_19);
call_closure_two(var_18, ((struct cell_obj *)((env)->v_rv_463))->val, var_20);
__builtin_unreachable();
}
void lambda_0(struct obj *var_21, struct obj *var_22, struct env_obj *env_in) {
struct env_0 *env = (struct env_0 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_23, var_22);
((env)->v_k_426) = (var_23);
call_closure_two(((struct cell_obj *)((env)->v_go_405))->val,
((struct cell_obj *)((env)->v_ii_415))->val,
((struct cell_obj *)((env)->v_k_426))->val);
__builtin_unreachable();
}
void lambda_42(struct obj *var_24, struct env_obj *env_in) {
struct env_42 *env = (struct env_42 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_25, var_24);
((env)->v_rv_476) = (var_25);
OBJECT_ENV_OBJ_NEW(var_26, struct env_41);
OBJECT_CLOSURE_TWO_NEW(var_27, lambda_41, var_26);
call_closure_two(var_27, ((struct cell_obj *)((env)->v_rv_476))->val,
((struct cell_obj *)((env)->v_k_408))->val);
__builtin_unreachable();
}
void lambda_46(struct obj *var_28, struct obj *var_29, struct env_obj *env_in) {
struct env_46 *env = (struct env_46 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_30, var_28);
((env)->v_makebox_407) = (var_30);
OBJECT_CELL_OBJ_NEW(var_31, var_29);
((env)->v_k_408) = (var_31);
OBJECT_ENV_OBJ_NEW(var_32, struct env_10);
(((struct env_10 *)(&((var_32)->env)))->v_go_405) = ((env)->v_go_405);
OBJECT_CLOSURE_TWO_NEW(var_33, lambda_10, var_32);
(((struct cell_obj *)((env)->v_go_405))->val) = (var_33);
OBJECT_ENV_OBJ_NEW(var_34, struct env_11);
(((struct env_11 *)(&((var_34)->env)))->v_go_405) = ((env)->v_go_405);
OBJECT_CLOSURE_TWO_NEW(var_35, lambda_11, var_34);
OBJECT_ENV_OBJ_NEW(var_36, struct env_45);
(((struct env_45 *)(&((var_36)->env)))->v_makebox_407) =
((env)->v_makebox_407);
(((struct env_45 *)(&((var_36)->env)))->v_k_408) = ((env)->v_k_408);
OBJECT_CLOSURE_ONE_NEW(var_37, lambda_45, var_36);
call_closure_two(var_35, NULL, var_37);
__builtin_unreachable();
}
void lambda_44(struct obj *var_38, struct env_obj *env_in) {
struct env_44 *env = (struct env_44 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_39, var_38);
((env)->v_rv_445) = (var_39);
OBJECT_ENV_OBJ_NEW(var_40, struct env_35);
(((struct env_35 *)(&((var_40)->env)))->v_makebox_407) =
((env)->v_makebox_407);
OBJECT_CLOSURE_TWO_NEW(var_41, lambda_35, var_40);
OBJECT_ENV_OBJ_NEW(var_42, struct env_43);
(((struct env_43 *)(&((var_42)->env)))->v_k_408) = ((env)->v_k_408);
OBJECT_CLOSURE_ONE_NEW(var_43, lambda_43, var_42);
call_closure_two(var_41, ((struct cell_obj *)((env)->v_rv_445))->val, var_43);
__builtin_unreachable();
}
void lambda_43(struct obj *var_44, struct env_obj *env_in) {
struct env_43 *env = (struct env_43 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_45, var_44);
((env)->v_rv_471) = (var_45);
OBJECT_ENV_OBJ_NEW(var_46, struct env_38);
OBJECT_CLOSURE_TWO_NEW(var_47, lambda_38, var_46);
OBJECT_ENV_OBJ_NEW(var_48, struct env_42);
(((struct env_42 *)(&((var_48)->env)))->v_k_408) = ((env)->v_k_408);
OBJECT_CLOSURE_ONE_NEW(var_49, lambda_42, var_48);
call_closure_two(var_47, ((struct cell_obj *)((env)->v_rv_471))->val, var_49);
__builtin_unreachable();
}
void lambda_32(struct obj *var_50, struct obj *var_51, struct env_obj *env_in) {
struct env_32 *env = (struct env_32 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_52, var_51);
((env)->v_k_452) = (var_52);
OBJECT_CLOSURE_TWO_NEW(var_53, car_k, NULL);
OBJECT_ENV_OBJ_NEW(var_54, struct env_31);
(((struct env_31 *)(&((var_54)->env)))->v_boxfns_449) = ((env)->v_boxfns_449);
(((struct env_31 *)(&((var_54)->env)))->v_k_452) = ((env)->v_k_452);
OBJECT_CLOSURE_ONE_NEW(var_55, lambda_31, var_54);
call_closure_two(var_53, ((struct cell_obj *)((env)->v_boxfns_449))->val,
var_55);
__builtin_unreachable();
}
void lambda_41(struct obj *var_56, struct obj *var_57, struct env_obj *env_in) {
struct env_41 *env = (struct env_41 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_58, var_57);
((env)->v_k_478) = (var_58);
OBJECT_CLOSURE_TWO_NEW(var_59, string_concat_k, NULL);
OBJECT_STRING_OBJ_NEW(var_60, "a");
OBJECT_ENV_OBJ_NEW(var_61, struct env_40);
(((struct env_40 *)(&((var_61)->env)))->v_k_478) = ((env)->v_k_478);
OBJECT_CLOSURE_ONE_NEW(var_62, lambda_40, var_61);
call_closure_two(var_59, var_60, var_62);
__builtin_unreachable();
}
void lambda_5(struct obj *var_63, struct obj *var_64, struct env_obj *env_in) {
struct env_5 *env = (struct env_5 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_65, var_64);
((env)->v_k_418) = (var_65);
OBJECT_ENV_OBJ_NEW(var_66, struct env_4);
(((struct env_4 *)(&((var_66)->env)))->v_go_405) = ((env)->v_go_405);
(((struct env_4 *)(&((var_66)->env)))->v_ii_415) = ((env)->v_ii_415);
OBJECT_CLOSURE_ONE_NEW(var_67, lambda_4, var_66);
call_closure_one(var_67, ((struct cell_obj *)((env)->v_k_418))->val);
__builtin_unreachable();
}
void lambda_12(struct obj *var_68, struct obj *var_69, struct env_obj *env_in) {
struct env_12 *env = (struct env_12 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_70, var_69);
((env)->v_k_439) = (var_70);
call_closure_one(((struct cell_obj *)((env)->v_k_439))->val,
((struct cell_obj *)((env)->v_initial_432))->val);
__builtin_unreachable();
}
void lambda_14(struct obj *var_71, struct obj *var_72, struct env_obj *env_in) {
struct env_14 *env = (struct env_14 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_73, var_72);
((env)->v_k_444) = (var_73);
(((struct cell_obj *)((env)->v_initial_432))->val) =
(((struct cell_obj *)((env)->v_v_441))->val);
call_closure_one(((struct cell_obj *)((env)->v_k_444))->val, NULL);
__builtin_unreachable();
}
void lambda_24(struct obj *var_74, struct env_obj *env_in) {
struct env_24 *env = (struct env_24 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_75, var_74);
((env)->v_rv_464) = (var_75);
OBJECT_ENV_OBJ_NEW(var_76, struct env_20);
(((struct env_20 *)(&((var_76)->env)))->v_set_459) = ((env)->v_set_459);
OBJECT_CLOSURE_TWO_NEW(var_77, lambda_20, var_76);
OBJECT_ENV_OBJ_NEW(var_78, struct env_23);
(((struct env_23 *)(&((var_78)->env)))->v_k_462) = ((env)->v_k_462);
(((struct env_23 *)(&((var_78)->env)))->v_get_454) = ((env)->v_get_454);
OBJECT_CLOSURE_ONE_NEW(var_79, lambda_23, var_78);
call_closure_two(var_77, ((struct cell_obj *)((env)->v_rv_464))->val, var_79);
__builtin_unreachable();
}
void lambda_45(struct obj *var_80, struct env_obj *env_in) {
struct env_45 *env = (struct env_45 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_81, var_80);
((env)->v_rv_429) = (var_81);
OBJECT_ENV_OBJ_NEW(var_82, struct env_19);
(((struct env_19 *)(&((var_82)->env)))->v_makebox_407) =
((env)->v_makebox_407);
OBJECT_CLOSURE_TWO_NEW(var_83, lambda_19, var_82);
OBJECT_ENV_OBJ_NEW(var_84, struct env_44);
(((struct env_44 *)(&((var_84)->env)))->v_makebox_407) =
((env)->v_makebox_407);
(((struct env_44 *)(&((var_84)->env)))->v_k_408) = ((env)->v_k_408);
OBJECT_CLOSURE_ONE_NEW(var_85, lambda_44, var_84);
call_closure_two(var_83, ((struct cell_obj *)((env)->v_rv_429))->val, var_85);
__builtin_unreachable();
}
void lambda_3(struct obj *var_86, struct obj *var_87, struct env_obj *env_in) {
struct env_3 *env = (struct env_3 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_88, var_87);
((env)->v_k_421) = (var_88);
OBJECT_ENV_OBJ_NEW(var_89, struct env_2);
(((struct env_2 *)(&((var_89)->env)))->v_ii_415) = ((env)->v_ii_415);
(((struct env_2 *)(&((var_89)->env)))->v_go_405) = ((env)->v_go_405);
OBJECT_CLOSURE_TWO_NEW(var_90, lambda_2, var_89);
call_closure_two(var_90, NULL, ((struct cell_obj *)((env)->v_k_421))->val);
__builtin_unreachable();
}
void lambda_17(struct obj *var_91, struct obj *var_92, struct env_obj *env_in) {
struct env_17 *env = (struct env_17 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_93, var_92);
((env)->v_k_435) = (var_93);
OBJECT_CLOSURE_TWO_NEW(var_94, cons_k, NULL);
OBJECT_ENV_OBJ_NEW(var_95, struct env_13);
(((struct env_13 *)(&((var_95)->env)))->v_initial_432) =
((env)->v_initial_432);
OBJECT_CLOSURE_TWO_NEW(var_96, lambda_13, var_95);
OBJECT_ENV_OBJ_NEW(var_97, struct env_16);
(((struct env_16 *)(&((var_97)->env)))->v_initial_432) =
((env)->v_initial_432);
(((struct env_16 *)(&((var_97)->env)))->v_k_435) = ((env)->v_k_435);
OBJECT_CLOSURE_ONE_NEW(var_98, lambda_16, var_97);
call_closure_two(var_94, var_96, var_98);
__builtin_unreachable();
}
void lambda_22(struct obj *var_99, struct obj *var_100,
struct env_obj *env_in) {
struct env_22 *env = (struct env_22 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_101, var_100);
((env)->v_k_469) = (var_101);
OBJECT_ENV_OBJ_NEW(var_102, struct env_21);
(((struct env_21 *)(&((var_102)->env)))->v_k_469) = ((env)->v_k_469);
OBJECT_CLOSURE_ONE_NEW(var_103, lambda_21, var_102);
call_closure_two(((struct cell_obj *)((env)->v_get_454))->val, NULL, var_103);
__builtin_unreachable();
}
void lambda_47(struct obj *var_104, struct obj *var_105,
struct env_obj *env_in) {
struct env_47 *env = (struct env_47 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_106, var_104);
((env)->v_go_405) = (var_106);
OBJECT_CELL_OBJ_NEW(var_107, var_105);
((env)->v_k_406) = (var_107);
OBJECT_ENV_OBJ_NEW(var_108, struct env_46);
(((struct env_46 *)(&((var_108)->env)))->v_go_405) = ((env)->v_go_405);
OBJECT_CLOSURE_TWO_NEW(var_109, lambda_46, var_108);
call_closure_one(((struct cell_obj *)((env)->v_k_406))->val, var_109);
__builtin_unreachable();
}
void lambda_13(struct obj *var_110, struct obj *var_111,
struct env_obj *env_in) {
struct env_13 *env = (struct env_13 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_112, var_111);
((env)->v_k_437) = (var_112);
OBJECT_ENV_OBJ_NEW(var_113, struct env_12);
(((struct env_12 *)(&((var_113)->env)))->v_initial_432) =
((env)->v_initial_432);
OBJECT_CLOSURE_TWO_NEW(var_114, lambda_12, var_113);
call_closure_two(var_114, NULL, ((struct cell_obj *)((env)->v_k_437))->val);
__builtin_unreachable();
}
void lambda_1(struct obj *var_115, struct env_obj *env_in) {
struct env_1 *env = (struct env_1 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_116, var_115);
((env)->v_rv_424) = (var_116);
OBJECT_ENV_OBJ_NEW(var_117, struct env_0);
(((struct env_0 *)(&((var_117)->env)))->v_ii_415) = ((env)->v_ii_415);
(((struct env_0 *)(&((var_117)->env)))->v_go_405) = ((env)->v_go_405);
OBJECT_CLOSURE_TWO_NEW(var_118, lambda_0, var_117);
call_closure_two(var_118, ((struct cell_obj *)((env)->v_rv_424))->val,
((struct cell_obj *)((env)->v_k_423))->val);
__builtin_unreachable();
}
void lambda_2(struct obj *var_119, struct obj *var_120,
struct env_obj *env_in) {
struct env_2 *env = (struct env_2 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_121, var_120);
((env)->v_k_423) = (var_121);
OBJECT_CLOSURE_TWO_NEW(var_122, println_k, NULL);
OBJECT_ENV_OBJ_NEW(var_123, struct env_1);
(((struct env_1 *)(&((var_123)->env)))->v_ii_415) = ((env)->v_ii_415);
(((struct env_1 *)(&((var_123)->env)))->v_k_423) = ((env)->v_k_423);
(((struct env_1 *)(&((var_123)->env)))->v_go_405) = ((env)->v_go_405);
OBJECT_CLOSURE_ONE_NEW(var_124, lambda_1, var_123);
call_closure_two(var_122, ((struct cell_obj *)((env)->v_ii_415))->val,
var_124);
__builtin_unreachable();
}
void lambda_33(struct obj *var_125, struct obj *var_126,
struct env_obj *env_in) {
struct env_33 *env = (struct env_33 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_127, var_125);
((env)->v_boxfns_449) = (var_127);
OBJECT_CELL_OBJ_NEW(var_128, var_126);
((env)->v_k_450) = (var_128);
OBJECT_ENV_OBJ_NEW(var_129, struct env_32);
(((struct env_32 *)(&((var_129)->env)))->v_boxfns_449) =
((env)->v_boxfns_449);
OBJECT_CLOSURE_TWO_NEW(var_130, lambda_32, var_129);
call_closure_two(var_130, NULL, ((struct cell_obj *)((env)->v_k_450))->val);
__builtin_unreachable();
}
void lambda_48(struct obj *var_131, struct env_obj *env_in) {
struct env_48 *env = (struct env_48 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_132, var_131);
((env)->v_rv_481) = (var_132);
call_closure_two(((struct cell_obj *)((env)->v_rv_481))->val, NULL,
((struct cell_obj *)((env)->v_k_404))->val);
__builtin_unreachable();
}
void lambda_19(struct obj *var_133, struct obj *var_134,
struct env_obj *env_in) {
struct env_19 *env = (struct env_19 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_135, var_134);
((env)->v_k_431) = (var_135);
OBJECT_ENV_OBJ_NEW(var_136, struct env_18);
OBJECT_CLOSURE_TWO_NEW(var_137, lambda_18, var_136);
(((struct cell_obj *)((env)->v_makebox_407))->val) = (var_137);
call_closure_one(((struct cell_obj *)((env)->v_k_431))->val, NULL);
__builtin_unreachable();
}
void lambda_10(struct obj *var_138, struct obj *var_139,
struct env_obj *env_in) {
struct env_10 *env = (struct env_10 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_140, var_138);
((env)->v_i_409) = (var_140);
OBJECT_CELL_OBJ_NEW(var_141, var_139);
((env)->v_k_410) = (var_141);
OBJECT_ENV_OBJ_NEW(var_142, struct env_9);
(((struct env_9 *)(&((var_142)->env)))->v_i_409) = ((env)->v_i_409);
(((struct env_9 *)(&((var_142)->env)))->v_go_405) = ((env)->v_go_405);
OBJECT_CLOSURE_TWO_NEW(var_143, lambda_9, var_142);
call_closure_two(var_143, NULL, ((struct cell_obj *)((env)->v_k_410))->val);
__builtin_unreachable();
}
void lambda_18(struct obj *var_144, struct obj *var_145,
struct env_obj *env_in) {
struct env_18 *env = (struct env_18 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_146, var_144);
((env)->v_initial_432) = (var_146);
OBJECT_CELL_OBJ_NEW(var_147, var_145);
((env)->v_k_433) = (var_147);
OBJECT_ENV_OBJ_NEW(var_148, struct env_17);
(((struct env_17 *)(&((var_148)->env)))->v_initial_432) =
((env)->v_initial_432);
OBJECT_CLOSURE_TWO_NEW(var_149, lambda_17, var_148);
call_closure_two(var_149, NULL, ((struct cell_obj *)((env)->v_k_433))->val);
__builtin_unreachable();
}
void lambda_35(struct obj *var_150, struct obj *var_151,
struct env_obj *env_in) {
struct env_35 *env = (struct env_35 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_152, var_151);
((env)->v_k_447) = (var_152);
OBJECT_INT_OBJ_NEW(var_153, 1);
OBJECT_ENV_OBJ_NEW(var_154, struct env_34);
(((struct env_34 *)(&((var_154)->env)))->v_k_447) = ((env)->v_k_447);
OBJECT_CLOSURE_ONE_NEW(var_155, lambda_34, var_154);
call_closure_two(((struct cell_obj *)((env)->v_makebox_407))->val, var_153,
var_155);
__builtin_unreachable();
}
void lambda_8(struct obj *var_156, struct env_obj *env_in) {
struct env_8 *env = (struct env_8 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_157, var_156);
((env)->v_rv_413) = (var_157);
OBJECT_INT_OBJ_NEW(var_158, 1);
OBJECT_ENV_OBJ_NEW(var_159, struct env_7);
(((struct env_7 *)(&((var_159)->env)))->v_k_412) = ((env)->v_k_412);
(((struct env_7 *)(&((var_159)->env)))->v_go_405) = ((env)->v_go_405);
OBJECT_CLOSURE_ONE_NEW(var_160, lambda_7, var_159);
call_closure_two(((struct cell_obj *)((env)->v_rv_413))->val, var_158,
var_160);
__builtin_unreachable();
}
void lambda_29(struct obj *var_161, struct obj *var_162,
struct env_obj *env_in) {
struct env_29 *env = (struct env_29 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_163, var_162);
((env)->v_k_457) = (var_163);
OBJECT_CLOSURE_TWO_NEW(var_164, cdr_k, NULL);
OBJECT_ENV_OBJ_NEW(var_165, struct env_28);
(((struct env_28 *)(&((var_165)->env)))->v_k_457) = ((env)->v_k_457);
(((struct env_28 *)(&((var_165)->env)))->v_get_454) = ((env)->v_get_454);
OBJECT_CLOSURE_ONE_NEW(var_166, lambda_28, var_165);
call_closure_two(var_164, ((struct cell_obj *)((env)->v_boxfns_449))->val,
var_166);
__builtin_unreachable();
}
void lambda_38(struct obj *var_167, struct obj *var_168,
struct env_obj *env_in) {
struct env_38 *env = (struct env_38 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_169, var_168);
((env)->v_k_473) = (var_169);
OBJECT_CLOSURE_TWO_NEW(var_170, xor_k, NULL);
OBJECT_INT_OBJ_NEW(var_171, 1);
OBJECT_ENV_OBJ_NEW(var_172, struct env_37);
(((struct env_37 *)(&((var_172)->env)))->v_k_473) = ((env)->v_k_473);
OBJECT_CLOSURE_ONE_NEW(var_173, lambda_37, var_172);
call_closure_two(var_170, var_171, var_173);
__builtin_unreachable();
}
void lambda_16(struct obj *var_174, struct env_obj *env_in) {
struct env_16 *env = (struct env_16 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_175, var_174);
((env)->v_rv_440) = (var_175);
OBJECT_ENV_OBJ_NEW(var_176, struct env_15);
(((struct env_15 *)(&((var_176)->env)))->v_initial_432) =
((env)->v_initial_432);
OBJECT_CLOSURE_TWO_NEW(var_177, lambda_15, var_176);
call_closure_two(((struct cell_obj *)((env)->v_rv_440))->val, var_177,
((struct cell_obj *)((env)->v_k_435))->val);
__builtin_unreachable();
}
void lambda_49(struct obj *var_178, struct obj *var_179,
struct env_obj *env_in) {
struct env_49 *env = (struct env_49 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_180, var_179);
((env)->v_k_404) = (var_180);
OBJECT_ENV_OBJ_NEW(var_181, struct env_47);
OBJECT_CLOSURE_TWO_NEW(var_182, lambda_47, var_181);
OBJECT_ENV_OBJ_NEW(var_183, struct env_48);
(((struct env_48 *)(&((var_183)->env)))->v_k_404) = ((env)->v_k_404);
OBJECT_CLOSURE_ONE_NEW(var_184, lambda_48, var_183);
call_closure_two(var_182, NULL, var_184);
__builtin_unreachable();
}
void lambda_4(struct obj *var_185, struct env_obj *env_in) {
struct env_4 *env = (struct env_4 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_186, var_185);
((env)->v_k_419) = (var_186);
if (obj_is_truthy(((struct cell_obj *)((env)->v_ii_415))->val)) {
OBJECT_ENV_OBJ_NEW(var_187, struct env_3);
(((struct env_3 *)(&((var_187)->env)))->v_go_405) = ((env)->v_go_405);
(((struct env_3 *)(&((var_187)->env)))->v_ii_415) = ((env)->v_ii_415);
OBJECT_CLOSURE_TWO_NEW(var_188, lambda_3, var_187);
call_closure_two(var_188, NULL, ((struct cell_obj *)((env)->v_k_419))->val);
} else {
call_closure_one(((struct cell_obj *)((env)->v_k_419))->val, NULL);
}
0;
__builtin_unreachable();
}
void lambda_20(struct obj *var_189, struct obj *var_190,
struct env_obj *env_in) {
struct env_20 *env = (struct env_20 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_191, var_190);
((env)->v_k_466) = (var_191);
OBJECT_INT_OBJ_NEW(var_192, 23);
call_closure_two(((struct cell_obj *)((env)->v_set_459))->val, var_192,
((struct cell_obj *)((env)->v_k_466))->val);
__builtin_unreachable();
}
void lambda_30(struct obj *var_193, struct obj *var_194,
struct env_obj *env_in) {
struct env_30 *env = (struct env_30 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_195, var_193);
((env)->v_get_454) = (var_195);
OBJECT_CELL_OBJ_NEW(var_196, var_194);
((env)->v_k_455) = (var_196);
OBJECT_ENV_OBJ_NEW(var_197, struct env_29);
(((struct env_29 *)(&((var_197)->env)))->v_get_454) = ((env)->v_get_454);
(((struct env_29 *)(&((var_197)->env)))->v_boxfns_449) =
((env)->v_boxfns_449);
OBJECT_CLOSURE_TWO_NEW(var_198, lambda_29, var_197);
call_closure_two(var_198, NULL, ((struct cell_obj *)((env)->v_k_455))->val);
__builtin_unreachable();
}
void lambda_37(struct obj *var_199, struct env_obj *env_in) {
struct env_37 *env = (struct env_37 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_200, var_199);
((env)->v_rv_474) = (var_200);
OBJECT_INT_OBJ_NEW(var_201, 2);
OBJECT_ENV_OBJ_NEW(var_202, struct env_36);
(((struct env_36 *)(&((var_202)->env)))->v_k_473) = ((env)->v_k_473);
OBJECT_CLOSURE_ONE_NEW(var_203, lambda_36, var_202);
call_closure_two(((struct cell_obj *)((env)->v_rv_474))->val, var_201,
var_203);
__builtin_unreachable();
}
void lambda_36(struct obj *var_204, struct env_obj *env_in) {
struct env_36 *env = (struct env_36 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_205, var_204);
((env)->v_rv_475) = (var_205);
OBJECT_CLOSURE_TWO_NEW(var_206, println_k, NULL);
call_closure_two(var_206, ((struct cell_obj *)((env)->v_rv_475))->val,
((struct cell_obj *)((env)->v_k_473))->val);
__builtin_unreachable();
}
void lambda_15(struct obj *var_207, struct obj *var_208,
struct env_obj *env_in) {
struct env_15 *env = (struct env_15 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_209, var_207);
((env)->v_v_441) = (var_209);
OBJECT_CELL_OBJ_NEW(var_210, var_208);
((env)->v_k_442) = (var_210);
OBJECT_ENV_OBJ_NEW(var_211, struct env_14);
(((struct env_14 *)(&((var_211)->env)))->v_initial_432) =
((env)->v_initial_432);
(((struct env_14 *)(&((var_211)->env)))->v_v_441) = ((env)->v_v_441);
OBJECT_CLOSURE_TWO_NEW(var_212, lambda_14, var_211);
call_closure_two(var_212, NULL, ((struct cell_obj *)((env)->v_k_442))->val);
__builtin_unreachable();
}
void lambda_28(struct obj *var_213, struct env_obj *env_in) {
struct env_28 *env = (struct env_28 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_214, var_213);
((env)->v_rv_458) = (var_214);
OBJECT_ENV_OBJ_NEW(var_215, struct env_27);
(((struct env_27 *)(&((var_215)->env)))->v_get_454) = ((env)->v_get_454);
OBJECT_CLOSURE_TWO_NEW(var_216, lambda_27, var_215);
call_closure_two(var_216, ((struct cell_obj *)((env)->v_rv_458))->val,
((struct cell_obj *)((env)->v_k_457))->val);
__builtin_unreachable();
}
void lambda_6(struct obj *var_217, struct obj *var_218,
struct env_obj *env_in) {
struct env_6 *env = (struct env_6 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_219, var_217);
((env)->v_ii_415) = (var_219);
OBJECT_CELL_OBJ_NEW(var_220, var_218);
((env)->v_k_416) = (var_220);
OBJECT_ENV_OBJ_NEW(var_221, struct env_5);
(((struct env_5 *)(&((var_221)->env)))->v_ii_415) = ((env)->v_ii_415);
(((struct env_5 *)(&((var_221)->env)))->v_go_405) = ((env)->v_go_405);
OBJECT_CLOSURE_TWO_NEW(var_222, lambda_5, var_221);
call_closure_two(var_222, NULL, ((struct cell_obj *)((env)->v_k_416))->val);
__builtin_unreachable();
}
void lambda_7(struct obj *var_223, struct env_obj *env_in) {
struct env_7 *env = (struct env_7 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_224, var_223);
((env)->v_rv_414) = (var_224);
OBJECT_ENV_OBJ_NEW(var_225, struct env_6);
(((struct env_6 *)(&((var_225)->env)))->v_go_405) = ((env)->v_go_405);
OBJECT_CLOSURE_TWO_NEW(var_226, lambda_6, var_225);
call_closure_two(var_226, ((struct cell_obj *)((env)->v_rv_414))->val,
((struct cell_obj *)((env)->v_k_412))->val);
__builtin_unreachable();
}
void lambda_9(struct obj *var_227, struct obj *var_228,
struct env_obj *env_in) {
struct env_9 *env = (struct env_9 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_229, var_228);
((env)->v_k_412) = (var_229);
OBJECT_CLOSURE_TWO_NEW(var_230, sub_k, NULL);
OBJECT_ENV_OBJ_NEW(var_231, struct env_8);
(((struct env_8 *)(&((var_231)->env)))->v_k_412) = ((env)->v_k_412);
(((struct env_8 *)(&((var_231)->env)))->v_go_405) = ((env)->v_go_405);
OBJECT_CLOSURE_ONE_NEW(var_232, lambda_8, var_231);
call_closure_two(var_230, ((struct cell_obj *)((env)->v_i_409))->val,
var_232);
__builtin_unreachable();
}
void lambda_11(struct obj *var_233, struct obj *var_234,
struct env_obj *env_in) {
struct env_11 *env = (struct env_11 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_235, var_234);
((env)->v_k_428) = (var_235);
OBJECT_INT_OBJ_NEW(var_236, 10);
call_closure_two(((struct cell_obj *)((env)->v_go_405))->val, var_236,
((struct cell_obj *)((env)->v_k_428))->val);
__builtin_unreachable();
}
void lambda_31(struct obj *var_237, struct env_obj *env_in) {
struct env_31 *env = (struct env_31 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_238, var_237);
((env)->v_rv_453) = (var_238);
OBJECT_ENV_OBJ_NEW(var_239, struct env_30);
(((struct env_30 *)(&((var_239)->env)))->v_boxfns_449) =
((env)->v_boxfns_449);
OBJECT_CLOSURE_TWO_NEW(var_240, lambda_30, var_239);
call_closure_two(var_240, ((struct cell_obj *)((env)->v_rv_453))->val,
((struct cell_obj *)((env)->v_k_452))->val);
__builtin_unreachable();
}
void lambda_21(struct obj *var_241, struct env_obj *env_in) {
struct env_21 *env = (struct env_21 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_242, var_241);
((env)->v_rv_470) = (var_242);
OBJECT_CLOSURE_TWO_NEW(var_243, println_k, NULL);
call_closure_two(var_243, ((struct cell_obj *)((env)->v_rv_470))->val,
((struct cell_obj *)((env)->v_k_469))->val);
__builtin_unreachable();
}
void lambda_26(struct obj *var_244, struct obj *var_245,
struct env_obj *env_in) {
struct env_26 *env = (struct env_26 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_246, var_245);
((env)->v_k_462) = (var_246);
OBJECT_ENV_OBJ_NEW(var_247, struct env_25);
(((struct env_25 *)(&((var_247)->env)))->v_get_454) = ((env)->v_get_454);
(((struct env_25 *)(&((var_247)->env)))->v_k_462) = ((env)->v_k_462);
(((struct env_25 *)(&((var_247)->env)))->v_set_459) = ((env)->v_set_459);
OBJECT_CLOSURE_ONE_NEW(var_248, lambda_25, var_247);
call_closure_two(((struct cell_obj *)((env)->v_get_454))->val, NULL, var_248);
__builtin_unreachable();
}
void lambda_27(struct obj *var_249, struct obj *var_250,
struct env_obj *env_in) {
struct env_27 *env = (struct env_27 *)(&((env_in)->env));
OBJECT_CELL_OBJ_NEW(var_251, var_249);
((env)->v_set_459) = (var_251);
OBJECT_CELL_OBJ_NEW(var_252, var_250);
((env)->v_k_460) = (var_252);
OBJECT_ENV_OBJ_NEW(var_253, struct env_26);
(((struct env_26 *)(&((var_253)->env)))->v_set_459) = ((env)->v_set_459);
(((struct env_26 *)(&((var_253)->env)))->v_get_454) = ((env)->v_get_454);
OBJECT_CLOSURE_TWO_NEW(var_254, lambda_26, var_253);
call_closure_two(var_254, NULL, ((struct cell_obj *)((env)->v_k_460))->val);
__builtin_unreachable();
}
void main_lambda(struct obj *input_obj, struct env_obj *input_env) {
OBJECT_ENV_OBJ_NEW(var_255, struct env_49);
OBJECT_CLOSURE_TWO_NEW(var_256, lambda_49, var_255);
OBJECT_CLOSURE_ONE_NEW(var_257, exit_k, NULL);
call_closure_two(var_256, NULL, var_257);
__builtin_unreachable();
}
int main() {
struct closure_obj initial_closure =
object_closure_one_new(main_lambda, NULL);
struct thunk initial_thunk = {
.closr = &initial_closure,
.one = {NULL},
};
struct thunk *thnk_heap = malloc(sizeof(struct thunk));
memcpy(thnk_heap, &initial_thunk, sizeof(struct thunk));
scheme_start(thnk_heap);
}
(define go (lambda (i)
(let ((ii (- i 1)))
(if ii
(let ()
(println ii)
(go ii))))))
(go 10)
(define make-box (lambda (initial)
(cons (lambda () initial)
(lambda (v) (set! initial v)))))
(let ((box-fns (make-box 1)))
(let ((get (car box-fns)))
(let ((set (cdr box-fns)))
(println (get))
(set 23)
(println (get)))))
(println (^ 1 2))
(println (string-concat "a" "b"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment