aboutsummaryrefslogtreecommitdiff
path: root/environment.c
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2024-08-18 23:59:13 -0400
committerBruce Hill <bruce@bruce-hill.com>2024-08-18 23:59:13 -0400
commit8363d53bd27c621cb342fea15736a3b11231f2a4 (patch)
tree094530cdd947f57197171f1dda58057739d63151 /environment.c
parent9e07c6adc7a0616eec40e78024a8501ec7d96559 (diff)
Update channel API to take a Where parameter
Diffstat (limited to 'environment.c')
-rw-r--r--environment.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/environment.c b/environment.c
index a54cf5d1..4345770d 100644
--- a/environment.c
+++ b/environment.c
@@ -11,6 +11,7 @@
type_t *TEXT_TYPE = NULL;
type_t *RANGE_TYPE = NULL;
+type_t *WHERE_TYPE = NULL;
public type_t *THREAD_TYPE = NULL;
env_t *new_compilation_unit(CORD *libname)
@@ -45,19 +46,18 @@ env_t *new_compilation_unit(CORD *libname)
const char *name, *code, *type_str;
} ns_entry_t;
- type_t *where;
{
env_t *where_env = namespace_env(env, "Where");
type_t *anywhere = Type(StructType, .name="Anywhere");
type_t *start = Type(StructType, .name="Start");
type_t *end = Type(StructType, .name="End");
- where = Type(EnumType, .name="Where", .env=where_env,
- .tags=new(tag_t, .name="Anywhere", .tag_value=0, .type=anywhere,
- .next=new(tag_t, .name="Start", .tag_value=0, .type=start,
- .next=new(tag_t, .name="End", .tag_value=0, .type=end))));
- set_binding(where_env, "Anywhere", new(binding_t, .type=where, .code="Where$tagged$Anywhere"));
- set_binding(where_env, "Start", new(binding_t, .type=where, .code="Where$tagged$Start"));
- set_binding(where_env, "End", new(binding_t, .type=where, .code="Where$tagged$End"));
+ WHERE_TYPE = Type(EnumType, .name="Where", .env=where_env,
+ .tags=new(tag_t, .name="Anywhere", .tag_value=0, .type=anywhere,
+ .next=new(tag_t, .name="Start", .tag_value=0, .type=start,
+ .next=new(tag_t, .name="End", .tag_value=0, .type=end))));
+ set_binding(where_env, "Anywhere", new(binding_t, .type=WHERE_TYPE, .code="Where$tagged$Anywhere"));
+ set_binding(where_env, "Start", new(binding_t, .type=WHERE_TYPE, .code="Where$tagged$Start"));
+ set_binding(where_env, "End", new(binding_t, .type=WHERE_TYPE, .code="Where$tagged$End"));
}
{
@@ -240,7 +240,7 @@ env_t *new_compilation_unit(CORD *libname)
#undef F2
#undef F
#undef C
- {"Where", where, "Where_t", "Where", {}},
+ {"Where", WHERE_TYPE, "Where_t", "Where", {}},
{"Range", RANGE_TYPE, "Range_t", "Range", TypedArray(ns_entry_t,
{"reversed", "Range$reversed", "func(range:Range)->Range"},
{"by", "Range$by", "func(range:Range, step:Int)->Range"},