From 5c4a4ab46c05cf01f59928ee3e5b84626e93a07d Mon Sep 17 00:00:00 2001 From: Simon Kellet Date: Mon, 6 Jul 2026 20:21:53 +0100 Subject: [PATCH] added custom flag parser --- fleg/flag.odin | 162 +++++++++++++++++++++++++++++++++++++++++++++++++ main.odin | 16 ++++- ppm-viewer | Bin 224536 -> 224840 bytes 3 files changed, 175 insertions(+), 3 deletions(-) create mode 100644 fleg/flag.odin diff --git a/fleg/flag.odin b/fleg/flag.odin new file mode 100644 index 0000000..076917b --- /dev/null +++ b/fleg/flag.odin @@ -0,0 +1,162 @@ +#+vet explicit-allocators +package fleg + +import "base:runtime" +import "core:fmt" +import "core:os" +import "core:strconv" +import "core:strings" + +FORCE_HELP_ON_EMPTY_ARGS := false + +Flag_Value_Ptr :: union { + ^bool, + ^int, + ^string, + ^f32, + ^f64, +} + +Flag :: struct { + name: string, + value: Flag_Value_Ptr, + usage: string, + parsed: bool, // sck: flag to check if it has been parsed +} + +all_flags: [dynamic]Flag +flag_allocator: runtime.Allocator + +// sck: Used to create a customer allocator +init_custom_allocator :: proc(allocator: runtime.Allocator) { + destroy() // sck: make sure to destory the old allocations + + flag_allocator = allocator + all_flags = make([dynamic]Flag, flag_allocator) +} + +destroy :: proc() { + delete(all_flags) + all_flags = {} // sck: needed? +} + +print_flags :: proc() { + for f in all_flags { + fmt.printfln("%s: %v: %s", f.name, f.value, f.usage) + } +} + +print_usage :: proc() { + fmt.println("\tUsage: ") + for f in all_flags { + switch v in f.value { + case ^bool: + fmt.printfln("\t-%s:\n\t\t%s (default: %v)\n", f.name, f.usage, v^) + case ^int: + fmt.printfln("\t-%s:\n\t\t%s (default: %d)\n", f.name, f.usage, v^) + case ^string: + fmt.printfln("\t-%s:\n\t\t%s (default: %s)\n", f.name, f.usage, v^) + case ^f32: + fmt.printfln("\t-%s:\n\t\t%s (default: %f)\n", f.name, f.usage, v^) + case ^f64: + fmt.printfln("\t-%s:\n\t\t%s (default: %f)\n", f.name, f.usage, v^) + } + } + os.exit(0) +} + +BoolVar :: proc(ptr: ^bool, name: string, default: bool, usage: string) { + ptr^ = default + append(&all_flags, Flag{name = name, value = ptr, usage = usage}) +} + +IntVar :: proc(ptr: ^int, name: string, default: int, usage: string) { + ptr^ = default + append(&all_flags, Flag{name = name, value = ptr, usage = usage}) +} + +StringVar :: proc(ptr: ^string, name: string, default: string, usage: string) { + ptr^ = default + append(&all_flags, Flag{name = name, value = ptr, usage = usage}) +} + +Float32Var :: proc(ptr: ^f32, name: string, default: f32, usage: string) { + ptr^ = default + append(&all_flags, Flag{name = name, value = ptr, usage = usage}) +} + +Float64Var :: proc(ptr: ^f64, name: string, default: f64, usage: string) { + ptr^ = default + append(&all_flags, Flag{name = name, value = ptr, usage = usage}) +} + +parse_flags :: proc() { + if len(os.args) < 2 && FORCE_HELP_ON_EMPTY_ARGS {print_usage()} + + for &a in os.args { + if a == "-help" || a == "--help" {print_usage()} + if a == os.args[0] {continue} + + for &f in all_flags { + if f.parsed {continue} + a = strings.trim_prefix(a, "-") + + name := a + value: string + + split := strings.index_any(a, "=") + if split >= 0 { + name = a[:split] + value = a[split + 1:] + } else { + name = a + } + + if name == f.name && !f.parsed { + f.parsed = true + switch &v in f.value { + case ^bool: + if value == "" {break} + parsed, ok := strconv.parse_bool(value) + if !ok { + fmt.fprintfln(os.stderr, "[ERROR] Failed to parse flag %s: got %T, wanted bool", f.name, value) + os.exit(1) + } + v^ = parsed + + case ^int: + if value == "" {break} + parsed, ok := strconv.parse_int(value) + if !ok { + fmt.fprintfln(os.stderr, "[ERROR] Failed to parse flag %s: got %T, wanted int", f.name, value) + os.exit(1) + } + v^ = parsed + + case ^string: + if value == "" {break} + // TODO: validate string? + v^ = value + + case ^f32: + if value == "" {break} + parsed, ok := strconv.parse_f32(value) + if !ok { + fmt.fprintfln(os.stderr, "[ERROR] Failed to parse flag %s: got %T, wanted f32", f.name, value) + os.exit(1) + } + v^ = parsed + + case ^f64: + if value == "" {break} + parsed, ok := strconv.parse_f64(value) + if !ok { + fmt.fprintfln(os.stderr, "[ERROR] Failed to parse flag %s: got %T, wanted f64", f.name, value) + os.exit(1) + } + v^ = parsed + } + } + } + } +} diff --git a/main.odin b/main.odin index 65cb780..a1ad720 100644 --- a/main.odin +++ b/main.odin @@ -3,6 +3,7 @@ package main import "core:fmt" import "core:os" +import "fleg" import SDL "vendor:sdl2" WINDOW_TITLE :: "PPM Viewer" @@ -18,14 +19,23 @@ print_usage :: proc() { } main :: proc() { + /* if len(os.args) > 3 || len(os.args) < 2 { print_usage() } + */ file := Ppm_file{} - filename := os.args[1] - if ok, err := load_ppm(&file, filename, context.temp_allocator); !ok { - fmt.eprintfln("ERROR: Failed to load file '%s': %s ", filename, os.error_string(err)) + + file_arg: string + fleg.StringVar(&file_arg, "f", "in.ppm", "input file [.ppm]") + fleg.FORCE_HELP_ON_EMPTY_ARGS = true + defer fleg.destroy() + + fleg.parse_flags() + + if ok, err := load_ppm(&file, file_arg, context.temp_allocator); !ok { + fmt.eprintfln("ERROR: Failed to load file '%s': %s ", file_arg, os.error_string(err)) os.exit(1) } ppm_parse(&file, context.temp_allocator) diff --git a/ppm-viewer b/ppm-viewer index e07663d04edc50847855d683de8d60760600b018..c3d0de62b21e50f26d0ebc754fc0ddbc1dde6ceb 100755 GIT binary patch delta 58718 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 F{|5on=bZom delta 51796 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%0AxzJm5HQ#eb0?rTxmD`yvD7Q^sbz_6K?a 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 W{A)UsW-G!W`;r{@S%HyK|