-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexample.c
More file actions
90 lines (73 loc) · 2.39 KB
/
example.c
File metadata and controls
90 lines (73 loc) · 2.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#define CORE_IMPLEMENTATION
#include "core.h"
int main(void) {
/*hashmap*/
core_Hashmap(int) hm = {0};
core_Arena a = {0};
char sym[7];
int i;
CORE_DEFER(hashmap_cleanup) {
core_arena_free(&a);
}
core_hashmap_set(&hm, &a, "foo", 1);
core_hashmap_set(&hm, &a, "bapp", 1);
core_hashmap_set(&hm, &a, "bop", 1);
core_hashmap_set(&hm, &a, "boop", 4);
assert(*core_hashmap_get(&hm, "foo") == 1);
assert(!core_hashmap_get(&hm, "bar"));
assert(*core_hashmap_get(&hm, "boop") == 4);
for(i = 0; i < 20; ++i) {
core_gensym(sym, sizeof(sym));
core_hashmap_set(&hm, &a, sym, rand());
}
/* Iterate through all values */
CORE_DEFERRED(hashmap_cleanup);
/*file_read_all*/
{
core_Arena arena = {0};
char * contents = core_file_read_all_arena(&arena, "example.c");
/* assert(contents); */
(void)contents;
/*printf("%s", contents);*/
core_arena_free(&arena);
}
{
core_Arena arena = {0};
core_Hashmap(int) h = {0};
char buf[8];
for(i = 0; i < 200; ++i) {
int val = rand();
core_gensym(buf, sizeof(buf));
core_hashmap_set(&h, &arena, buf, val);
}
core_hashmap_set(&h, &arena, "urmom", 69);
assert(core_hashmap_get(&h, "urmom") != NULL);
assert(*core_hashmap_get(&h, "urmom") == 69);
for(i = 0; i < (long)h.keys.len; ++i) {
/* printf("%s = %d,\n", h.keys.items[i], h.values.items[i]); */
}
core_arena_free(&arena);
}
{
core_Arena arena = {0};
core_Sexpr * s = core_sexpr_read(&arena, "./data.sexpr");
assert(s);
core_sexpr_format("the car is '~a' and the cdr is '~a'\n",
core_sexpr_car(core_sexpr_car(s)),
core_sexpr_cdr(core_sexpr_car(s)));
core_arena_free(&arena);
}
/* { */
/* core_Arena arena = {0}; */
/* core_Symbols syms = {0}; */
/* int line = 1; */
/* FILE * fp = fopen("data.sexpr", "r"); */
/* core_Sexpr * sexpr; */
/* assert(fp); */
/* sexpr = core_sexpr_read(&arena, fp, &syms, "data.sexpr", &line, stderr); */
/* core_sexpr_fprint(stdout, sexpr, &syms); */
/* fclose(fp); */
/* core_arena_free(&arena); */
/* } */
return 0;
}