Allow optional arguments with default in `cmdline', updated docs.
This commit is contained in:
parent
4f36ce9635
commit
c1e1c70dcf
|
@ -140,6 +140,9 @@
|
|||
[(arg . rest)
|
||||
(identifier? #'arg)
|
||||
(cons #'arg (loop #'rest))]
|
||||
[([arg def] . rest)
|
||||
(identifier? #'arg)
|
||||
(cons #'[arg def] (loop #'rest))]
|
||||
[arg
|
||||
(identifier? #'arg)
|
||||
(list #'arg)]
|
||||
|
@ -151,7 +154,9 @@
|
|||
(serror "#:args must not be followed by another keyword" (car lst)))
|
||||
(with-syntax ([formals (car pieces)]
|
||||
[formal-names (map (lambda (x)
|
||||
(symbol->string (syntax-e x)))
|
||||
(let ([d (syntax->datum x)])
|
||||
(symbol->string
|
||||
(if (pair? d) (car d) d))))
|
||||
formal-names)]
|
||||
[body (cdr pieces)])
|
||||
(values (reverse accum)
|
||||
|
|
|
@ -29,9 +29,11 @@
|
|||
[finish-clause code:blank
|
||||
(code:line #:args arg-formals body ...+)
|
||||
(code:line #:handlers handlers-exprs)]
|
||||
[arg-formals id
|
||||
(id ...)
|
||||
(id ...+ . id)]
|
||||
[arg-formals rest-id
|
||||
(arg ...)
|
||||
(arg ...+ . rest-id)]
|
||||
[arg id
|
||||
[id default-expr]]
|
||||
[handlers-exprs (code:line finish-expr arg-strings-expr)
|
||||
(code:line finish-expr arg-strings-expr help-expr)
|
||||
(code:line finish-expr arg-strings-expr help-expr
|
||||
|
|
Loading…
Reference in New Issue
Block a user