summaryrefslogtreecommitdiffhomepage
path: root/misc/examples
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2023-02-08 16:16:49 +0100
committerTyge Løvset <[email protected]>2023-02-08 17:18:24 +0100
commitc4441f5fc665194fbd7a894a67a64a08c3beac42 (patch)
tree82f231b6e8fcb75625166f98aa785baaa265a3d6 /misc/examples
parent673dd5319a488d4b702b94dd9aeda4e497ae4fbc (diff)
downloadSTC-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')
-rw-r--r--misc/examples/arc_containers.c12
-rw-r--r--misc/examples/arc_demo.c16
-rw-r--r--misc/examples/arcvec_erase.c11
-rw-r--r--misc/examples/astar.c12
-rw-r--r--misc/examples/birthday.c12
-rw-r--r--misc/examples/bits.c16
-rw-r--r--misc/examples/bits2.c6
-rw-r--r--misc/examples/books.c6
-rw-r--r--misc/examples/box.c8
-rw-r--r--misc/examples/box2.c6
-rw-r--r--misc/examples/city.c39
-rw-r--r--misc/examples/complex.c2
-rw-r--r--misc/examples/convert.c22
-rw-r--r--misc/examples/csmap_erase.c14
-rw-r--r--misc/examples/csmap_find.c11
-rw-r--r--misc/examples/csmap_insert.c25
-rw-r--r--misc/examples/csset_erase.c13
-rw-r--r--misc/examples/cstr_match.c2
-rw-r--r--misc/examples/demos.c24
-rw-r--r--misc/examples/forfilter.c28
-rw-r--r--misc/examples/forloops.c34
-rw-r--r--misc/examples/functor.c10
-rw-r--r--misc/examples/gauss1.c12
-rw-r--r--misc/examples/gauss2.c8
-rw-r--r--misc/examples/hashmap.c4
-rw-r--r--misc/examples/inits.c32
-rw-r--r--misc/examples/intrusive.c12
-rw-r--r--misc/examples/list.c18
-rw-r--r--misc/examples/list_erase.c9
-rw-r--r--misc/examples/list_splice.c11
-rw-r--r--misc/examples/lower_bound.c16
-rw-r--r--misc/examples/mapmap.c8
-rw-r--r--misc/examples/mmap.c12
-rw-r--r--misc/examples/multidim.c8
-rw-r--r--misc/examples/multimap.c8
-rw-r--r--misc/examples/music_arc.c12
-rw-r--r--misc/examples/new_deq.c10
-rw-r--r--misc/examples/new_list.c16
-rw-r--r--misc/examples/new_map.c12
-rw-r--r--misc/examples/new_pque.c46
-rw-r--r--misc/examples/new_queue.c6
-rw-r--r--misc/examples/new_smap.c20
-rw-r--r--misc/examples/new_sptr.c6
-rw-r--r--misc/examples/new_vec.c10
-rw-r--r--misc/examples/person_arc.c10
-rw-r--r--misc/examples/phonebook.c18
-rw-r--r--misc/examples/prime.c6
-rw-r--r--misc/examples/printspan.c14
-rw-r--r--misc/examples/priority.c10
-rw-r--r--misc/examples/queue.c6
-rw-r--r--misc/examples/random.c6
-rw-r--r--misc/examples/rawptr_elements.c8
-rw-r--r--misc/examples/read.c8
-rw-r--r--misc/examples/regex1.c4
-rw-r--r--misc/examples/regex2.c8
-rw-r--r--misc/examples/regex_match.c10
-rw-r--r--misc/examples/regex_replace.c6
-rw-r--r--misc/examples/replace.c2
-rw-r--r--misc/examples/shape.c10
-rw-r--r--misc/examples/sidebyside.cpp10
-rw-r--r--misc/examples/sorted_map.c12
-rw-r--r--misc/examples/splitstr.c10
-rw-r--r--misc/examples/sso_map.c4
-rw-r--r--misc/examples/stack.c10
-rw-r--r--misc/examples/sview_split.c2
-rw-r--r--misc/examples/unordered_set.c4
-rw-r--r--misc/examples/utf8replace_c.c8
-rw-r--r--misc/examples/vikings.c4
-rw-r--r--misc/examples/words.c12
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));
}