diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-02-01 20:43:22 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-02-03 00:13:51 +0900 |
| commit | beff4b6048cc3783d538769a307f8e679a33894c (patch) | |
| tree | bd1bd3e6aff00cf2f9030262d674adef047672ff /src/jq/codegen.zig | |
| parent | 7712c1d10ec45349c1cd6e66281b7d602350065d (diff) | |
| download | zgjq-beff4b6048cc3783d538769a307f8e679a33894c.tar.gz zgjq-beff4b6048cc3783d538769a307f8e679a33894c.tar.zst zgjq-beff4b6048cc3783d538769a307f8e679a33894c.zip | |
implement array iteration
Diffstat (limited to 'src/jq/codegen.zig')
| -rw-r--r-- | src/jq/codegen.zig | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/jq/codegen.zig b/src/jq/codegen.zig index 62535c1..23383bf 100644 --- a/src/jq/codegen.zig +++ b/src/jq/codegen.zig @@ -37,6 +37,7 @@ pub const Opcode = enum { load, store, append, + each, }; pub const Instr = union(Opcode) { @@ -72,6 +73,7 @@ pub const Instr = union(Opcode) { load: VariableIndex, store: VariableIndex, append: VariableIndex, + each, pub fn op(self: Self) Opcode { return self; @@ -264,6 +266,12 @@ const Codegen = struct { try self.emit(.backtrack); try self.emit(.{ .load = v }); }, + .each => |each| { + // <base> + // EACH + try self.generate(each.base); + try self.emit(.each); + }, } } |
