(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