int main() { lean_exception ex; lean_name a, n1, n2, n3, n4, n5, n6; char const * s1; char const * s2; char const * s3; lean_list_name l1, l2, l3, l4; unsigned idx; printf("Started name test\n"); check(lean_name_mk_anonymous(&a, &ex)); check(lean_name_is_anonymous(a)); check(lean_name_mk_str(a, "foo", &n1, &ex)); check(lean_name_mk_str(n1, "bla", &n2, &ex)); check(lean_name_to_string(n2, &s1, &ex)); printf("Lean name: %s\n", s1); check(lean_name_is_str(n2)); check(!lean_name_is_anonymous(n2)); check(!lean_name_is_idx(n2)); check(lean_name_mk_idx(n2, 1, &n3, &ex)); check(lean_name_to_string(n3, &s2, &ex)); printf("Lean name: %s\n", s2); check(lean_name_is_idx(n3)); check(lean_name_get_prefix(n3, &n4, &ex)); check(lean_name_eq(n2, n4)); check(lean_name_get_idx(n3, &idx, &ex)); check(idx == 1); check(!lean_name_get_prefix(a, &n5, &ex)); s3 = lean_exception_get_message(ex); printf("Lean exception: %s\n", s3); check(lean_list_name_mk_nil(&l1, &ex)); check(!lean_list_name_is_cons(l1)); check(lean_list_name_mk_cons(n1, l1, &l2, &ex)); check(lean_list_name_is_cons(l2)); check(lean_list_name_mk_cons(n2, l2, &l3, &ex)); check(lean_list_name_head(l3, &n6, &ex)); check(lean_name_eq(n6, n2)); check(lean_list_name_tail(l3, &l4, &ex)); check(lean_list_name_eq(l4, l2)); anonymous_unique(); lean_name_del(a); lean_name_del(n1); lean_name_del(n2); lean_name_del(n3); lean_name_del(n4); lean_name_del(n6); lean_list_name_del(l1); lean_list_name_del(l2); lean_list_name_del(l3); lean_list_name_del(l4); lean_string_del(s1); lean_string_del(s2); lean_string_del(s3); lean_exception_del(ex); return 0; }
void print_univ_and_del(lean_name n) { lean_exception ex; char const * s; check(lean_name_to_string(n, &s, &ex)); printf("universe: %s\n", s); lean_string_del(s); lean_name_del(n); }
void print_decl_name_and_del(lean_decl d) { lean_exception ex; lean_name n; char const * s; check(lean_decl_get_name(d, &n, &ex)); check(lean_name_to_string(n, &s, &ex)); printf("declaration name: %s\n", s); lean_name_del(n); lean_string_del(s); lean_decl_del(d); }
void print_decl_and_del(lean_decl d) { lean_exception ex; lean_name n; lean_expr t; char const * s; check(lean_decl_get_name(d, &n, &ex)); check(lean_name_to_string(n, &s, &ex)); printf("declaration name: %s\n", s); check(lean_decl_get_type(d, &t, &ex)); printf(" type: "); print_expr(t); if (lean_decl_get_kind(d) == LEAN_DECL_DEF || lean_decl_get_kind(d) == LEAN_DECL_THM) { lean_expr v; check(lean_decl_get_value(d, &v, &ex)); printf(" value: "); print_expr(v); lean_expr_del(v); } lean_expr_del(t); lean_name_del(n); lean_string_del(s); lean_decl_del(d); }