(Arne Babenhauserheide)
2017-02-10: implement the basic argparse interface implement the basic argparse interface
diff --git a/examples/argparse.w b/examples/argparse.w --- a/examples/argparse.w +++ b/examples/argparse.w @@ -4,16 +4,35 @@ guile -L $(dirname $(dirname $(realpath exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples argparse) main)' -s "$0" "$@" ; !# +;; Argument parser +;; plan: +;; - simplest usage: (import (examples argparse))(let ((args (parse-args))) (write args)) +;; - with setup: (import (examples argparse)) +;; (let* ((parser (setup-args #:help "foo")) +;; (args (parse-args #:parser parser))) +;; (write args)) + define-module : examples argparse - . #:export : parse-args setup + . #:export : args-parse args-setup import : ice-9 optargs -define* : parse-args #:key (parser #f) - . #f +define* : args-parse #:optional args #:key parser + if : equal? #f args + command-line + . args -define* : setup #:key (help #f) +define* : args-setup #:key (help #f) . #f define : main args - . #f + let : : args : args-parse args + write args + let* + : parser : args-setup #:help "argparse" + args : args-parse #:parser parser + write args + let* + : parser : args-setup #:help "argparse" + args : args-parse args #:parser parser + write args