HBAL Typechecker
Examples:
test_arith.hbal
test_call.hbal
test_jumps.hbal
test_list_paper.hbal
test_move.hbal
test_move_macro.hbal
test_parser.hbal
test_trees.hbal
(* test if the move macro itself typechecks *) sign main: { sp:[[code]+]+ , r2:[int+]+, r3:[int-]+, r4: [[L(int-)]- * [L(int-)]+ * int- * [L(int-)]+]+, r5: [int+ * int+]+, r6: [[L(int-)]- * [L(int-)]+ * int- * int- * [L(int-)]+]+ } <> main: move r3[0] <- r2[0], int+; move r4[2] <- r2[0], int+; move r6[2] <- r5[0], int+ * int+; ret main; <>