int main(int argc, char *argv[]) { struct zz_tree tree; struct zz_node *n1, *n2, *n3, *n4, *n5, *n6; zz_tree_init(&tree, sizeof(struct node_with_location)); n1 = zz_node(&tree, TOK_FOO, zz_null); set_location(n1, 1); n2 = zz_node(&tree, TOK_BAR, zz_int(-314)); set_location(n2, 2); n3 = zz_node(&tree, TOK_BAZ, zz_uint(314)); set_location(n3, 3); n4 = zz_node(&tree, TOK_FOO, zz_double(0.5)); set_location(n4, 5); n5 = zz_node(&tree, TOK_BAR, zz_string("314")); set_location(n5, 8); n6 = zz_node(&tree, TOK_BAZ, zz_pointer(&tree)); set_location(n6, 13); assert(get_location(n1) == 1); assert(get_location(n2) == 2); assert(get_location(n3) == 3); assert(get_location(n4) == 5); assert(get_location(n5) == 8); assert(get_location(n6) == 13); exit(EXIT_SUCCESS); }
int main(int argc, char *argv[]) { struct zz_tree tree; struct zz_node *n1, *n2, *n3, *n4; zz_tree_init(&tree, sizeof(struct zz_node)); n1 = zz_string(&tree, TOK_FOO, "foo"); n2 = zz_string(&tree, TOK_FOO, "bar"); n3 = zz_string(&tree, TOK_FOO, "foobar"); n4 = zz_string(&tree, TOK_FOO, "foo"); assert(strcmp(zz_to_string(n1), "foo") == 0); assert(strcmp(zz_to_string(n2), "bar") == 0); assert(strcmp(zz_to_string(n3), "foobar") == 0); assert(strcmp(zz_to_string(n4), "foo") == 0); assert(strcmp(zz_to_string(n1), zz_to_string(n4)) == 0); exit(EXIT_SUCCESS); }