(import define-options getopt-long srfi-1 (chicken string)) (define-options 7off `((allow-wack-headers "Allow skipping header levels instead of enforcing tree layout." (single-char #\w)) (disable-warnings "Suppress warnings and lintings." (single-char #\q)) (help "Print this help text." (single-char #\h)) (input-file "Input file name." (single-char #\i) (value #t)) (output-file "Output file name." (single-char #\o) (value #t)) (default-alt "Alt text for verbatim blocks." (single-char #\a) (value #t) (default "Code")) (polish "Polish quotes and dashes." (single-char #\p))) ("--default-alt=Giraffe")) (unless (equal? '"Giraffe" default-alt) (error "default-alt")) (define-options sample '((log-dir "Path to the directory where logs will be saved" (value #t) (default "/var/log/")))) (let* ((usage-text (usage usage-grammar)) (default (last (string-split usage-text " \n")))) (unless (equal? default "[/var/log/]") (error "usage"))) (define bar 12) (define-options indigo '((foo "Foo" (value #t) (default bar)))) (unless (eq? foo 'bar) (error "Implicit unquoting")) (define bar 12) (define-options ruby '((foo "Foo" (value #t) (default ,bar)))) (unless (equal? foo ',bar) (error "Implicit quasiquoting")) (define bar 12) (define-options cello `((foo "Foo" (value #t) (default ,bar)))) (unless (eq? foo 12) (error "Explicit quasiquoting"))