diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2024-09-09 22:16:40 -0400 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2024-09-09 22:16:40 -0400 |
| commit | d356309023fce996a549440aa14e3239f909fe33 (patch) | |
| tree | 1c797f41be25c457a09b9187550136afd8550d96 /environment.c | |
| parent | 36572573300eaba9d0adbb63fc55067aa0fe5e0c (diff) | |
Add (/path):by_line()
Diffstat (limited to 'environment.c')
| -rw-r--r-- | environment.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/environment.c b/environment.c index 45207da1..94401ec9 100644 --- a/environment.c +++ b/environment.c @@ -69,6 +69,16 @@ env_t *new_compilation_unit(CORD *libname) .next=new(arg_t, .name="step", .type=INT_TYPE, .default_val=FakeAST(Int, .str="1"))))); } + type_t *next_line_type; + { + next_line_type = Type( + EnumType, .name="NextLine", .env=namespace_env(env, "NextLine"), + .tags=new(tag_t, .name="Done", .tag_value=0, .type=Type(StructType, .name="NextLine$Done"), + .next=new(tag_t, .name="Next", .tag_value=1, .type=Type(StructType, .name="NextLine$Next", + .env=namespace_env(env, "NextLine$Next"), + .fields=new(arg_t, .name="line", .type=TEXT_TYPE))))); + } + { env_t *thread_env = namespace_env(env, "Thread"); THREAD_TYPE = Type(StructType, .name="Thread", .env=thread_env, .opaque=true); @@ -245,12 +255,14 @@ env_t *new_compilation_unit(CORD *libname) {"reversed", "Range$reversed", "func(range:Range)->Range"}, {"by", "Range$by", "func(range:Range, step:Int)->Range"}, )}, + {"NextLine", next_line_type, "NextLine_t", "NextLine", {}}, {"Pattern", Type(TextType, .lang="Pattern", .env=namespace_env(env, "Pattern")), "Pattern_t", "Pattern$info", TypedArray(ns_entry_t, {"escape_text", "Pattern$escape_text", "func(text:Text)->Pattern"}, )}, {"Path", Type(TextType, .lang="Path", .env=namespace_env(env, "Path")), "Text_t", "Text$info", TypedArray(ns_entry_t, {"append", "Path$append", "func(path:Path, text:Text, permissions=0o644_i32)"}, {"base_name", "Path$base_name", "func(path:Path)->Text"}, + {"by_line", "Path$by_line", "func(path:Path)->func()->NextLine"}, {"children", "Path$children", "func(path:Path, include_hidden=no)->[Path]"}, {"create_directory", "Path$create_directory", "func(path:Path, permissions=0o644_i32)"}, {"escape_path", "Path$escape_path", "func(path:Path)->Path"}, |
