diff options
| author | Tyge Løvset <[email protected]> | 2023-02-08 16:16:49 +0100 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2023-02-08 17:18:24 +0100 |
| commit | c4441f5fc665194fbd7a894a67a64a08c3beac42 (patch) | |
| tree | 82f231b6e8fcb75625166f98aa785baaa265a3d6 /misc/examples | |
| parent | 673dd5319a488d4b702b94dd9aeda4e497ae4fbc (diff) | |
| download | STC-modified-c4441f5fc665194fbd7a894a67a64a08c3beac42.tar.gz STC-modified-c4441f5fc665194fbd7a894a67a64a08c3beac42.zip | |
Changed to use lowercase flow-control macros in examples (uppercase will still be supported). Improved many examples to use c_make() to init containers.
Diffstat (limited to 'misc/examples')
69 files changed, 386 insertions, 441 deletions
diff --git a/misc/examples/arc_containers.c b/misc/examples/arc_containers.c index bfe15150..201c73d5 100644 --- a/misc/examples/arc_containers.c +++ b/misc/examples/arc_containers.c @@ -27,8 +27,8 @@ int main() { - c_AUTO (Stack, stack) - c_AUTO (List, list) + c_auto (Stack, stack) + c_auto (List, list) { // POPULATE stack with shared pointers to Maps: Map *map; @@ -64,14 +64,14 @@ int main() puts("STACKS"); - c_FOREACH (i, Stack, stack) { - c_FORPAIR (name, year, Map, *i.ref->get) + c_foreach (i, Stack, stack) { + c_forpair (name, year, Map, *i.ref->get) printf(" %s:%d", cstr_str(_.name), *_.year); puts(""); } puts("LIST"); - c_FOREACH (i, List, list) { - c_FORPAIR (name, year, Map, *i.ref->get) + c_foreach (i, List, list) { + c_forpair (name, year, Map, *i.ref->get) printf(" %s:%d", cstr_str(_.name), *_.year); puts(""); } diff --git a/misc/examples/arc_demo.c b/misc/examples/arc_demo.c index 564ebd6d..867cfc83 100644 --- a/misc/examples/arc_demo.c +++ b/misc/examples/arc_demo.c @@ -22,19 +22,19 @@ void int_drop(int* x) { int main() { - c_AUTO (cvec_Arc, vec) // declare and init vec, call cvec_Arc_drop() at scope exit - c_AUTO (csset_Arc, set) // declare and init set, call csset_Arc_drop() at scope exit + c_auto (cvec_Arc, vec) // declare and init vec, call cvec_Arc_drop() at scope exit + c_auto (csset_Arc, set) // declare and init set, call csset_Arc_drop() at scope exit { const int years[] = {2021, 2012, 2022, 2015}; - c_FORRANGE (i, c_ARRAYLEN(years)) + c_forrange (i, c_ARRAYLEN(years)) cvec_Arc_push(&vec, Arc_from(years[i])); printf("vec:"); - c_FOREACH (i, cvec_Arc, vec) printf(" %d", *i.ref->get); + c_foreach (i, cvec_Arc, vec) printf(" %d", *i.ref->get); puts(""); // add odd numbers from vec to set - c_FOREACH (i, cvec_Arc, vec) + c_foreach (i, cvec_Arc, vec) if (*i.ref->get & 1) csset_Arc_insert(&set, Arc_clone(*i.ref)); // copy shared pointer => increments counter. @@ -43,12 +43,12 @@ int main() cvec_Arc_pop_back(&vec); printf("vec:"); - c_FOREACH (i, cvec_Arc, vec) printf(" %d", *i.ref->get); + c_foreach (i, cvec_Arc, vec) printf(" %d", *i.ref->get); printf("\nset:"); - c_FOREACH (i, csset_Arc, set) printf(" %d", *i.ref->get); + c_foreach (i, csset_Arc, set) printf(" %d", *i.ref->get); - c_WITH (Arc p = Arc_clone(vec.data[0]), Arc_drop(&p)) { + c_with (Arc p = Arc_clone(vec.data[0]), Arc_drop(&p)) { printf("\n%d is now owned by %ld objects\n", *p.get, *p.use_count); } diff --git a/misc/examples/arcvec_erase.c b/misc/examples/arcvec_erase.c index 8385ed65..38f11097 100644 --- a/misc/examples/arcvec_erase.c +++ b/misc/examples/arcvec_erase.c @@ -15,17 +15,16 @@ void show_drop(int* x) { printf("drop: %d\n", *x); } int main() { - c_AUTO (Vec, vec) + c_auto (Vec, vec) { - c_FORLIST (i, int, {2012, 1990, 2012, 2019, 2015}) - Vec_emplace(&vec, *i.ref); + vec = c_make(Vec, {2012, 1990, 2012, 2019, 2015}); // clone the second 2012 and push it back. // note: cloning make sure that vec.data[2] has ref count 2. Vec_push(&vec, Arc_clone(vec.data[2])); printf("vec before erase :"); - c_FOREACH (i, Vec, vec) + c_foreach (i, Vec, vec) printf(" %d", *i.ref->get); printf("\nerase vec.data[2]; or first matching value depending on compare.\n"); @@ -40,12 +39,12 @@ int main() Vec_erase_at(&vec, it); printf("vec after erase :"); - c_FOREACH (i, Vec, vec) + c_foreach (i, Vec, vec) printf(" %d", *i.ref->get); Vec_sort(&vec); printf("\nvec after sort :"); - c_FOREACH (i, Vec, vec) + c_foreach (i, Vec, vec) printf(" %d", *i.ref->get); puts("\nDone"); diff --git a/misc/examples/astar.c b/misc/examples/astar.c index ddc9de3a..10e45d3c 100644 --- a/misc/examples/astar.c +++ b/misc/examples/astar.c @@ -80,9 +80,9 @@ astar(cstr* maze, int width) { cdeq_point path = cdeq_point_init(); - c_AUTO (cpque_point, front) - c_AUTO (csmap_pstep, from) - c_AUTO (csmap_pcost, costs) + c_auto (cpque_point, front) + c_auto (csmap_pstep, from) + c_auto (csmap_pcost, costs) { point start = point_from(maze, "@", width); point goal = point_from(maze, "!", width); @@ -131,7 +131,7 @@ astar(cstr* maze, int width) int main(void) { - c_WITH (cstr maze = cstr_lit( + c_with (cstr maze = cstr_lit( "#########################################################################\n" "# # # # # # #\n" "# # ######### # ##### ######### ##### ##### ##### # ! #\n" @@ -157,9 +157,9 @@ main(void) "#########################################################################\n"), cstr_drop(&maze)) { int width = (int)cstr_find(&maze, "\n") + 1; - c_WITH (cdeq_point path = astar(&maze, width), cdeq_point_drop(&path)) + c_with (cdeq_point path = astar(&maze, width), cdeq_point_drop(&path)) { - c_FOREACH (it, cdeq_point, path) + c_foreach (it, cdeq_point, path) cstr_data(&maze)[point_index(it.ref)] = 'x'; printf("%s", cstr_str(&maze)); diff --git a/misc/examples/birthday.c b/misc/examples/birthday.c index 63f64016..cb627ef8 100644 --- a/misc/examples/birthday.c +++ b/misc/examples/birthday.c @@ -18,10 +18,10 @@ static void test_repeats(void) printf("birthday paradox: value range: 2^%d, testing repeats of 2^%d values\n", BITS, BITS_TEST); stc64_t rng = stc64_new(seed); - c_AUTO (cmap_ic, m) + c_auto (cmap_ic, m) { cmap_ic_reserve(&m, N); - c_FORRANGE (i, N) { + c_forrange (i, N) { uint64_t k = stc64_rand(&rng) & mask; int v = cmap_ic_insert(&m, k, 0).ref->second += 1; if (v > 1) printf("repeated value %" PRIu64 " (%d) at 2^%d\n", @@ -42,17 +42,17 @@ void test_distribution(void) stc64_t rng = stc64_new(seed); const size_t N = 1ull << BITS ; - c_AUTO (cmap_x, map) { - c_FORRANGE (N) { + c_auto (cmap_x, map) { + c_forrange (N) { uint64_t k = stc64_rand(&rng); cmap_x_insert(&map, k & 0xf, 0).ref->second += 1; } uint64_t sum = 0; - c_FOREACH (i, cmap_x, map) sum += i.ref->second; + c_foreach (i, cmap_x, map) sum += i.ref->second; sum /= (uint64_t)map.size; - c_FOREACH (i, cmap_x, map) { + c_foreach (i, cmap_x, map) { printf("%4" PRIu32 ": %" PRIu64 " - %" PRIu64 ": %11.8f\n", i.ref->first, i.ref->second, sum, (1.0 - (double)i.ref->second / (double)sum)); diff --git a/misc/examples/bits.c b/misc/examples/bits.c index 03b74881..730dd953 100644 --- a/misc/examples/bits.c +++ b/misc/examples/bits.c @@ -3,7 +3,7 @@ int main() { - c_WITH (cbits set = cbits_with_size(23, true), cbits_drop(&set)) { + c_with (cbits set = cbits_with_size(23, true), cbits_drop(&set)) { printf("count %" c_ZI ", %" c_ZI "\n", cbits_count(&set), cbits_size(&set)); cbits s1 = cbits_from("1110100110111"); char buf[256]; @@ -16,7 +16,7 @@ int main() printf(" str: %s\n", cbits_to_str(&set, buf, 0, 255)); printf("%4" c_ZI ": ", cbits_size(&set)); - c_FORRANGE (i, cbits_size(&set)) + c_forrange (i, cbits_size(&set)) printf("%d", cbits_test(&set, i)); puts(""); @@ -26,34 +26,34 @@ int main() cbits_resize(&set, 102, true); cbits_set_value(&set, 99, false); printf("%4" c_ZI ": ", cbits_size(&set)); - c_FORRANGE (i, cbits_size(&set)) + c_forrange (i, cbits_size(&set)) printf("%d", cbits_test(&set, i)); puts("\nIterate:"); printf("%4" c_ZI ": ", cbits_size(&set)); - c_FORRANGE (i, cbits_size(&set)) + c_forrange (i, cbits_size(&set)) printf("%d", cbits_test(&set, i)); puts(""); - c_WITH (cbits s2 = cbits_clone(set), cbits_drop(&s2)) { + c_with (cbits s2 = cbits_clone(set), cbits_drop(&s2)) { cbits_flip_all(&s2); cbits_set(&s2, 16); cbits_set(&s2, 17); cbits_set(&s2, 18); printf(" new: "); - c_FORRANGE (i, cbits_size(&s2)) + c_forrange (i, cbits_size(&s2)) printf("%d", cbits_test(&s2, i)); puts(""); printf(" xor: "); cbits_xor(&set, &s2); - c_FORRANGE (i, cbits_size(&set)) + c_forrange (i, cbits_size(&set)) printf("%d", cbits_test(&set, i)); puts(""); cbits_set_all(&set, false); printf("%4" c_ZI ": ", cbits_size(&set)); - c_FORRANGE (i, cbits_size(&set)) + c_forrange (i, cbits_size(&set)) printf("%d", cbits_test(&set, i)); puts(""); } diff --git a/misc/examples/bits2.c b/misc/examples/bits2.c index 9b1d1af7..b002af3c 100644 --- a/misc/examples/bits2.c +++ b/misc/examples/bits2.c @@ -23,19 +23,19 @@ int main() Bits_reset(&s2, 66); Bits_reset(&s2, 67); printf(" s2: "); - c_FORRANGE (i, Bits_size(&s2)) + c_forrange (i, Bits_size(&s2)) printf("%d", Bits_test(&s2, i)); puts(""); printf("xor: "); Bits_xor(&s1, &s2); - c_FORRANGE (i, Bits_size(&s1)) + c_forrange (i, Bits_size(&s1)) printf("%d", Bits_test(&s1, i)); puts(""); printf("all: "); Bits_set_pattern(&s1, 0x3333333333333333); - c_FORRANGE (i, Bits_size(&s1)) + c_forrange (i, Bits_size(&s1)) printf("%d", Bits_test(&s1, i)); puts(""); } diff --git a/misc/examples/books.c b/misc/examples/books.c index 4695941a..098771ae 100644 --- a/misc/examples/books.c +++ b/misc/examples/books.c @@ -8,7 +8,7 @@ // would be `HashMap<String, String>` in this example). int main() { - c_AUTO (cmap_str, book_reviews) + c_auto (cmap_str, book_reviews) { // Review some books. cmap_str_emplace(&book_reviews, @@ -41,7 +41,7 @@ int main() // Look up the values associated with some keys. const char* to_find[] = {"Pride and Prejudice", "Alice's Adventure in Wonderland"}; - c_FORRANGE (i, c_ARRAYLEN(to_find)) { + c_forrange (i, c_ARRAYLEN(to_find)) { const cmap_str_value* b = cmap_str_get(&book_reviews, to_find[i]); if (b) printf("%s: %s\n", cstr_str(&b->first), cstr_str(&b->second)); @@ -53,7 +53,7 @@ int main() printf("Review for Jane: %s\n", cstr_str(cmap_str_at(&book_reviews, "Pride and Prejudice"))); // Iterate over everything. - c_FORPAIR (book, review, cmap_str, book_reviews) { + c_forpair (book, review, cmap_str, book_reviews) { printf("%s: \"%s\"\n", cstr_str(_.book), cstr_str(_.review)); } } diff --git a/misc/examples/box.c b/misc/examples/box.c index 3a7a8139..da13501f 100644 --- a/misc/examples/box.c +++ b/misc/examples/box.c @@ -37,8 +37,8 @@ void Person_drop(Person* p) { int main() { - c_AUTO (Persons, vec) - c_AUTO (PBox, p, q) + c_auto (Persons, vec) + c_auto (PBox, p, q) { p = PBox_from(Person_make("Laura", "Palmer")); q = PBox_clone(p); @@ -54,12 +54,12 @@ int main() Persons_push(&vec, PBox_clone(p)); Persons_push(&vec, PBox_clone(q)); - c_FOREACH (i, Persons, vec) + c_foreach (i, Persons, vec) printf("%s %s\n", cstr_str(&i.ref->get->name), cstr_str(&i.ref->get->last)); puts(""); // Look-up Audrey! Create a temporary Person for lookup. - c_WITH (Person a = Person_make("Audrey", "Home"), Person_drop(&a)) { + c_with (Person a = Person_make("Audrey", "Home"), Person_drop(&a)) { const PBox *v = Persons_get(&vec, a); // lookup if (v) printf("found: %s %s\n", cstr_str(&v->get->name), cstr_str(&v->get->last)); } diff --git a/misc/examples/box2.c b/misc/examples/box2.c index 6281f800..b9628eeb 100644 --- a/misc/examples/box2.c +++ b/misc/examples/box2.c @@ -51,9 +51,9 @@ int main(void) { }; // Declare auto-deleted box objects - c_AUTO (cbox_Rectangle, boxed_rectangle) - c_AUTO (cbox_Point, boxed_point) - c_AUTO (cbox_BoxPoint, box_in_a_box, boxbox2) + c_auto (cbox_Rectangle, boxed_rectangle) + c_auto (cbox_Point, boxed_point) + c_auto (cbox_BoxPoint, box_in_a_box, boxbox2) { // Heap allocated rectangle boxed_rectangle = cbox_Rectangle_make((Rectangle){ diff --git a/misc/examples/city.c b/misc/examples/city.c index e24c90de..67471cfb 100644 --- a/misc/examples/city.c +++ b/misc/examples/city.c @@ -50,42 +50,43 @@ void City_drop(City* c) { int main(void) { - c_AUTO (Cities, cities, copy) - c_AUTO (CityMap, map) + c_auto (Cities, cities, copy) + c_auto (CityMap, map) { - c_FORLIST (i, City, { - {cstr_lit("New York"), cstr_lit("US"), 4.3f, 23.2f, 9000000}, - {cstr_lit("Paris"), cstr_lit("France"), 4.3f, 23.2f, 9000000}, - {cstr_lit("Berlin"), cstr_lit("Germany"), 4.3f, 23.2f, 9000000}, - {cstr_lit("London"), cstr_lit("UK"), 4.3f, 23.2f, 9000000}, - }) Cities_emplace(&cities, *i.ref); // NB. creates smart pointers! + // Create a cvec with smart pointers to City objects! + cities = c_make(Cities, { + {cstr_lit("New York"), cstr_lit("US"), 40.71427f, -74.00597f, 8804190}, + {cstr_lit("Paris"), cstr_lit("France"), 48.85341f, 2.3488f, 2138551}, + {cstr_lit("Berlin"), cstr_lit("Germany"), 52.52437f, 13.41053f, 3426354}, + {cstr_lit("London"), cstr_lit("UK"), 51.50853f, -0.12574f, 8961989}, + }); Cities_sort(&cities); printf("Vec:\n"); - c_FOREACH (c, Cities, cities) - printf("city:%s, %d, use:%ld\n", cstr_str(&c.ref->get->name), + c_foreach (c, Cities, cities) + printf("city: %8s, %8d, use: %ld\n", cstr_str(&c.ref->get->name), c.ref->get->population, CityArc_use_count(c.ref)); puts(""); - copy = Cities_clone(cities); // share each element! + copy = Cities_clone(cities); // share each city! int k = 0, id[] = {8, 4, 3, 9, 2, 5}; - c_FOREACH (i, Cities, cities) + c_foreach (i, Cities, cities) CityMap_insert(&map, id[k++], CityArc_clone(*i.ref)); Cities_pop(&cities); Cities_pop(&cities); printf("Vec:\n"); - c_FOREACH (c, Cities, cities) - printf("city:%s, %d, use:%ld\n", cstr_str(&c.ref->get->name), - c.ref->get->population, - CityArc_use_count(c.ref)); + c_foreach (c, Cities, cities) + printf("city: %8s, %8d, use: %ld\n", cstr_str(&c.ref->get->name), + c.ref->get->population, + CityArc_use_count(c.ref)); printf("\nMap:\n"); - c_FORPAIR (id, city, CityMap, map) - printf("id:%d, city:%s, %d, use:%ld\n", *_.id, cstr_str(&_.city->get->name), - _.city->get->population, CityArc_use_count(_.city)); + c_forpair (id, city, CityMap, map) + printf("city: %8s, %8d, use: %ld, id:%d\n", cstr_str(&_.city->get->name), + _.city->get->population, CityArc_use_count(_.city), *_.id); puts(""); } } diff --git a/misc/examples/complex.c b/misc/examples/complex.c index 5c212554..e73d7aa1 100644 --- a/misc/examples/complex.c +++ b/misc/examples/complex.c @@ -31,7 +31,7 @@ int main() { - c_AUTO (MapMap, mmap) + c_auto (MapMap, mmap) { FloatStack stack = FloatStack_with_size(10, 0); diff --git a/misc/examples/convert.c b/misc/examples/convert.c index f2324268..160812b7 100644 --- a/misc/examples/convert.c +++ b/misc/examples/convert.c @@ -13,38 +13,38 @@ int main() { - c_AUTO (cmap_str, map, mclone) - c_AUTO (cvec_str, keys, values) - c_AUTO (clist_str, list) + c_auto (cmap_str, map, mclone) + c_auto (cvec_str, keys, values) + c_auto (clist_str, list) { - c_FORLIST (i, cmap_str_raw, { + map = c_make(cmap_str, { {"green", "#00ff00"}, {"blue", "#0000ff"}, {"yellow", "#ffff00"}, - }) cmap_str_emplace(&map, c_PAIR(i.ref)); + }); puts("MAP:"); - c_FOREACH (i, cmap_str, map) + c_foreach (i, cmap_str, map) printf(" %s: %s\n", cstr_str(&i.ref->first), cstr_str(&i.ref->second)); puts("\nCLONE MAP:"); mclone = cmap_str_clone(map); - c_FOREACH (i, cmap_str, mclone) + c_foreach (i, cmap_str, mclone) printf(" %s: %s\n", cstr_str(&i.ref->first), cstr_str(&i.ref->second)); puts("\nCOPY MAP TO VECS:"); - c_FOREACH (i, cmap_str, mclone) { + c_foreach (i, cmap_str, mclone) { cvec_str_emplace_back(&keys, cstr_str(&i.ref->first)); cvec_str_emplace_back(&values, cstr_str(&i.ref->second)); } - c_FORRANGE (i, cvec_str_size(&keys)) + c_forrange (i, cvec_str_size(&keys)) printf(" %s: %s\n", cstr_str(keys.data + i), cstr_str(values.data + i)); puts("\nCOPY VEC TO LIST:"); - c_FOREACH (i, cvec_str, keys) + c_foreach (i, cvec_str, keys) clist_str_emplace_back(&list, cstr_str(i.ref)); - c_FOREACH (i, clist_str, list) + c_foreach (i, clist_str, list) printf(" %s\n", cstr_str(i.ref)); } } diff --git a/misc/examples/csmap_erase.c b/misc/examples/csmap_erase.c index a41a1ad1..a3bd250b 100644 --- a/misc/examples/csmap_erase.c +++ b/misc/examples/csmap_erase.c @@ -10,14 +10,14 @@ void printmap(mymap m) { - c_FOREACH (elem, mymap, m) + c_foreach (elem, mymap, m) printf(" [%d, %s]", elem.ref->first, cstr_str(&elem.ref->second)); printf("\nsize() == %" c_ZI "\n\n", mymap_size(&m)); } int main() { - c_AUTO (mymap, m1) + c_auto (mymap, m1) { // Fill in some data to test with, one at a time mymap_insert(&m1, 1, cstr_lit("A")); @@ -34,16 +34,16 @@ int main() printmap(m1); } - c_AUTO (mymap, m2) + c_auto (mymap, m2) { // Fill in some data to test with, one at a time - c_FORLIST (i, mymap_raw, { + m2 = c_make(mymap, { {10, "Bob"}, {11, "Rob"}, {12, "Robert"}, {13, "Bert"}, {14, "Bobby"}, - }) mymap_emplace(&m2, c_PAIR(i.ref)); + }); puts("Starting data of map m2 is:"); printmap(m2); @@ -51,7 +51,7 @@ int main() mymap_iter it2 = mymap_find(&m2, mymap_back(&m2)->first); puts("to remove:"); - c_FOREACH (i, mymap, it1, it2) + c_foreach (i, mymap, it1, it2) printf(" [%d, %s]", i.ref->first, cstr_str(&i.ref->second)); puts(""); // The 2nd member function removes elements @@ -61,7 +61,7 @@ int main() printmap(m2); } - c_AUTO (mymap, m3) + c_auto (mymap, m3) { // Fill in some data to test with, one at a time, using emplace mymap_emplace(&m3, 1, "red"); diff --git a/misc/examples/csmap_find.c b/misc/examples/csmap_find.c index 201c94e9..fe5558e2 100644 --- a/misc/examples/csmap_find.c +++ b/misc/examples/csmap_find.c @@ -20,7 +20,7 @@ void print_elem(csmap_istr_raw p) { void print_collection_##CX(const CX* t) { \ printf("%" c_ZI " elements: ", CX##_size(t)); \ \ - c_FOREACH (p, CX, *t) { \ + c_foreach (p, CX, *t) { \ print_elem(CX##_value_toraw(p.ref)); \ } \ puts(""); \ @@ -42,11 +42,10 @@ void findit(csmap_istr c, csmap_istr_key val) int main() { - c_AUTO (csmap_istr, m1) - c_AUTO (cvec_istr, v) + c_auto (csmap_istr, m1) + c_auto (cvec_istr, v) { - c_FORLIST (i, csmap_istr_raw, {{40, "Zr"}, {45, "Rh"}}) - csmap_istr_emplace(&m1, c_PAIR(i.ref)); + m1 = c_make(csmap_istr, {{40, "Zr"}, {45, "Rh"}}); puts("The starting map m1 is (key, value):"); print_collection_csmap_istr(&m1); @@ -62,7 +61,7 @@ int main() puts("Inserting the following vector data into m1:"); print_collection_cvec_istr(&v); - c_FOREACH (i, cvec_istr, cvec_istr_begin(&v), cvec_istr_end(&v)) + c_foreach (i, cvec_istr, cvec_istr_begin(&v), cvec_istr_end(&v)) csmap_istr_emplace(&m1, c_PAIR(i.ref)); puts("The modified map m1 is (key, value):"); diff --git a/misc/examples/csmap_insert.c b/misc/examples/csmap_insert.c index b1b0a5be..64d71b12 100644 --- a/misc/examples/csmap_insert.c +++ b/misc/examples/csmap_insert.c @@ -19,13 +19,13 @@ #include <stc/cvec.h> void print_ii(csmap_ii map) { - c_FOREACH (e, csmap_ii, map) + c_foreach (e, csmap_ii, map) printf("(%d, %d) ", e.ref->first, e.ref->second); puts(""); } void print_istr(csmap_istr map) { - c_FOREACH (e, csmap_istr, map) + c_foreach (e, csmap_istr, map) printf("(%d, %s) ", e.ref->first, cstr_str(&e.ref->second)); puts(""); } @@ -33,7 +33,7 @@ void print_istr(csmap_istr map) { int main() { // insert single values - c_AUTO (csmap_ii, m1) { + c_auto (csmap_ii, m1) { csmap_ii_insert(&m1, 1, 10); csmap_ii_insert(&m1, 2, 20); @@ -60,8 +60,8 @@ int main() } // The templatized version inserting a jumbled range - c_AUTO (csmap_ii, m2) - c_AUTO (cvec_ii, v) { + c_auto (csmap_ii, m2) + c_auto (cvec_ii, v) { typedef cvec_ii_value ipair; cvec_ii_push(&v, (ipair){43, 294}); cvec_ii_push(&v, (ipair){41, 262}); @@ -70,21 +70,21 @@ int main() cvec_ii_push(&v, (ipair){44, 311}); puts("Inserting the following vector data into m2:"); - c_FOREACH (e, cvec_ii, v) + c_foreach (e, cvec_ii, v) printf("(%d, %d) ", e.ref->first, e.ref->second); puts(""); - c_FOREACH (e, cvec_ii, v) + c_foreach (e, cvec_ii, v) csmap_ii_insert_or_assign(&m2, e.ref->first, e.ref->second); puts("The modified key and mapped values of m2 are:"); - c_FOREACH (e, csmap_ii, m2) + c_foreach (e, csmap_ii, m2) printf("(%d, %d) ", e.ref->first, e.ref->second); puts("\n"); } // The templatized versions move-constructing elements - c_AUTO (csmap_istr, m3) { + c_auto (csmap_istr, m3) { csmap_istr_value ip1 = {475, cstr_lit("blue")}, ip2 = {510, cstr_lit("green")}; // single element @@ -99,12 +99,9 @@ int main() puts(""); } - c_AUTO (csmap_ii, m4) { + c_auto (csmap_ii, m4) { // Insert the elements from an initializer_list - c_FORLIST (i, csmap_ii_raw, {{ 4, 44 }, { 2, 22 }, { 3, 33 }, - { 1, 11 }, { 5, 55 }}) - csmap_ii_insert(&m4, c_PAIR(i.ref)); - + m4 = c_make(csmap_ii, {{4, 44}, {2, 22}, {3, 33}, {1, 11}, {5, 55}}); puts("After initializer_list insertion, m4 contains:"); print_ii(m4); puts(""); diff --git a/misc/examples/csset_erase.c b/misc/examples/csset_erase.c index c281c626..e8f2fec5 100644 --- a/misc/examples/csset_erase.c +++ b/misc/examples/csset_erase.c @@ -5,12 +5,11 @@ int main() { - c_AUTO (csset_int, set) + c_auto (csset_int, set) { - c_FORLIST (i, int, {30, 20, 80, 40, 60, 90, 10, 70, 50}) - csset_int_insert(&set, *i.ref); + set = c_make(csset_int, {30, 20, 80, 40, 60, 90, 10, 70, 50}); - c_FOREACH (k, csset_int, set) + c_foreach (k, csset_int, set) printf(" %d", *k.ref); puts(""); @@ -19,7 +18,7 @@ int main() printf("Show values >= %d:\n", val); it = csset_int_lower_bound(&set, val); - c_FOREACH (k, csset_int, it, csset_int_end(&set)) + c_foreach (k, csset_int, it, csset_int_end(&set)) printf(" %d", *k.ref); puts(""); @@ -27,7 +26,7 @@ int main() while (it.ref != csset_int_end(&set).ref) it = csset_int_erase_at(&set, it); - c_FOREACH (k, csset_int, set) + c_foreach (k, csset_int, set) printf(" %d", *k.ref); puts(""); @@ -36,7 +35,7 @@ int main() it = csset_int_lower_bound(&set, val); csset_int_erase_range(&set, csset_int_begin(&set), it); - c_FOREACH (k, csset_int, set) + c_foreach (k, csset_int, set) printf(" %d", *k.ref); puts(""); } diff --git a/misc/examples/cstr_match.c b/misc/examples/cstr_match.c index 828ef424..4d11edbb 100644 --- a/misc/examples/cstr_match.c +++ b/misc/examples/cstr_match.c @@ -4,7 +4,7 @@ int main() { - c_WITH (cstr ss = cstr_lit("The quick brown fox jumps over the lazy dog.JPG"), cstr_drop(&ss)) { + c_with (cstr ss = cstr_lit("The quick brown fox jumps over the lazy dog.JPG"), cstr_drop(&ss)) { intptr_t pos = cstr_find_at(&ss, 0, "brown"); printf("%" c_ZI " [%s]\n", pos, pos == c_NPOS ? "<NULL>" : cstr_str(&ss) + pos); printf("equals: %d\n", cstr_equals(&ss, "The quick brown fox jumps over the lazy dog.JPG")); diff --git a/misc/examples/demos.c b/misc/examples/demos.c index 7070d860..d5336cbf 100644 --- a/misc/examples/demos.c +++ b/misc/examples/demos.c @@ -3,7 +3,7 @@ void stringdemo1() { printf("\nSTRINGDEMO1\n"); - c_WITH (cstr cs = cstr_lit("one-nine-three-seven-five"), cstr_drop(&cs)) + c_with (cstr cs = cstr_lit("one-nine-three-seven-five"), cstr_drop(&cs)) { printf("%s.\n", cstr_str(&cs)); @@ -35,7 +35,7 @@ void stringdemo1() void vectordemo1() { printf("\nVECTORDEMO1\n"); - c_WITH (cvec_ix bignums = cvec_ix_with_capacity(100), cvec_ix_drop(&bignums)) + c_with (cvec_ix bignums = cvec_ix_with_capacity(100), cvec_ix_drop(&bignums)) { cvec_ix_reserve(&bignums, 100); for (int i = 10; i <= 100; i += 10) @@ -59,7 +59,7 @@ void vectordemo1() void vectordemo2() { printf("\nVECTORDEMO2\n"); - c_AUTO (cvec_str, names) { + c_auto (cvec_str, names) { cvec_str_emplace_back(&names, "Mary"); cvec_str_emplace_back(&names, "Joe"); cvec_str_emplace_back(&names, "Chris"); @@ -67,7 +67,7 @@ void vectordemo2() printf("names[1]: %s\n", cstr_str(&names.data[1])); cvec_str_sort(&names); // Sort the array - c_FOREACH (i, cvec_str, names) + c_foreach (i, cvec_str, names) printf("sorted: %s\n", cstr_str(i.ref)); } } @@ -80,7 +80,7 @@ void vectordemo2() void listdemo1() { printf("\nLISTDEMO1\n"); - c_AUTO (clist_ix, nums, nums2) + c_auto (clist_ix, nums, nums2) { for (int i = 0; i < 10; ++i) clist_ix_push_back(&nums, i); @@ -89,7 +89,7 @@ void listdemo1() /* splice nums2 to front of nums */ clist_ix_splice(&nums, clist_ix_begin(&nums), &nums2); - c_FOREACH (i, clist_ix, nums) + c_foreach (i, clist_ix, nums) printf("spliced: %d\n", *i.ref); puts(""); @@ -101,7 +101,7 @@ void listdemo1() clist_ix_push_back(&nums, -99); clist_ix_sort(&nums); - c_FOREACH (i, clist_ix, nums) + c_foreach (i, clist_ix, nums) printf("sorted: %d\n", *i.ref); } } @@ -117,7 +117,7 @@ void setdemo1() cset_i_insert(&nums, 8); cset_i_insert(&nums, 11); - c_FOREACH (i, cset_i, nums) + c_foreach (i, cset_i, nums) printf("set: %d\n", *i.ref); cset_i_drop(&nums); } @@ -145,7 +145,7 @@ void mapdemo1() void mapdemo2() { printf("\nMAPDEMO2\n"); - c_AUTO (cmap_si, nums) + c_auto (cmap_si, nums) { cmap_si_emplace_or_assign(&nums, "Hello", 64); cmap_si_emplace_or_assign(&nums, "Groovy", 121); @@ -156,7 +156,7 @@ void mapdemo2() printf("long: %s: %d\n", cstr_str(&i.ref->first), i.ref->second); // or rather use the short form: - c_FOREACH (i, cmap_si, nums) + c_foreach (i, cmap_si, nums) printf("short: %s: %d\n", cstr_str(&i.ref->first), i.ref->second); } } @@ -173,14 +173,14 @@ void mapdemo3() cmap_str_emplace(&table, "Make", "my"); cmap_str_emplace(&table, "Sunny", "day"); cmap_str_iter it = cmap_str_find(&table, "Make"); - c_FOREACH (i, cmap_str, table) + c_foreach (i, cmap_str, table) printf("entry: %s: %s\n", cstr_str(&i.ref->first), cstr_str(&i.ref->second)); printf("size %" c_ZI ": remove: Make: %s\n", cmap_str_size(&table), cstr_str(&it.ref->second)); //cmap_str_erase(&table, "Make"); cmap_str_erase_at(&table, it); printf("size %" c_ZI "\n", cmap_str_size(&table)); - c_FOREACH (i, cmap_str, table) + c_foreach (i, cmap_str, table) printf("entry: %s: %s\n", cstr_str(&i.ref->first), cstr_str(&i.ref->second)); cmap_str_drop(&table); // frees key and value cstrs, and hash table. } diff --git a/misc/examples/forfilter.c b/misc/examples/forfilter.c index d7e1bb1e..b0be4e69 100644 --- a/misc/examples/forfilter.c +++ b/misc/examples/forfilter.c @@ -21,18 +21,18 @@ void demo1(void) { - c_AUTO (IVec, vec) { - c_FORLIST (i, int, {0, 1, 2, 3, 4, 5, 80, 6, 7, 80, 8, 9, 80, + c_auto (IVec, vec) { + c_forlist (i, int, {0, 1, 2, 3, 4, 5, 80, 6, 7, 80, 8, 9, 80, 10, 11, 12, 13, 14, 15, 80, 16, 17}) IVec_push(&vec, *i.ref); puts("demo1:"); - c_FORFILTER (i, IVec, vec, flt_skipValue(i, 80)) + c_forfilter (i, IVec, vec, flt_skipValue(i, 80)) printf(" %d", *i.ref); puts(""); int res, sum = 0; - c_FORFILTER (i, IVec, vec + c_forfilter (i, IVec, vec , c_flt_skipwhile(i, *i.ref != 80) && c_flt_skip(i, 1) && c_flt_skipwhile(i, *i.ref != 80) @@ -62,15 +62,15 @@ fn main() { void demo2(void) { - c_AUTO (IVec, vector) { + c_auto (IVec, vector) { puts("demo2:"); crange R = crange_make(INT64_MAX); - c_FORFILTER (x, crange, R + c_forfilter (x, crange, R , c_flt_skipwhile(x, *x.ref != 11) && *x.ref % 2 != 0 , c_flt_take(x, 5)) IVec_push(&vector, (int)(*x.ref * *x.ref)); - c_FOREACH (x, IVec, vector) + c_foreach (x, IVec, vector) printf(" %d", *x.ref); puts(""); } @@ -91,17 +91,17 @@ fn main() { */ void demo3(void) { - c_AUTO (SVec, words, words_containing_i) { + c_auto (SVec, words, words_containing_i) { const char* sentence = "This is a sentence in C99."; - c_FORTOKEN (w, sentence, " ") + c_fortoken (w, sentence, " ") SVec_push(&words, *w.ref); - c_FORFILTER (w, SVec, words, + c_forfilter (w, SVec, words, csview_contains(*w.ref, "i")) SVec_push(&words_containing_i, *w.ref); puts("demo3:"); - c_FOREACH (w, SVec, words_containing_i) + c_foreach (w, SVec, words_containing_i) printf(" %.*s", c_SVARG(*w.ref)); puts(""); } @@ -110,8 +110,8 @@ void demo3(void) void demo4(void) { csview s = c_SV("ab123cReAghNGnΩoEp"); // Ω = multi-byte - c_AUTO (cstr, out) { - c_FORFILTER (i, csview, s, utf8_isupper(utf8_peek(i.ref))) { + c_auto (cstr, out) { + c_forfilter (i, csview, s, utf8_isupper(utf8_peek(i.ref))) { char chr[4]; utf8_encode(chr, utf8_tolower(utf8_peek(i.ref))); cstr_push(&out, chr); @@ -127,7 +127,7 @@ void demo5(void) #define flt_mid_decade(i) ((*i.ref % 10) != 0) puts("demo5:"); crange R = crange_make(1963, INT32_MAX); - c_FORFILTER (i, crange, R + c_forfilter (i, crange, R , c_flt_skip(i,15) && c_flt_skipwhile(i, flt_mid_decade(i)) && c_flt_skip(i,30) diff --git a/misc/examples/forloops.c b/misc/examples/forloops.c index cd3c4d9e..66c587c4 100644 --- a/misc/examples/forloops.c +++ b/misc/examples/forloops.c @@ -13,61 +13,61 @@ int main()
{
- puts("c_FORRANGE:");
- c_FORRANGE (30) printf(" xx");
+ puts("c_forrange:");
+ c_forrange (30) printf(" xx");
puts("");
- c_FORRANGE (i, 30) printf(" %lld", i);
+ c_forrange (i, 30) printf(" %lld", i);
puts("");
- c_FORRANGE (i, 30, 60) printf(" %lld", i);
+ c_forrange (i, 30, 60) printf(" %lld", i);
puts("");
- c_FORRANGE (i, 30, 90, 2) printf(" %lld", i);
+ c_forrange (i, 30, 90, 2) printf(" %lld", i);
puts("\n\nc_forlist:");
- c_FORLIST (i, int, {12, 23, 453, 65, 676})
+ c_forlist (i, int, {12, 23, 453, 65, 676})
printf(" %d", *i.ref);
puts("");
- c_FORLIST (i, const char*, {"12", "23", "453", "65", "676"})
+ c_forlist (i, const char*, {"12", "23", "453", "65", "676"})
printf(" %s", *i.ref);
puts("");
- c_FORLIST (i, const char*, {"12", "23", "453", "65", "676"})
+ c_forlist (i, const char*, {"12", "23", "453", "65", "676"})
printf(" %s", i.data[i.size - 1 - i.index]);
- c_AUTO (IVec, vec)
- c_AUTO (IMap, map)
+ c_auto (IVec, vec)
+ c_auto (IMap, map)
{
- c_FORLIST (i, int, {12, 23, 453, 65, 113, 215, 676, 34, 67, 20, 27, 66, 189, 45, 280, 199})
+ c_forlist (i, int, {12, 23, 453, 65, 113, 215, 676, 34, 67, 20, 27, 66, 189, 45, 280, 199})
IVec_push(&vec, *i.ref);
- c_FORLIST (i, IMap_value, {{12, 23}, {453, 65}, {676, 123}, {34, 67}})
+ c_forlist (i, IMap_value, {{12, 23}, {453, 65}, {676, 123}, {34, 67}})
IMap_push(&map, *i.ref);
puts("\n\nc_foreach:");
- c_FOREACH (i, IVec, vec)
+ c_foreach (i, IVec, vec)
printf(" %d", *i.ref);
puts("");
- c_FOREACH (i, IMap, map)
+ c_foreach (i, IMap, map)
printf(" (%d %d)", i.ref->first, i.ref->second);
puts("\n\nc_forpair:");
- c_FORPAIR (key, val, IMap, map)
+ c_forpair (key, val, IMap, map)
printf(" (%d %d)", *_.key, *_.val);
puts("\n\nc_forwhile:");
- c_FORWHILE (i, IVec, IVec_begin(&vec), i.index < 3)
+ c_forwhile (i, IVec, IVec_begin(&vec), i.index < 3)
printf(" %d", *i.ref);
#define isOdd(i) (*i.ref & 1)
puts("\n\nc_forfilter:");
- c_FORFILTER (i, IVec, vec
+ c_forfilter (i, IVec, vec
, c_flt_skipwhile(i, *i.ref != 65)
&& c_flt_takewhile(i, *i.ref != 280)
&& c_flt_skipwhile(i, isOdd(i))
diff --git a/misc/examples/functor.c b/misc/examples/functor.c index f1db3644..6d42c4f8 100644 --- a/misc/examples/functor.c +++ b/misc/examples/functor.c @@ -45,23 +45,23 @@ int main() { const int data[] = {1,8,5,6,3,4,0,9,7,2}, n = c_ARRAYLEN(data); printf("data: \t"); - c_FORRANGE (i, n) printf("%d ", data[i]); + c_forrange (i, n) printf("%d ", data[i]); puts(""); IPQueue q1 = {ipque_init(), int_less}; // Max priority queue IPQueue minq1 = {ipque_init(), int_greater}; // Min priority queue IPQueue q5 = {ipque_init(), int_lambda}; // Using lambda to compare elements. - c_DEFER (ipque_drop(&q1.Q), ipque_drop(&minq1.Q), ipque_drop(&q5.Q)) + c_defer (ipque_drop(&q1.Q), ipque_drop(&minq1.Q), ipque_drop(&q5.Q)) { - c_FORRANGE (i, n) + c_forrange (i, n) ipque_push(&q1.Q, data[i]); print_queue("q1", q1); - c_FORRANGE (i, n) + c_forrange (i, n) ipque_push(&minq1.Q, data[i]); print_queue("minq1", minq1); - c_FORRANGE (i, n) + c_forrange (i, n) ipque_push(&q5.Q, data[i]); print_queue("q5", q5); } diff --git a/misc/examples/gauss1.c b/misc/examples/gauss1.c index 6b06b4e8..40d0981f 100644 --- a/misc/examples/gauss1.c +++ b/misc/examples/gauss1.c @@ -29,26 +29,26 @@ int main() stc64_normalf_t dist = stc64_normalf_new(Mean, StdDev); // Create and init histogram vec and map with defered destructors: - c_AUTO (cvec_ii, histvec) - c_AUTO (cmap_ii, histmap) + c_auto (cvec_ii, histvec) + c_auto (cmap_ii, histmap) { - c_FORRANGE (N) { + c_forrange (N) { int index = (int)round( stc64_normalf(&rng, &dist) ); cmap_ii_insert(&histmap, index, 0).ref->second += 1; } // Transfer map to vec and sort it by map keys. - c_FOREACH (i, cmap_ii, histmap) + c_foreach (i, cmap_ii, histmap) cvec_ii_push(&histvec, (cmap_ii_value){i.ref->first, i.ref->second}); cvec_ii_sort(&histvec); // Print the gaussian bar chart - c_FOREACH (i, cvec_ii, histvec) { + c_foreach (i, cvec_ii, histvec) { int n = (int)(i.ref->second * StdDev * Scale * 2.5 / (double)N); if (n > 0) { printf("%4d ", i.ref->first); - c_FORRANGE (n) printf("*"); + c_forrange (n) printf("*"); puts(""); } } diff --git a/misc/examples/gauss2.c b/misc/examples/gauss2.c index 96ab9d6d..c531e5e3 100644 --- a/misc/examples/gauss2.c +++ b/misc/examples/gauss2.c @@ -22,16 +22,16 @@ int main() stc64_normalf_t dist = stc64_normalf_new(Mean, StdDev); // Create and init histogram map with defered destruct - c_AUTO (csmap_int, mhist) + c_auto (csmap_int, mhist) { - c_FORRANGE (N) { + c_forrange (N) { int index = (int) round( stc64_normalf(&rng, &dist) ); csmap_int_insert(&mhist, index, 0).ref->second += 1; } // Print the gaussian bar chart - c_AUTO (cstr, bar) - c_FORPAIR (index, count, csmap_int, mhist) { + c_auto (cstr, bar) + c_forpair (index, count, csmap_int, mhist) { int n = (int)((float)*_.count * StdDev * Scale * 2.5f / (float)N); if (n > 0) { cstr_resize(&bar, n, '*'); diff --git a/misc/examples/hashmap.c b/misc/examples/hashmap.c index bc4f2566..f59ed824 100644 --- a/misc/examples/hashmap.c +++ b/misc/examples/hashmap.c @@ -17,7 +17,7 @@ const char* call(const char* number) { } int main(void) { - c_AUTO (cmap_str, contacts) + c_auto (cmap_str, contacts) { cmap_str_emplace(&contacts, "Daniel", "798-1364"); cmap_str_emplace(&contacts, "Ashley", "645-7689"); @@ -40,7 +40,7 @@ int main(void) { cmap_str_erase(&contacts, "Ashley"); puts(""); - c_FORPAIR (contact, number, cmap_str, contacts) { + c_forpair (contact, number, cmap_str, contacts) { printf("Calling %s: %s\n", cstr_str(_.contact), call(cstr_str(_.number))); } puts(""); diff --git a/misc/examples/inits.c b/misc/examples/inits.c index 459a0ec1..3d03ee91 100644 --- a/misc/examples/inits.c +++ b/misc/examples/inits.c @@ -36,11 +36,11 @@ int main(void) { // CVEC FLOAT / PRIORITY QUEUE - c_AUTO (cpque_f, floats) { + c_auto (cpque_f, floats) { const float nums[] = {4.0f, 2.0f, 5.0f, 3.0f, 1.0f}; // PRIORITY QUEUE - c_FORRANGE (i, c_ARRAYLEN(nums)) + c_forrange (i, c_ARRAYLEN(nums)) cpque_f_push(&floats, nums[i]); puts("\npop and show high priorites first:"); @@ -54,20 +54,21 @@ int main(void) // CMAP ID int year = 2020; - c_AUTO (cmap_id, idnames) { + c_auto (cmap_id, idnames) { cmap_id_emplace(&idnames, 100, "Hello"); cmap_id_insert(&idnames, 110, cstr_lit("World")); cmap_id_insert(&idnames, 120, cstr_from_fmt("Howdy, -%d-", year)); - c_FOREACH (i, cmap_id, idnames) + c_foreach (i, cmap_id, idnames) printf("%d: %s\n", i.ref->first, cstr_str(&i.ref->second)); puts(""); } // CMAP CNT - c_AUTO (cmap_cnt, countries) { - c_FORLIST (i, cmap_cnt_raw, { + c_auto (cmap_cnt, countries) + { + countries = c_make(cmap_cnt, { {"Norway", 100}, {"Denmark", 50}, {"Iceland", 10}, @@ -76,40 +77,37 @@ int main(void) {"Germany", 10}, {"Spain", 10}, {"France", 10}, - }) cmap_cnt_emplace(&countries, c_PAIR(i.ref)); - + }); cmap_cnt_emplace(&countries, "Greenland", 0).ref->second += 20; cmap_cnt_emplace(&countries, "Sweden", 0).ref->second += 20; cmap_cnt_emplace(&countries, "Norway", 0).ref->second += 20; cmap_cnt_emplace(&countries, "Finland", 0).ref->second += 20; - c_FORPAIR (country, health, cmap_cnt, countries) + c_forpair (country, health, cmap_cnt, countries) printf("%s: %d\n", cstr_str(_.country), *_.health); puts(""); } // CVEC PAIR - c_AUTO (cvec_ip, pairs1) { - c_FORLIST (i, ipair_t, {{5, 6}, {3, 4}, {1, 2}, {7, 8}}) - cvec_ip_push_back(&pairs1, *i.ref); + c_auto (cvec_ip, pairs1) { + pairs1 = c_make(cvec_ip, {{5, 6}, {3, 4}, {1, 2}, {7, 8}}); cvec_ip_sort(&pairs1); - c_FOREACH (i, cvec_ip, pairs1) + c_foreach (i, cvec_ip, pairs1) printf("(%d %d) ", i.ref->x, i.ref->y); puts(""); } // CLIST PAIR - c_AUTO (clist_ip, pairs2) { - c_FORLIST (i, ipair_t, {{5, 6}, {3, 4}, {1, 2}, {7, 8}}) - clist_ip_push_back(&pairs2, *i.ref); + c_auto (clist_ip, pairs2) { + pairs2 = c_make(clist_ip, {{5, 6}, {3, 4}, {1, 2}, {7, 8}}); clist_ip_sort(&pairs2); - c_FOREACH (i, clist_ip, pairs2) + c_foreach (i, clist_ip, pairs2) printf("(%d %d) ", i.ref->x, i.ref->y); puts(""); } diff --git a/misc/examples/intrusive.c b/misc/examples/intrusive.c index 20a37055..ce8a3ada 100644 --- a/misc/examples/intrusive.c +++ b/misc/examples/intrusive.c @@ -14,27 +14,27 @@ void printLists(Inner inner, Outer outer) { printf(" inner:"); - c_FOREACH (i, Inner, inner) + c_foreach (i, Inner, inner) printf(" %d", *i.ref); printf("\n outer:"); - c_FOREACH (i, Outer, outer) + c_foreach (i, Outer, outer) printf(" %d", i.ref->value); puts(""); } int main() { - c_AUTO (Outer, outer) + c_auto (Outer, outer) { Inner inner = Inner_init(); // do not destroy, outer will destroy the shared nodes. - c_FORLIST (i, int, {6, 9, 3, 1, 7, 4, 5, 2, 8}) { + c_forlist (i, int, {6, 9, 3, 1, 7, 4, 5, 2, 8}) { Inner_node* node = Outer_push_back(&outer, (Inner_node){0}); node->value = *i.ref; } - c_FOREACH (i, Outer, outer) + c_foreach (i, Outer, outer) Inner_push_node_back(&inner, i.ref); printLists(inner, outer); @@ -46,7 +46,7 @@ int main() puts("Remove odd numbers from inner list"); - c_FOREACH (i, Inner, inner) + c_foreach (i, Inner, inner) if (*i.ref & 1) Inner_unlink_node_after(&inner, i.prev); diff --git a/misc/examples/list.c b/misc/examples/list.c index ced0be32..1eb58802 100644 --- a/misc/examples/list.c +++ b/misc/examples/list.c @@ -10,37 +10,37 @@ int main() { const int n = 2000000; - c_AUTO (clist_fx, list) + c_auto (clist_fx, list) { stc64_t rng = stc64_new(1234); stc64_uniformf_t dist = stc64_uniformf_new(100.0f, n); int m = 0; - c_FORRANGE (n) + c_forrange (n) clist_fx_push_back(&list, stc64_uniformf(&rng, &dist)), ++m; double sum = 0.0; printf("sumarize %d:\n", m); - c_FOREACH (i, clist_fx, list) + c_foreach (i, clist_fx, list) sum += *i.ref; printf("sum %f\n\n", sum); - c_FORWHILE (i, clist_fx, clist_fx_begin(&list), i.index < 10) + c_forwhile (i, clist_fx, clist_fx_begin(&list), i.index < 10) printf("%8d: %10f\n", (int)i.index, *i.ref); puts("sort"); clist_fx_sort(&list); // mergesort O(n*log n) puts("sorted"); - c_FORWHILE (i, clist_fx, clist_fx_begin(&list), i.index < 10) + c_forwhile (i, clist_fx, clist_fx_begin(&list), i.index < 10) printf("%8d: %10f\n", (int)i.index, *i.ref); puts(""); clist_fx_clear(&list); - c_FORLIST (i, int, {10, 20, 30, 40, 30, 50}) + c_forlist (i, int, {10, 20, 30, 40, 30, 50}) clist_fx_push_back(&list, *i.ref); const double* v = clist_fx_get(&list, 30); printf("found: %f\n", *v); - c_FOREACH (i, clist_fx, list) printf(" %g", *i.ref); + c_foreach (i, clist_fx, list) printf(" %g", *i.ref); puts(""); clist_fx_remove(&list, 30); @@ -49,10 +49,10 @@ int main() { clist_fx_push_front(&list, 1964); clist_fx_iter it = clist_fx_begin(&list); printf("Full: "); - c_FOREACH (i, clist_fx, list) + c_foreach (i, clist_fx, list) printf(" %g", *i.ref); printf("\nSubs: "); - c_FOREACH (i, clist_fx, clist_fx_advance(it, 4), clist_fx_end(&list)) + c_foreach (i, clist_fx, clist_fx_advance(it, 4), clist_fx_end(&list)) printf(" %g", *i.ref); puts(""); } diff --git a/misc/examples/list_erase.c b/misc/examples/list_erase.c index 18ad0d16..47f56625 100644 --- a/misc/examples/list_erase.c +++ b/misc/examples/list_erase.c @@ -7,12 +7,9 @@ int main () { - c_WITH (IList L = IList_init(), IList_drop(&L)) + c_with (IList L = c_make(IList, {10, 20, 30, 40, 50}), IList_drop(&L)) { - c_FORLIST (i, int, {10, 20, 30, 40, 50}) - IList_push(&L, *i.ref); - - c_FOREACH (x, IList, L) + c_foreach (x, IList, L) printf("%d ", *x.ref); puts(""); // 10 20 30 40 50 @@ -25,7 +22,7 @@ int main () it = IList_erase_range(&L, it, end); // 10 30 // ^ printf("list contains:"); - c_FOREACH (x, IList, L) + c_foreach (x, IList, L) printf(" %d", *x.ref); puts(""); } diff --git a/misc/examples/list_splice.c b/misc/examples/list_splice.c index 8a5dae76..f2f4946f 100644 --- a/misc/examples/list_splice.c +++ b/misc/examples/list_splice.c @@ -8,7 +8,7 @@ void print_ilist(const char* s, clist_i list) { printf("%s", s); - c_FOREACH (i, clist_i, list) { + c_foreach (i, clist_i, list) { printf(" %d", *i.ref); } puts(""); @@ -16,13 +16,10 @@ void print_ilist(const char* s, clist_i list) int main () { - c_AUTO (clist_i, list1, list2) + c_auto (clist_i, list1, list2) { - c_FORLIST (i, int, {1, 2, 3, 4, 5}) - clist_i_push_back(&list1, *i.ref); - - c_FORLIST (i, int, {10, 20, 30, 40, 50}) - clist_i_push_back(&list2, *i.ref); + list1 = c_make(clist_i, {1, 2, 3, 4, 5}); + list2 = c_make(clist_i, {10, 20, 30, 40, 50}); print_ilist("list1:", list1); print_ilist("list2:", list2); diff --git a/misc/examples/lower_bound.c b/misc/examples/lower_bound.c index 8d048e7c..f492ccaa 100644 --- a/misc/examples/lower_bound.c +++ b/misc/examples/lower_bound.c @@ -9,12 +9,10 @@ int main() { // TEST SORTED VECTOR - c_AUTO (cvec_int, vec) + c_auto (cvec_int, vec) { int key, *res; - - c_FORLIST (i, int, {40, 600, 1, 7000, 2, 500, 30}) - cvec_int_push(&vec, *i.ref); + vec = c_make(cvec_int, {40, 600, 1, 7000, 2, 500, 30}); cvec_int_sort(&vec); @@ -33,19 +31,17 @@ int main() if (it2.ref) printf("Sorted Vec %d: bin. search: %d\n", key, *it2.ref); // 600 - c_FOREACH (i, cvec_int, it1, it2) + c_foreach (i, cvec_int, it1, it2) printf(" %d\n", *i.ref); puts(""); } // TEST SORTED SET - c_AUTO (csset_int, set) + c_auto (csset_int, set) { int key, *res; - - c_FORLIST (i, int, {40, 600, 1, 7000, 2, 500, 30}) - csset_int_push(&set, *i.ref); + set = c_make(csset_int, {40, 600, 1, 7000, 2, 500, 30}); key = 100; res = csset_int_lower_bound(&set, key).ref; @@ -62,7 +58,7 @@ int main() if (it2.ref) printf("Sorted Set %d: find : %d\n", key, *it2.ref); // 600 - c_FOREACH (i, csset_int, it1, it2) + c_foreach (i, csset_int, it1, it2) printf(" %d\n", *i.ref); } } diff --git a/misc/examples/mapmap.c b/misc/examples/mapmap.c index d5fe9c81..cad5e462 100644 --- a/misc/examples/mapmap.c +++ b/misc/examples/mapmap.c @@ -36,7 +36,7 @@ void add(Departments* deps, const char* name, const char* email, const char* dep int contains(Departments* map, const char* name) { int count = 0; - c_FOREACH (i, Departments, *map) + c_foreach (i, Departments, *map) if (People_contains(&i.ref->second, name)) ++count; return count; @@ -44,7 +44,7 @@ int contains(Departments* map, const char* name) int main(void) { - c_AUTO (Departments, map) + c_auto (Departments, map) { add(&map, "Anna Kendro", "[email protected]", "Support"); add(&map, "Terry Dane", "[email protected]", "Development"); @@ -60,8 +60,8 @@ int main(void) add(&map, "Dennis Kay", "[email protected]", "Marketing"); add(&map, "Anne Dickens", "[email protected]", "Development"); - c_FOREACH (i, Departments, map) - c_FORPAIR (name, email, People, i.ref->second) + c_foreach (i, Departments, map) + c_forpair (name, email, People, i.ref->second) printf("%s: %s - %s\n", cstr_str(&i.ref->first), cstr_str(_.name), cstr_str(_.email)); puts(""); diff --git a/misc/examples/mmap.c b/misc/examples/mmap.c index ada30b98..3934cf26 100644 --- a/misc/examples/mmap.c +++ b/misc/examples/mmap.c @@ -18,8 +18,8 @@ void print(const char* lbl, const Multimap mmap) { printf("%s ", lbl); - c_FOREACH (e, Multimap, mmap) { - c_FOREACH (s, clist_str, e.ref->second) + c_foreach (e, Multimap, mmap) { + c_foreach (s, clist_str, e.ref->second) printf("{%d,%s} ", e.ref->first, cstr_str(s.ref)); } puts(""); @@ -33,12 +33,12 @@ void insert(Multimap* mmap, int key, const char* str) int main() { - c_AUTO (Multimap, mmap) + c_auto (Multimap, mmap) { typedef struct {int a; const char* b;} pair; // list-initialize - c_FORLIST (i, pair, {{2, "foo"}, {2, "bar"}, {3, "baz"}, {1, "abc"}, {5, "def"}}) + c_forlist (i, pair, {{2, "foo"}, {2, "bar"}, {3, "baz"}, {1, "abc"}, {5, "def"}}) insert(&mmap, i.ref->a, i.ref->b); print("#1", mmap); @@ -54,7 +54,7 @@ int main() print("#4", mmap); // insert using initialization_list - c_FORLIST (i, pair, {{5, "one"}, {5, "two"}}) + c_forlist (i, pair, {{5, "one"}, {5, "two"}}) insert(&mmap, i.ref->a, i.ref->b); print("#5", mmap); @@ -65,7 +65,7 @@ int main() Multimap_clear(&mmap); - c_FORLIST (i, pair, {{1, "ä"}, {2, "ё"}, {2, "ö"}, {3, "ü"}}) + c_forlist (i, pair, {{1, "ä"}, {2, "ё"}, {2, "ö"}, {3, "ü"}}) insert(&mmap, i.ref->a, i.ref->b); print("#6", mmap); } diff --git a/misc/examples/multidim.c b/misc/examples/multidim.c index e61959ca..3980e6d8 100644 --- a/misc/examples/multidim.c +++ b/misc/examples/multidim.c @@ -8,9 +8,7 @@ using_cspan3(ispan, int); int main() { - cstack_int v = {0}; - c_FORLIST (i, int, {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24}) - cstack_int_push(&v, *i.ref); + cstack_int v = c_make(cstack_int, {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24}); // View data as contiguous memory representing 24 ints ispan ms1 = cspan_from(&v); @@ -44,7 +42,7 @@ int main() } puts("Iterate ss3 flat:"); - c_FOREACH (i, ispan3, ss3) + c_foreach (i, ispan3, ss3) printf(" %d", *i.ref); puts(""); @@ -62,7 +60,7 @@ int main() puts("iterate subspan ms3[1]:"); ispan2 sub = cspan_submd3(&ms3, 1); - c_FOREACH (i, ispan2, sub) + c_foreach (i, ispan2, sub) printf(" %d", *i.ref); puts(""); diff --git a/misc/examples/multimap.c b/misc/examples/multimap.c index ba0bf71b..1d5d259d 100644 --- a/misc/examples/multimap.c +++ b/misc/examples/multimap.c @@ -69,7 +69,7 @@ void OlympicLoc_drop(OlympicLoc* self) { int main() { // Define the multimap with destructor defered to when block is completed. - c_AUTO (csmap_OL, multimap) + c_auto (csmap_OL, multimap) { const clist_OL empty = clist_OL_init(); @@ -85,14 +85,14 @@ int main() clist_OL_push_back(list, loc); } // Sort locations by year for each country. - c_FOREACH (country, csmap_OL, multimap) + c_foreach (country, csmap_OL, multimap) clist_OL_sort(&country.ref->second); // Print the multimap: - c_FOREACH (country, csmap_OL, multimap) + c_foreach (country, csmap_OL, multimap) { // Loop the locations for a country sorted by year - c_FOREACH (loc, clist_OL, country.ref->second) + c_foreach (loc, clist_OL, country.ref->second) printf("%s: %d, %s, %s\n", cstr_str(&country.ref->first), loc.ref->year, cstr_str(&loc.ref->city), diff --git a/misc/examples/music_arc.c b/misc/examples/music_arc.c index fad7ddcf..2a2d24c5 100644 --- a/misc/examples/music_arc.c +++ b/misc/examples/music_arc.c @@ -32,16 +32,16 @@ void Song_drop(Song* s) { void example3() { - c_AUTO (SongVec, vec1, vec2) + c_auto (SongVec, vec1, vec2) { - c_FORLIST (i, Song, { + vec1 = c_make(SongVec, { Song_make("Bob Dylan", "The Times They Are A Changing"), Song_make("Aretha Franklin", "Bridge Over Troubled Water"), Song_make("Thalia", "Entre El Mar y Una Estrella") - }) SongVec_emplace(&vec1, *i.ref); + }); // Share all entries in vec with vec2, except Bob Dylan. - c_FOREACH (s, SongVec, vec1) + c_foreach (s, SongVec, vec1) if (!cstr_equals(&s.ref->get->artist, "Bob Dylan")) SongVec_push(&vec2, SongArc_clone(*s.ref)); @@ -52,9 +52,9 @@ void example3() // SongVec_push(&vec2, SongArc_from(Song_make("Rihanna", "Stay"))); // We now have two vectors with some shared, some unique entries. - c_FORLIST (i, SongVec, {vec1, vec2}) { + c_forlist (i, SongVec, {vec1, vec2}) { puts("VEC:"); - c_FOREACH (s, SongVec, *i.ref) + c_foreach (s, SongVec, *i.ref) printf(" %s - %s, REFS: %ld\n", cstr_str(&s.ref->get->artist), cstr_str(&s.ref->get->title), *s.ref->use_count); diff --git a/misc/examples/new_deq.c b/misc/examples/new_deq.c index df9142e7..39149140 100644 --- a/misc/examples/new_deq.c +++ b/misc/examples/new_deq.c @@ -36,25 +36,25 @@ int point_cmp(const Point* a, const Point* b) { int main() { - c_AUTO (cdeq_i32, vec) + c_auto (cdeq_i32, vec) { cdeq_i32_push_back(&vec, 123); } - c_AUTO (cdeq_float, fvec) + c_auto (cdeq_float, fvec) { cdeq_float_push_back(&fvec, 123.3f); } - c_AUTO (cdeq_pnt, pvec) + c_auto (cdeq_pnt, pvec) { cdeq_pnt_push_back(&pvec, (Point){42, 14}); cdeq_pnt_push_back(&pvec, (Point){32, 94}); cdeq_pnt_push_front(&pvec, (Point){62, 81}); cdeq_pnt_sort(&pvec); - c_FOREACH (i, cdeq_pnt, pvec) + c_foreach (i, cdeq_pnt, pvec) printf(" (%d %d)", i.ref->x, i.ref->y); puts(""); } - c_AUTO (cdeq_str, svec) + c_auto (cdeq_str, svec) { cdeq_str_emplace_back(&svec, "Hello, friend"); } diff --git a/misc/examples/new_list.c b/misc/examples/new_list.c index c5d90ad1..6dbe80b4 100644 --- a/misc/examples/new_list.c +++ b/misc/examples/new_list.c @@ -35,27 +35,27 @@ int point_cmp(const Point* a, const Point* b) { int main() { - c_AUTO (clist_i32, lst) + c_auto (clist_i32, lst) clist_i32_push_back(&lst, 123); - c_AUTO (clist_pnt, plst) { - c_FORLIST (i, Point, {{42, 14}, {32, 94}, {62, 81}}) + c_auto (clist_pnt, plst) { + c_forlist (i, Point, {{42, 14}, {32, 94}, {62, 81}}) clist_pnt_push_back(&plst, *i.ref); clist_pnt_sort(&plst); - c_FOREACH (i, clist_pnt, plst) + c_foreach (i, clist_pnt, plst) printf(" (%d %d)", i.ref->x, i.ref->y); puts(""); } - c_AUTO (clist_float, flst) { - c_FORLIST (i, float, {123.3f, 321.2f, -32.2f, 78.2f}) + c_auto (clist_float, flst) { + c_forlist (i, float, {123.3f, 321.2f, -32.2f, 78.2f}) clist_float_push_back(&flst, *i.ref); - c_FOREACH (i, clist_float, flst) printf(" %g", *i.ref); + c_foreach (i, clist_float, flst) printf(" %g", *i.ref); } - c_AUTO (clist_str, slst) + c_auto (clist_str, slst) clist_str_emplace_back(&slst, "Hello, friend"); } diff --git a/misc/examples/new_map.c b/misc/examples/new_map.c index 9cee987d..a4d5289c 100644 --- a/misc/examples/new_map.c +++ b/misc/examples/new_map.c @@ -42,10 +42,10 @@ int point_cmp(const Point* a, const Point* b) { int main() { - c_AUTO (cmap_int, map) - c_AUTO (cmap_pnt, pmap) - c_AUTO (cmap_str, smap) - c_AUTO (cset_str, sset) + c_auto (cmap_int, map) + c_auto (cmap_pnt, pmap) + c_auto (cmap_str, smap) + c_auto (cset_str, sset) { cmap_int_insert(&map, 123, 321); cmap_int_insert(&map, 456, 654); @@ -53,7 +53,7 @@ int main() pmap = c_make(cmap_pnt, {{{42, 14}, 1}, {{32, 94}, 2}, {{62, 81}, 3}}); - c_FOREACH (i, cmap_pnt, pmap) + c_foreach (i, cmap_pnt, pmap) printf(" (%d, %d: %d)", i.ref->first.x, i.ref->first.y, i.ref->second); puts(""); @@ -68,7 +68,7 @@ int main() "So long", }); - c_FOREACH (i, cset_str, sset) + c_foreach (i, cset_str, sset) printf(" %s\n", cstr_str(i.ref)); } } diff --git a/misc/examples/new_pque.c b/misc/examples/new_pque.c index b3d94c2f..1442f376 100644 --- a/misc/examples/new_pque.c +++ b/misc/examples/new_pque.c @@ -1,55 +1,25 @@ #include <stdio.h> -#define i_val int -#include <stc/cstack.h> -#define i_val int -#include <stc/cpque.h> - struct Point { int x, y; } typedef Point; -int Point_cmp(const Point* a, const Point* b) { - int c = a->x - b->x; - return c ? c : a->y - b->y; -} - +#define i_type PointQ #define i_val Point -#define i_cmp Point_cmp -#define i_tag pnt +#define i_less(a, b) a->x < b->x || a->x == b->x && a->y < b->y #include <stc/cpque.h> int main() { - c_AUTO (cstack_int, istk) - { - cstack_int_push(&istk, 123); - cstack_int_push(&istk, 321); - // print - c_FOREACH (i, cstack_int, istk) - printf(" %d", *i.ref); - puts(""); - } - c_AUTO (cpque_pnt, pque) + c_auto (PointQ, pque) { - cpque_pnt_push(&pque, (Point){23, 80}); - cpque_pnt_push(&pque, (Point){12, 32}); - cpque_pnt_push(&pque, (Point){54, 74}); - cpque_pnt_push(&pque, (Point){12, 62}); + pque = c_make(PointQ, {{23, 80}, {12, 32}, {54, 74}, {12, 62}}); + // print - while (!cpque_pnt_empty(&pque)) { - const cpque_pnt_value *v = cpque_pnt_top(&pque); + for (; !PointQ_empty(&pque); PointQ_pop(&pque)) + { + const Point *v = PointQ_top(&pque); printf(" (%d,%d)", v->x, v->y); - cpque_pnt_pop(&pque); } puts(""); } - c_AUTO (cpque_int, ique) - { - cpque_int_push(&ique, 123); - cpque_int_push(&ique, 321); - // print - for (int i=0; i<cpque_int_size(&ique); ++i) - printf(" %d", ique.data[i]); - puts(""); - } } diff --git a/misc/examples/new_queue.c b/misc/examples/new_queue.c index 5c25a229..7fae90d2 100644 --- a/misc/examples/new_queue.c +++ b/misc/examples/new_queue.c @@ -25,16 +25,16 @@ int main() { stc64_t rng = stc64_new((uint64_t)time(NULL)); stc64_uniform_t dist = stc64_uniform_new(0, n); - c_AUTO (IQ, Q) + c_auto (IQ, Q) { // Push 50'000'000 random numbers onto the queue. - c_FORRANGE (n) + c_forrange (n) IQ_push(&Q, (int)stc64_uniform(&rng, &dist)); // Push or pop on the queue 50 million times printf("befor: size %" c_ZI ", capacity %" c_ZI "\n", IQ_size(&Q), IQ_capacity(&Q)); - c_FORRANGE (n) { + c_forrange (n) { int r = (int)stc64_uniform(&rng, &dist); if (r & 3) IQ_push(&Q, r); diff --git a/misc/examples/new_smap.c b/misc/examples/new_smap.c index 8b1df828..0870ee3d 100644 --- a/misc/examples/new_smap.c +++ b/misc/examples/new_smap.c @@ -42,34 +42,34 @@ int point_cmp(const Point* a, const Point* b) { int main() { - c_AUTO (csmap_int, imap) { + c_auto (csmap_int, imap) { csmap_int_insert(&imap, 123, 321); } - c_AUTO (PMap, pmap) { - c_FORLIST (i, PMap_value, { + c_auto (PMap, pmap) { + pmap = c_make(PMap, { {{42, 14}, 1}, {{32, 94}, 2}, {{62, 81}, 3}, - }) PMap_insert(&pmap, c_PAIR(i.ref)); + }); - c_FORPAIR (p, i, PMap, pmap) + c_forpair (p, i, PMap, pmap) printf(" (%d,%d: %d)", _.p->x, _.p->y, *_.i); puts(""); } - c_AUTO (SMap, smap) { - c_FORLIST (i, SMap_raw, { + c_auto (SMap, smap) { + smap = c_make(SMap, { {"Hello, friend", "this is the mapped value"}, {"The brown fox", "jumped"}, {"This is the time", "for all good things"}, - }) SMap_emplace(&smap, c_PAIR(i.ref)); + }); - c_FORPAIR (i, j, SMap, smap) + c_forpair (i, j, SMap, smap) printf(" (%s: %s)\n", cstr_str(_.i), cstr_str(_.j)); } - c_AUTO (SSet, sset) { + c_auto (SSet, sset) { SSet_emplace(&sset, "Hello, friend"); SSet_emplace(&sset, "Goodbye, foe"); printf("Found? %s\n", SSet_contains(&sset, "Hello, friend") ? "true" : "false"); diff --git a/misc/examples/new_sptr.c b/misc/examples/new_sptr.c index 116827a4..68454970 100644 --- a/misc/examples/new_sptr.c +++ b/misc/examples/new_sptr.c @@ -48,7 +48,7 @@ void Person_drop(Person* p) { int main(void) { - c_AUTO (PersonArc, p, q, r, s) + c_auto (PersonArc, p, q, r, s) { puts("Ex1"); p = PersonArc_from(Person_make("John", "Smiths")); @@ -57,7 +57,7 @@ int main(void) { s = PersonArc_from(Person_clone(*p.get)); // deep copy printf("%s %s: refs %ld\n", cstr_str(&p.get->name), cstr_str(&p.get->last), *p.use_count); } - c_AUTO (IPStack, vec) + c_auto (IPStack, vec) { puts("Ex2"); IPStack_push(&vec, IPtr_from(10)); @@ -66,7 +66,7 @@ int main(void) { IPStack_push(&vec, IPtr_clone(*IPStack_back(&vec))); IPStack_push(&vec, IPtr_clone(*IPStack_front(&vec))); - c_FOREACH (i, IPStack, vec) + c_foreach (i, IPStack, vec) printf(" (%d: refs %ld)", *i.ref->get, *i.ref->use_count); puts(""); } diff --git a/misc/examples/new_vec.c b/misc/examples/new_vec.c index f18bf368..84e4c7b2 100644 --- a/misc/examples/new_vec.c +++ b/misc/examples/new_vec.c @@ -36,10 +36,10 @@ int point_cmp(const Point* a, const Point* b) { int main() { - c_AUTO (cvec_i32, vec) - c_AUTO (cvec_float, fvec) - c_AUTO (cvec_pnt, pvec) - c_AUTO (cvec_str, svec) + c_auto (cvec_i32, vec) + c_auto (cvec_float, fvec) + c_auto (cvec_pnt, pvec) + c_auto (cvec_str, svec) { cvec_i32_push(&vec, 123); cvec_float_push(&fvec, 123.3f); @@ -49,7 +49,7 @@ int main() cvec_pnt_push(&pvec, (Point){62, 81}); cvec_pnt_push(&pvec, (Point){32, 91}); cvec_pnt_sort(&pvec); - c_FOREACH (i, cvec_pnt, pvec) + c_foreach (i, cvec_pnt, pvec) printf(" (%d %d)", i.ref->x, i.ref->y); puts(""); diff --git a/misc/examples/person_arc.c b/misc/examples/person_arc.c index 4d9c2a51..a7bf2a6f 100644 --- a/misc/examples/person_arc.c +++ b/misc/examples/person_arc.c @@ -39,8 +39,8 @@ void Person_drop(Person* p) { int main() { - c_AUTO (Persons, vec) - c_AUTO (PSPtr, p, q) + c_auto (Persons, vec) + c_auto (PSPtr, p, q) { p = PSPtr_from(Person_make("Laura", "Palmer")); @@ -57,15 +57,15 @@ int main() Persons_emplace(&vec, Person_make("Dale", "Cooper")); // Clone/share p and q to the vector - c_FORLIST (i, PSPtr, {p, q}) + c_forlist (i, PSPtr, {p, q}) Persons_push(&vec, PSPtr_clone(*i.ref)); - c_FOREACH (i, Persons, vec) + c_foreach (i, Persons, vec) printf("%s %s\n", cstr_str(&i.ref->get->name), cstr_str(&i.ref->get->last)); puts(""); // Look-up Audrey! - c_WITH (Person a = Person_make("Audrey", "Home"), Person_drop(&a)) { + c_with (Person a = Person_make("Audrey", "Home"), Person_drop(&a)) { const PSPtr *v = Persons_get(&vec, a); if (v) printf("found: %s %s\n", cstr_str(&v->get->name), cstr_str(&v->get->last)); } diff --git a/misc/examples/phonebook.c b/misc/examples/phonebook.c index d0bc5b3a..ec9c5876 100644 --- a/misc/examples/phonebook.c +++ b/misc/examples/phonebook.c @@ -32,28 +32,20 @@ void print_phone_book(cmap_str phone_book) { - c_FOREACH (i, cmap_str, phone_book) + c_foreach (i, cmap_str, phone_book) printf("%s\t- %s\n", cstr_str(&i.ref->first), cstr_str(&i.ref->second)); } int main(int argc, char **argv) { - c_AUTO (cset_str, names) { - c_FORLIST (i, const char*, {"Hello", "Cool", "True"}) - cset_str_emplace(&names, *i.ref); - - c_FOREACH (i, cset_str, names) - printf("%s ", cstr_str(i.ref)); - puts(""); - } - - c_AUTO (cmap_str, phone_book) { - c_FORLIST (i, cmap_str_raw, { + c_auto (cmap_str, phone_book) + { + phone_book = c_make(cmap_str, { {"Lilia Friedman", "(892) 670-4739"}, {"Tariq Beltran", "(489) 600-7575"}, {"Laiba Juarez", "(303) 885-5692"}, {"Elliott Mooney", "(945) 616-4482"}, - }) cmap_str_emplace(&phone_book, c_PAIR(i.ref)); + }); printf("Phone book:\n"); print_phone_book(phone_book); diff --git a/misc/examples/prime.c b/misc/examples/prime.c index 11c1f1c7..4a3b8498 100644 --- a/misc/examples/prime.c +++ b/misc/examples/prime.c @@ -30,7 +30,7 @@ int main(void) printf("computing prime numbers up to %" c_ZI "\n", n); clock_t t1 = clock(); - c_WITH (cbits primes = sieveOfEratosthenes(n + 1), cbits_drop(&primes)) { + c_with (cbits primes = sieveOfEratosthenes(n + 1), cbits_drop(&primes)) { puts("done"); intptr_t np = cbits_count(&primes); clock_t t2 = clock(); @@ -38,13 +38,13 @@ int main(void) printf("number of primes: %" c_ZI ", time: %f\n", np, (float)(t2 - t1) / (float)CLOCKS_PER_SEC); puts("Show all the primes in the range [2, 1000):"); printf("2"); - c_FORRANGE (i, 3, 1000, 2) + c_forrange (i, 3, 1000, 2) if (cbits_test(&primes, i>>1)) printf(" %lld", i); puts(""); puts("Show the last 50 primes using a temporary crange generator:"); crange R = crange_make(n - 1, 0, -2); - c_FORFILTER (i, crange, R + c_forfilter (i, crange, R , cbits_test(&primes, *i.ref>>1) , c_flt_take(i, 50)) { printf("%lld ", *i.ref); diff --git a/misc/examples/printspan.c b/misc/examples/printspan.c index 82b54367..c7b0c609 100644 --- a/misc/examples/printspan.c +++ b/misc/examples/printspan.c @@ -16,16 +16,16 @@ using_cspan(intspan, int, 1); void printMe(intspan container) { printf("%d:", (int)cspan_size(&container)); - c_FOREACH (e, intspan, container) printf(" %d", *e.ref); + c_foreach (e, intspan, container) printf(" %d", *e.ref); puts(""); } int main() { - c_AUTO (cvec_int, vec) - c_AUTO (cstack_int, stk) - c_AUTO (cdeq_int, deq) - c_AUTO (cset_str, set) + c_auto (cvec_int, vec) + c_auto (cstack_int, stk) + c_auto (cdeq_int, deq) + c_auto (cset_str, set) { intspan sp1 = cspan_make(intspan, {1, 2}); printMe( sp1 ); @@ -36,7 +36,7 @@ int main() intspan sp2 = cspan_from_array(arr); printMe( (intspan)cspan_subspan(&sp2, 1, 4) ); - c_FORLIST (i, int, {1, 2, 3, 4, 5}) + c_forlist (i, int, {1, 2, 3, 4, 5}) cvec_int_push(&vec, *i.ref); printMe( (intspan)cspan_from(&vec) ); @@ -50,7 +50,7 @@ int main() set = c_make(cset_str, {"1", "2", "3", "4", "5", "6", "7", "8", "9"}); printf("%d:", (int)cset_str_size(&set)); - c_FOREACH (e, cset_str, set) + c_foreach (e, cset_str, set) printf(" %s", cstr_str(e.ref)); puts(""); } diff --git a/misc/examples/priority.c b/misc/examples/priority.c index f39c0634..0a1d419b 100644 --- a/misc/examples/priority.c +++ b/misc/examples/priority.c @@ -12,22 +12,22 @@ int main() { intptr_t N = 10000000; stc64_t rng = stc64_new((uint64_t)time(NULL)); stc64_uniform_t dist = stc64_uniform_new(0, N * 10); - c_AUTO (cpque_i, heap) + c_auto (cpque_i, heap) { // Push ten million random numbers to priority queue printf("Push %" c_ZI " numbers\n", N); - c_FORRANGE (N) + c_forrange (N) cpque_i_push(&heap, stc64_uniform(&rng, &dist)); // push some negative numbers too. - c_FORLIST (i, int, {-231, -32, -873, -4, -343}) + c_forlist (i, int, {-231, -32, -873, -4, -343}) cpque_i_push(&heap, *i.ref); - c_FORRANGE (N) + c_forrange (N) cpque_i_push(&heap, stc64_uniform(&rng, &dist)); puts("Extract the hundred smallest."); - c_FORRANGE (100) { + c_forrange (100) { printf("%" PRId64 " ", *cpque_i_top(&heap)); cpque_i_pop(&heap); } diff --git a/misc/examples/queue.c b/misc/examples/queue.c index ee537b58..4064cc77 100644 --- a/misc/examples/queue.c +++ b/misc/examples/queue.c @@ -11,15 +11,15 @@ int main() { stc64_t rng = stc64_new(1234); dist = stc64_uniform_new(0, n); - c_AUTO (cqueue_i, queue) + c_auto (cqueue_i, queue) { // Push ten million random numbers onto the queue. - c_FORRANGE (n) + c_forrange (n) cqueue_i_push(&queue, (int)stc64_uniform(&rng, &dist)); // Push or pop on the queue ten million times printf("%d\n", n); - c_FORRANGE (n) { // forrange uses initial n only. + c_forrange (n) { // forrange uses initial n only. int r = (int)stc64_uniform(&rng, &dist); if (r & 1) ++n, cqueue_i_push(&queue, r); diff --git a/misc/examples/random.c b/misc/examples/random.c index fc4576dd..e27279a0 100644 --- a/misc/examples/random.c +++ b/misc/examples/random.c @@ -14,7 +14,7 @@ int main() printf("Compare speed of full and unbiased ranged random numbers...\n"); sum = 0; before = clock(); - c_FORRANGE (N) { + c_forrange (N) { sum += (uint32_t)stc64_rand(&rng); } diff = clock() - before; @@ -25,7 +25,7 @@ int main() rng = stc64_new(seed); sum = 0; before = clock(); - c_FORRANGE (N) { + c_forrange (N) { sum += stc64_uniform(&rng, &dist1); // unbiased } diff = clock() - before; @@ -35,7 +35,7 @@ int main() sum = 0; rng = stc64_new(seed); before = clock(); - c_FORRANGE (N) { + c_forrange (N) { sum += (int64_t)(stc64_rand(&rng) % (range + 1)); // biased } diff = clock() - before; diff --git a/misc/examples/rawptr_elements.c b/misc/examples/rawptr_elements.c index 6fb9208c..4b3d2056 100644 --- a/misc/examples/rawptr_elements.c +++ b/misc/examples/rawptr_elements.c @@ -28,8 +28,8 @@ typedef int64_t inttype; int main() { - c_AUTO (SIPtrMap, map, m1) - c_AUTO (SIBoxMap, m2) + c_auto (SIPtrMap, map, m1) + c_auto (SIBoxMap, m2) { printf("\nMap with pointer elements:\n"); SIPtrMap_insert(&map, cstr_from("testing"), c_new(inttype, 1)); @@ -41,14 +41,14 @@ int main() m1 = SIPtrMap_clone(map); - c_FORPAIR (name, number, SIPtrMap, m1) + c_forpair (name, number, SIPtrMap, m1) printf("%s: %" PRId64 "\n", cstr_str(_.name), **_.number); puts("\nIBox map:"); SIBoxMap_insert(&m2, cstr_from("Hello"), IBox_make(123)); SIBoxMap_emplace(&m2, "World", 999); - c_FORPAIR (name, number, SIBoxMap, m2) + c_forpair (name, number, SIBoxMap, m2) printf("%s: %d\n", cstr_str(_.name), *_.number->get); puts(""); } diff --git a/misc/examples/read.c b/misc/examples/read.c index ee5dd377..4efdcfeb 100644 --- a/misc/examples/read.c +++ b/misc/examples/read.c @@ -6,8 +6,8 @@ cvec_str read_file(const char* name) { cvec_str vec = cvec_str_init(); - c_WITH (FILE* f = fopen(name, "r"), fclose(f)) - c_WITH (cstr line = cstr_NULL, cstr_drop(&line)) + c_with (FILE* f = fopen(name, "r"), fclose(f)) + c_with (cstr line = cstr_NULL, cstr_drop(&line)) while (cstr_getline(&line, f)) cvec_str_push(&vec, cstr_clone(line)); return vec; @@ -16,8 +16,8 @@ cvec_str read_file(const char* name) int main() { int n = 0; - c_WITH (cvec_str vec = read_file(__FILE__), cvec_str_drop(&vec)) - c_FOREACH (i, cvec_str, vec) + c_with (cvec_str vec = read_file(__FILE__), cvec_str_drop(&vec)) + c_foreach (i, cvec_str, vec) printf("%5d: %s\n", ++n, cstr_str(i.ref)); if (errno) diff --git a/misc/examples/regex1.c b/misc/examples/regex1.c index ae00b71c..c311e455 100644 --- a/misc/examples/regex1.c +++ b/misc/examples/regex1.c @@ -7,8 +7,8 @@ int main(int argc, char* argv[]) printf("Usage: regex1 -i\n"); return 0; } - c_AUTO (cstr, input) - c_AUTO (cregex, float_expr) + c_auto (cstr, input) + c_auto (cregex, float_expr) { int res = cregex_compile(&float_expr, "^[+-]?[0-9]+((\\.[0-9]*)?|\\.[0-9]+)$"); // Until "q" is given, ask for another number diff --git a/misc/examples/regex2.c b/misc/examples/regex2.c index 296d4135..4c58f3ba 100644 --- a/misc/examples/regex2.c +++ b/misc/examples/regex2.c @@ -15,8 +15,8 @@ int main() {"\\p{Han}+", "This is Han: 王明:那是杂志吗?"}, }; - c_AUTO (cregex, re) - c_FORRANGE (i, c_ARRAYLEN(s)) + c_auto (cregex, re) + c_forrange (i, c_ARRAYLEN(s)) { int res = cregex_compile(&re, s[i].pattern); if (res < 0) { @@ -25,8 +25,8 @@ int main() } printf("\ninput: %s\n", s[i].input); - c_FORMATCH (j, &re, s[i].input) { - c_FORRANGE (k, cregex_captures(&re)) + c_formatch (j, &re, s[i].input) { + c_forrange (k, cregex_captures(&re)) printf(" submatch %lld: %.*s\n", k, c_SVARG(j.match[k])); } } diff --git a/misc/examples/regex_match.c b/misc/examples/regex_match.c index b7d6ed3a..dcc19c1f 100644 --- a/misc/examples/regex_match.c +++ b/misc/examples/regex_match.c @@ -13,19 +13,19 @@ int main() " Boltzmann const: 1.38064852E-23, is very small." " Bohrradius is 5.29177210903e-11, and Avogadros number is 6.02214076e23."; - c_AUTO (cregex, re) - c_AUTO (cstack_float, vec) - c_AUTO (cstr, nums) + c_auto (cregex, re) + c_auto (cstack_float, vec) + c_auto (cstr, nums) { const char* pattern = "[+-]?([0-9]*\\.)?\\d+([Ee][+-]?\\d+)?"; int res = cregex_compile(&re, pattern); printf("%d: %s\n", res, pattern); // extract and convert all numbers in str to floats - c_FORMATCH (i, &re, str) + c_formatch (i, &re, str) cstack_float_push(&vec, (float)atof(i.match[0].str)); - c_FOREACH (i, cstack_float, vec) + c_foreach (i, cstack_float, vec) printf(" %g\n", *i.ref); // extracts the numbers only to a comma separated string. diff --git a/misc/examples/regex_replace.c b/misc/examples/regex_replace.c index ec38ca56..ebb57488 100644 --- a/misc/examples/regex_replace.c +++ b/misc/examples/regex_replace.c @@ -17,7 +17,7 @@ int main() const char* pattern = "\\b(\\d\\d\\d\\d)-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])\\b"; const char* input = "start date: 2015-12-31, end date: 2022-02-28"; - c_AUTO (cstr, str) + c_auto (cstr, str) { printf("INPUT: %s\n", input); @@ -34,9 +34,9 @@ int main() printf("brack: %s\n", cstr_str(&str)); /* Shows how to compile RE separately */ - c_WITH (cregex re = cregex_from(pattern), cregex_drop(&re)) { + c_with (cregex re = cregex_from(pattern), cregex_drop(&re)) { if (cregex_captures(&re) == 0) - continue; /* break c_WITH */ + continue; /* break c_with */ /* European date format. */ cstr_take(&str, cregex_replace(&re, input, "$3.$2.$1")); printf("euros: %s\n", cstr_str(&str)); diff --git a/misc/examples/replace.c b/misc/examples/replace.c index ca305ecd..15cf3bae 100644 --- a/misc/examples/replace.c +++ b/misc/examples/replace.c @@ -11,7 +11,7 @@ int main () // Ustring positions: 0123456789*123456789*12345 cstr s = cstr_from(base); // "this is a test string." cstr m = cstr_clone(s); - c_DEFER (cstr_drop(&s), cstr_drop(&m)) { + c_defer (cstr_drop(&s), cstr_drop(&m)) { cstr_append(&m, cstr_str(&m)); cstr_append(&m, cstr_str(&m)); printf("%s\n", cstr_str(&m)); diff --git a/misc/examples/shape.c b/misc/examples/shape.c index f71704d9..d290fb4d 100644 --- a/misc/examples/shape.c +++ b/misc/examples/shape.c @@ -111,7 +111,7 @@ static void Polygon_draw(const Shape* shape) { const Polygon* self = c_dyn_cast(Polygon, shape); printf("Polygon :"); - c_FOREACH (i, PointVec, self->points) + c_foreach (i, PointVec, self->points) printf(" (%g,%g)", i.ref->x, i.ref->y); puts(""); } @@ -138,23 +138,23 @@ void testShape(const Shape* shape) int main(void) { - c_AUTO (Shapes, shapes) + c_auto (Shapes, shapes) { Triangle* tri1 = c_new(Triangle, Triangle_from((Point){5, 7}, (Point){12, 7}, (Point){12, 20})); Polygon* pol1 = c_new(Polygon, Polygon_init()); Polygon* pol2 = c_new(Polygon, Polygon_init()); - c_FORLIST (i, Point, {{50, 72}, {123, 73}, {127, 201}, {828, 333}}) + c_forlist (i, Point, {{50, 72}, {123, 73}, {127, 201}, {828, 333}}) Polygon_addPoint(pol1, *i.ref); - c_FORLIST (i, Point, {{5, 7}, {12, 7}, {12, 20}, {82, 33}, {17, 56}}) + c_forlist (i, Point, {{5, 7}, {12, 7}, {12, 20}, {82, 33}, {17, 56}}) Polygon_addPoint(pol2, *i.ref); Shapes_push(&shapes, &tri1->shape); Shapes_push(&shapes, &pol1->shape); Shapes_push(&shapes, &pol2->shape); - c_FOREACH (i, Shapes, shapes) + c_foreach (i, Shapes, shapes) testShape(*i.ref); } } diff --git a/misc/examples/sidebyside.cpp b/misc/examples/sidebyside.cpp index 11328668..80c934a4 100644 --- a/misc/examples/sidebyside.cpp +++ b/misc/examples/sidebyside.cpp @@ -25,13 +25,13 @@ int main() { std::cout << std::endl; } - c_AUTO (IIMap, hist) + c_auto (IIMap, hist) { IIMap_insert(&hist, 12, 100).ref->second += 1; IIMap_insert(&hist, 13, 100).ref->second += 1; IIMap_insert(&hist, 12, 100).ref->second += 1; - c_FOREACH (i, IIMap, hist) + c_foreach (i, IIMap, hist) printf("%d, %d\n", i.ref->first, i.ref->second); puts(""); } @@ -45,12 +45,12 @@ int main() { std::cout << std::endl; } - c_AUTO (SIMap, food) + c_auto (SIMap, food) { - c_FORLIST (i, SIMap_raw, {{"burger", 5}, {"pizza", 12}, {"steak", 15}}) + c_forlist (i, SIMap_raw, {{"burger", 5}, {"pizza", 12}, {"steak", 15}}) SIMap_emplace(&food, c_PAIR(i.ref)); - c_FOREACH (i, SIMap, food) + c_foreach (i, SIMap, food) printf("%s, %d\n", cstr_str(&i.ref->first), i.ref->second); puts(""); } diff --git a/misc/examples/sorted_map.c b/misc/examples/sorted_map.c index 47509edb..c4a05c76 100644 --- a/misc/examples/sorted_map.c +++ b/misc/examples/sorted_map.c @@ -9,7 +9,7 @@ int main() { // empty map containers - c_AUTO (csmap_int, gquiz1, gquiz2) + c_auto (csmap_int, gquiz1, gquiz2) { // insert elements in random order csmap_int_insert(&gquiz1, 2, 30); @@ -22,17 +22,17 @@ int main() // printing map gquiz1 printf("\nThe map gquiz1 is :\n\tKEY\tELEMENT\n"); - c_FOREACH (itr, csmap_int, gquiz1) + c_foreach (itr, csmap_int, gquiz1) printf("\t%d\t%d\n", itr.ref->first, itr.ref->second); printf("\n"); // assigning the elements from gquiz1 to gquiz2 - c_FOREACH (i, csmap_int, gquiz1) + c_foreach (i, csmap_int, gquiz1) csmap_int_insert(&gquiz2, i.ref->first, i.ref->second); // print all elements of the map gquiz2 printf("\nThe map gquiz2 is :\n\tKEY\tELEMENT\n"); - c_FOREACH (itr, csmap_int, gquiz2) + c_foreach (itr, csmap_int, gquiz2) printf("\t%d\t%d\n", itr.ref->first, itr.ref->second); printf("\n"); @@ -41,7 +41,7 @@ int main() printf("\tKEY\tELEMENT\n"); csmap_int_erase_range(&gquiz2, csmap_int_begin(&gquiz2), csmap_int_find(&gquiz2, 3)); - c_FOREACH (itr, csmap_int, gquiz2) + c_foreach (itr, csmap_int, gquiz2) printf("\t%d\t%d\n", itr.ref->first, itr.ref->second); printf("\n"); @@ -49,7 +49,7 @@ int main() int num = csmap_int_erase(&gquiz2, 4); printf("\ngquiz2.erase(4) : %d removed\n", num); printf("\tKEY\tELEMENT\n"); - c_FOREACH (itr, csmap_int, gquiz2) + c_foreach (itr, csmap_int, gquiz2) printf("\t%d\t%d\n", itr.ref->first, itr.ref->second); printf("\n"); diff --git a/misc/examples/splitstr.c b/misc/examples/splitstr.c index 43309634..4705696c 100644 --- a/misc/examples/splitstr.c +++ b/misc/examples/splitstr.c @@ -5,15 +5,15 @@ int main() { - puts("Split with c_FORTOKEN (csview):"); + puts("Split with c_fortoken (csview):"); - c_FORTOKEN (i, "Hello World C99!", " ") + c_fortoken (i, "Hello World C99!", " ") printf("'%.*s'\n", c_SVARG(i.token)); - puts("\nSplit with c_FORMATCH (regex):"); + puts("\nSplit with c_formatch (regex):"); - c_WITH (cregex re = cregex_from("[^ ]+"), cregex_drop(&re)) - c_FORMATCH (i, &re, " Hello World C99! ") + c_with (cregex re = cregex_from("[^ ]+"), cregex_drop(&re)) + c_formatch (i, &re, " Hello World C99! ") printf("'%.*s'\n", c_SVARG(i.match[0])); } diff --git a/misc/examples/sso_map.c b/misc/examples/sso_map.c index 0841a316..128cf50d 100644 --- a/misc/examples/sso_map.c +++ b/misc/examples/sso_map.c @@ -5,11 +5,11 @@ int main() { - c_AUTO (cmap_str, m) { + c_auto (cmap_str, m) { cmap_str_emplace(&m, "Test short", "This is a short string"); cmap_str_emplace(&m, "Test long ", "This is a longer string"); - c_FORPAIR (k, v, cmap_str, m) + c_forpair (k, v, cmap_str, m) printf("%s: '%s' Len=%" c_ZI ", Is long: %s\n", cstr_str(_.k), cstr_str(_.v), cstr_size(_.v), cstr_is_long(_.v) ? "true" : "false"); diff --git a/misc/examples/stack.c b/misc/examples/stack.c index 86099607..50dc8eb7 100644 --- a/misc/examples/stack.c +++ b/misc/examples/stack.c @@ -11,18 +11,18 @@ #include <stc/cstack.h> int main() { - c_AUTO (cstack_i, stack) - c_AUTO (cstack_c, chars) + c_auto (cstack_i, stack) + c_auto (cstack_c, chars) { - c_FORRANGE (i, 101) + c_forrange (i, 101) cstack_i_push(&stack, (int)(i*i)); printf("%d\n", *cstack_i_top(&stack)); - c_FORRANGE (i, 90) + c_forrange (i, 90) cstack_i_pop(&stack); - c_FOREACH (i, cstack_i, stack) + c_foreach (i, cstack_i, stack) printf(" %d", *i.ref); puts(""); printf("top: %d\n", *cstack_i_top(&stack)); diff --git a/misc/examples/sview_split.c b/misc/examples/sview_split.c index 77caf640..2bb7aaee 100644 --- a/misc/examples/sview_split.c +++ b/misc/examples/sview_split.c @@ -12,7 +12,7 @@ int main() printf("%.*s, %.*s, %.*s\n", c_SVARG(year), c_SVARG(month), c_SVARG(day)); - c_AUTO (cstr, y, m, d) { + c_auto (cstr, y, m, d) { y = cstr_from_sv(year), m = cstr_from_sv(month), d = cstr_from_sv(day); printf("%s, %s, %s\n", cstr_str(&y), cstr_str(&m), cstr_str(&d)); } diff --git a/misc/examples/unordered_set.c b/misc/examples/unordered_set.c index bf054b88..f9221b21 100644 --- a/misc/examples/unordered_set.c +++ b/misc/examples/unordered_set.c @@ -7,7 +7,7 @@ int main() { // declaring set for storing string data-type - c_AUTO (cset_str, stringSet) + c_auto (cset_str, stringSet) { // inserting various string, same string will be stored // once in set @@ -36,7 +36,7 @@ int main() // now iterating over whole set and printing its // content printf("All elements :\n"); - c_FOREACH (itr, cset_str, stringSet) + c_foreach (itr, cset_str, stringSet) printf("%s\n", cstr_str(itr.ref)); } } diff --git a/misc/examples/utf8replace_c.c b/misc/examples/utf8replace_c.c index 035c5b00..adb8c042 100644 --- a/misc/examples/utf8replace_c.c +++ b/misc/examples/utf8replace_c.c @@ -1,7 +1,9 @@ #include <stc/cstr.h> -int main() { - c_AUTO (cstr, hello, str) { +int main() +{ + c_auto (cstr, hello, str) + { hello = cstr_lit("hell😀 w😀rld"); printf("%s\n", cstr_str(&hello)); @@ -13,7 +15,7 @@ int main() { ); printf("%s\n", cstr_str(&hello)); - c_FOREACH (c, cstr, hello) + c_foreach (c, cstr, hello) printf("%.*s,", c_SVARG(c.u8.chr)); str = cstr_lit("scooby, dooby doo"); diff --git a/misc/examples/vikings.c b/misc/examples/vikings.c index 86d60519..7a21d0a5 100644 --- a/misc/examples/vikings.c +++ b/misc/examples/vikings.c @@ -50,7 +50,7 @@ static inline RViking Viking_toraw(const Viking* vp) { int main() { - c_AUTO (Vikings, vikings) { + c_auto (Vikings, vikings) { Vikings_emplace(&vikings, (RViking){"Einar", "Norway"}, 20); Vikings_emplace(&vikings, (RViking){"Olaf", "Denmark"}, 24); Vikings_emplace(&vikings, (RViking){"Harald", "Iceland"}, 12); @@ -59,7 +59,7 @@ int main() Vikings_value* v = Vikings_get_mut(&vikings, (RViking){"Einar", "Norway"}); v->second += 3; // add 3 hp points to Einar - c_FORPAIR (vk, hp, Vikings, vikings) { + c_forpair (vk, hp, Vikings, vikings) { printf("%s of %s has %d hp\n", cstr_str(&_.vk->name), cstr_str(&_.vk->country), *_.hp); } } diff --git a/misc/examples/words.c b/misc/examples/words.c index b945092f..f097a991 100644 --- a/misc/examples/words.c +++ b/misc/examples/words.c @@ -10,19 +10,19 @@ int main1() { - c_AUTO (cvec_str, words) - c_AUTO (cmap_str, word_map) + c_auto (cvec_str, words) + c_auto (cmap_str, word_map) { - c_FORLIST (i, const char*, { + words = c_make(cvec_str, { "this", "sentence", "is", "not", "a", "sentence", "this", "sentence", "is", "a", "hoax" - }) cvec_str_emplace_back(&words, *i.ref); + }); - c_FOREACH (w, cvec_str, words) { + c_foreach (w, cvec_str, words) { cmap_str_emplace(&word_map, cstr_str(w.ref), 0).ref->second += 1; } - c_FOREACH (i, cmap_str, word_map) { + c_foreach (i, cmap_str, word_map) { printf("%d occurrences of word '%s'\n", i.ref->second, cstr_str(&i.ref->first)); } |
