diff --git a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/ok b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/ok similarity index 100% rename from tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/ok rename to tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/ok diff --git a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/.gitattributes b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/.gitattributes similarity index 100% rename from tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/.gitattributes rename to tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/.gitattributes diff --git a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/.github/FUNDING.yml b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/.github/FUNDING.yml similarity index 100% rename from tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/.github/FUNDING.yml rename to tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/.github/FUNDING.yml diff --git a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/.github/dependabot.yml b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/.github/dependabot.yml similarity index 100% rename from tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/.github/dependabot.yml rename to tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/.github/dependabot.yml diff --git a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/.github/workflows/main.yml b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/.github/workflows/main.yml similarity index 100% rename from tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/.github/workflows/main.yml rename to tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/.github/workflows/main.yml diff --git a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/.gitignore b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/.gitignore similarity index 100% rename from tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/.gitignore rename to tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/.gitignore diff --git a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/LICENSE b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/LICENSE similarity index 96% rename from tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/LICENSE rename to tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/LICENSE index f8c36c8..83f96ac 100644 --- a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/LICENSE +++ b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2021 Jimmi Holst Christensen +Copyright (c) 2022 Jimmi Holst Christensen Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/README.md b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/README.md similarity index 94% rename from tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/README.md rename to tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/README.md index 56d41c7..d37a222 100644 --- a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/README.md +++ b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/README.md @@ -5,6 +5,11 @@ README.md is autogenerated. Please edit example/README.md.template instead. A simple and easy to use command line argument parser library for Zig. +The master branch of zig-clap targets the master branch of Zig. For a +version of zig-clap that targets a specific Zig release, have a look +at the releases. Each release specifies the Zig version it compiles with +in the release notes. + ## Features * Short arguments `-a` @@ -91,6 +96,7 @@ pub fn main() !void { const params = comptime clap.parseParamsComptime( \\-h, --help Display this help and exit. \\-n, --number An option parameter, which takes a value. + \\-a, --answer An option parameter which takes an enum. \\-s, --string ... An option parameter which can be specified multiple times. \\... \\ @@ -98,10 +104,12 @@ pub fn main() !void { // Declare our own parsers which are used to map the argument strings to other // types. + const YesNo = enum { yes, no }; const parsers = comptime .{ .STR = clap.parsers.string, .FILE = clap.parsers.string, .INT = clap.parsers.int(usize, 10), + .ANSWER = clap.parsers.enumeration(YesNo), }; var diag = clap.Diagnostic{}; @@ -117,6 +125,8 @@ pub fn main() !void { debug.print("--help\n", .{}); if (res.args.number) |n| debug.print("--number = {}\n", .{n}); + if (res.args.answer) |a| + debug.print("--answer = {s}\n", .{@tagName(a)}); for (res.args.string) |s| debug.print("--string = {s}\n", .{s}); for (res.positionals) |pos| diff --git a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/build.zig b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/build.zig similarity index 100% rename from tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/build.zig rename to tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/build.zig diff --git a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/clap.zig b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/clap.zig similarity index 99% rename from tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/clap.zig rename to tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/clap.zig index 6d8e399..7ce5322 100644 --- a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/clap.zig +++ b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/clap.zig @@ -934,7 +934,7 @@ test "str and u64" { defer res.deinit(); } -test "" { +test "everything" { const params = comptime parseParamsComptime( \\-a, --aa \\-b, --bb diff --git a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/clap/args.zig b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/clap/args.zig similarity index 100% rename from tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/clap/args.zig rename to tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/clap/args.zig diff --git a/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/clap/parsers.zig b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/clap/parsers.zig new file mode 100644 index 0000000..208a1aa --- /dev/null +++ b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/clap/parsers.zig @@ -0,0 +1,85 @@ +const std = @import("std"); + +const fmt = std.fmt; +const testing = std.testing; + +pub const default = .{ + .string = string, + .str = string, + .u8 = int(u8, 0), + .u16 = int(u16, 0), + .u32 = int(u32, 0), + .u64 = int(u64, 0), + .usize = int(usize, 0), + .i8 = int(i8, 0), + .i16 = int(i16, 0), + .i32 = int(i32, 0), + .i64 = int(i64, 0), + .isize = int(isize, 0), + .f32 = float(f32), + .f64 = float(f64), +}; + +pub fn string(in: []const u8) error{}![]const u8 { + return in; +} + +test "string" { + try testing.expectEqualStrings("aa", try string("aa")); +} + +pub fn int(comptime T: type, comptime radix: u8) fn ([]const u8) fmt.ParseIntError!T { + return struct { + fn parse(in: []const u8) fmt.ParseIntError!T { + return fmt.parseInt(T, in, radix); + } + }.parse; +} + +test "int" { + try testing.expectEqual(@as(u8, 0), try int(u8, 10)("0")); + try testing.expectEqual(@as(u8, 1), try int(u8, 10)("1")); + try testing.expectEqual(@as(u8, 10), try int(u8, 10)("10")); + try testing.expectEqual(@as(u8, 0x10), try int(u8, 0)("0x10")); + try testing.expectEqual(@as(u8, 0b10), try int(u8, 0)("0b10")); +} + +pub fn float(comptime T: type) fn ([]const u8) fmt.ParseFloatError!T { + return struct { + fn parse(in: []const u8) fmt.ParseFloatError!T { + return fmt.parseFloat(T, in); + } + }.parse; +} + +test "float" { + try testing.expectEqual(@as(f32, 0), try float(f32)("0")); +} + +pub const EnumError = error{ + NameNotPartOfEnum, +}; + +pub fn enumeration(comptime T: type) fn ([]const u8) EnumError!T { + return struct { + fn parse(in: []const u8) EnumError!T { + return std.meta.stringToEnum(T, in) orelse error.NameNotPartOfEnum; + } + }.parse; +} + +test "enumeration" { + const E = enum { a, b, c }; + try testing.expectEqual(E.a, try enumeration(E)("a")); + try testing.expectEqual(E.b, try enumeration(E)("b")); + try testing.expectEqual(E.c, try enumeration(E)("c")); + try testing.expectError(EnumError.NameNotPartOfEnum, enumeration(E)("d")); +} + +fn ReturnType(comptime P: type) type { + return @typeInfo(P).Fn.return_type.?; +} + +pub fn Result(comptime P: type) type { + return @typeInfo(ReturnType(P)).ErrorUnion.payload; +} diff --git a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/clap/streaming.zig b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/clap/streaming.zig similarity index 100% rename from tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/clap/streaming.zig rename to tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/clap/streaming.zig diff --git a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/example/README.md.template b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/example/README.md.template similarity index 91% rename from tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/example/README.md.template rename to tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/example/README.md.template index 8b12cd6..696c598 100644 --- a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/example/README.md.template +++ b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/example/README.md.template @@ -5,6 +5,11 @@ README.md is autogenerated. Please edit example/README.md.template instead. A simple and easy to use command line argument parser library for Zig. +The master branch of zig-clap targets the master branch of Zig. For a +version of zig-clap that targets a specific Zig release, have a look +at the releases. Each release specifies the Zig version it compiles with +in the release notes. + ## Features * Short arguments `-a` diff --git a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/example/help.zig b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/example/help.zig similarity index 100% rename from tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/example/help.zig rename to tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/example/help.zig diff --git a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/example/simple-ex.zig b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/example/simple-ex.zig similarity index 85% rename from tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/example/simple-ex.zig rename to tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/example/simple-ex.zig index d0d214d..fb20d07 100644 --- a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/example/simple-ex.zig +++ b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/example/simple-ex.zig @@ -11,6 +11,7 @@ pub fn main() !void { const params = comptime clap.parseParamsComptime( \\-h, --help Display this help and exit. \\-n, --number An option parameter, which takes a value. + \\-a, --answer An option parameter which takes an enum. \\-s, --string ... An option parameter which can be specified multiple times. \\... \\ @@ -18,10 +19,12 @@ pub fn main() !void { // Declare our own parsers which are used to map the argument strings to other // types. + const YesNo = enum { yes, no }; const parsers = comptime .{ .STR = clap.parsers.string, .FILE = clap.parsers.string, .INT = clap.parsers.int(usize, 10), + .ANSWER = clap.parsers.enumeration(YesNo), }; var diag = clap.Diagnostic{}; @@ -37,6 +40,8 @@ pub fn main() !void { debug.print("--help\n", .{}); if (res.args.number) |n| debug.print("--number = {}\n", .{n}); + if (res.args.answer) |a| + debug.print("--answer = {s}\n", .{@tagName(a)}); for (res.args.string) |s| debug.print("--string = {s}\n", .{s}); for (res.positionals) |pos| diff --git a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/example/simple.zig b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/example/simple.zig similarity index 100% rename from tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/example/simple.zig rename to tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/example/simple.zig diff --git a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/example/streaming-clap.zig b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/example/streaming-clap.zig similarity index 100% rename from tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/example/streaming-clap.zig rename to tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/example/streaming-clap.zig diff --git a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/example/usage.zig b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/example/usage.zig similarity index 100% rename from tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/example/usage.zig rename to tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/example/usage.zig diff --git a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/gyro.zzz b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/gyro.zzz similarity index 100% rename from tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/gyro.zzz rename to tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/gyro.zzz diff --git a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/zig.mod b/tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/zig.mod similarity index 100% rename from tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/zig.mod rename to tools/regz/.gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/zig.mod diff --git a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/clap/parsers.zig b/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/clap/parsers.zig deleted file mode 100644 index 49b95a9..0000000 --- a/tools/regz/.gyro/zig-clap-Hejsil-github.com-996821a3/pkg/clap/parsers.zig +++ /dev/null @@ -1,48 +0,0 @@ -const std = @import("std"); - -const fmt = std.fmt; - -pub const default = .{ - .string = string, - .str = string, - .u8 = int(u8, 0), - .u16 = int(u16, 0), - .u32 = int(u32, 0), - .u64 = int(u64, 0), - .usize = int(usize, 0), - .i8 = int(i8, 0), - .i16 = int(i16, 0), - .i32 = int(i32, 0), - .i64 = int(i64, 0), - .isize = int(isize, 0), - .f32 = float(f32), - .f64 = float(f64), -}; - -pub fn string(in: []const u8) error{}![]const u8 { - return in; -} - -pub fn int(comptime T: type, comptime radix: u8) fn ([]const u8) fmt.ParseIntError!T { - return struct { - fn parse(in: []const u8) fmt.ParseIntError!T { - return fmt.parseInt(T, in, radix); - } - }.parse; -} - -pub fn float(comptime T: type) fn ([]const u8) fmt.ParseFloatError!T { - return struct { - fn parse(in: []const u8) fmt.ParseFloatError!T { - return fmt.parseFloat(T, in); - } - }.parse; -} - -fn ReturnType(comptime P: type) type { - return @typeInfo(P).Fn.return_type.?; -} - -pub fn Result(comptime P: type) type { - return @typeInfo(ReturnType(P)).ErrorUnion.payload; -} diff --git a/tools/regz/deps.zig b/tools/regz/deps.zig index 9a2f3b1..5b40e91 100644 --- a/tools/regz/deps.zig +++ b/tools/regz/deps.zig @@ -10,7 +10,7 @@ pub const pkgs = struct { pub const clap = Pkg{ .name = "clap", .source = FileSource{ - .path = ".gyro/zig-clap-Hejsil-github.com-996821a3/pkg/clap.zig", + .path = ".gyro/zig-clap-Hejsil-github.com-1c09e0dc/pkg/clap.zig", }, }; diff --git a/tools/regz/gyro.lock b/tools/regz/gyro.lock index e012a19..12af323 100644 --- a/tools/regz/gyro.lock +++ b/tools/regz/gyro.lock @@ -1,2 +1,2 @@ -git https://github.com/Hejsil/zig-clap.git master clap.zig 996821a3e1f186c9e5cdfd971d742c9815ea590e git https://github.com/mitchellh/zig-libxml2.git db7805026143d753a1deb84c23580d8050471223 libxml2.zig db7805026143d753a1deb84c23580d8050471223 +git https://github.com/Hejsil/zig-clap.git master clap.zig 1c09e0dc31918dd716b1032ad3e1d1c080cbbff1 diff --git a/tools/regz/src/Database.zig b/tools/regz/src/Database.zig index 017a0ed..cd39bdc 100644 --- a/tools/regz/src/Database.zig +++ b/tools/regz/src/Database.zig @@ -1312,7 +1312,7 @@ fn genZigRegister( if (is_list) { if (std.mem.indexOf(u8, register.name, "[%s]") != null) { std.log.info("register name: {s}", .{register.name}); - std.log.info("dimension: {s}", .{dimension_opt}); + std.log.info("dimension: {?}", .{dimension_opt}); return error.InvalidRegisterName; } @@ -1408,7 +1408,7 @@ fn genZigRegister( const array_prefix: []const u8 = if (dimension_opt) |dimension| blk: { if (dimension.increment != register.size.? / 8) { std.log.err("register: {s}", .{register.name}); - std.log.err("size: {}", .{register.size}); + std.log.err("size: {?}", .{register.size}); std.log.err("dimension: {}", .{dimension}); return error.InvalidArrayIncrement; } diff --git a/tools/regz/tests/main.zig b/tools/regz/tests/main.zig index adb141a..3683f69 100644 --- a/tools/regz/tests/main.zig +++ b/tools/regz/tests/main.zig @@ -1,4 +1,4 @@ -test "" { +test "all" { _ = @import("svd.zig"); _ = @import("atdf.zig"); }