From afb238972816b560b082229ac20cdab64bca8aca Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 25 Jan 2026 18:42:24 +0900 Subject: implement empty array/object literals --- src/jq/parse.zig | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/jq/parse.zig') diff --git a/src/jq/parse.zig b/src/jq/parse.zig index d197c26..b466bd8 100644 --- a/src/jq/parse.zig +++ b/src/jq/parse.zig @@ -366,6 +366,24 @@ fn parsePrimary(allocator: std.mem.Allocator, parse_allocator: std.mem.Allocator ast.* = .identity; return ast; }, + .bracket_left => { + _ = try tokens.next(); + _ = try tokens.expect(.bracket_right); + const array_value = try allocator.create(jv.Value); + array_value.* = .{ .array = jv.Array.init(allocator) }; + const array_node = try parse_allocator.create(Ast); + array_node.* = .{ .literal = array_value }; + return array_node; + }, + .brace_left => { + _ = try tokens.next(); + _ = try tokens.expect(.brace_right); + const object_value = try allocator.create(jv.Value); + object_value.* = .{ .object = jv.Object.init(allocator) }; + const object_node = try parse_allocator.create(Ast); + object_node.* = .{ .literal = object_value }; + return object_node; + }, .field => |name| { _ = try tokens.next(); const ast = try parse_allocator.create(Ast); -- cgit v1.3-1-g0d28