【发布时间】:2020-02-13 01:07:24
【问题描述】:
我可以这样定义for循环的语法:
(require syntax/parse/define)
(define-syntax-parser myfor
[(_ Binding Form1 ...)
#'(for (Binding) Form1 ...)]
)
(myfor (I (range 0 10))
(displayln I)
)
它可以工作,但是当我向它添加关键字时,它不遵循#:break关键字中的条件:
(require syntax/parse/define)
(define-syntax-parser myfor
[(_ Binding #:break Break Form1 ...)
#'(for (Binding) Form1 ...)]
)
(myfor (I (range 0 10))
#:break (= I 5)
(displayln I)
)
define-syntax-parser如何正确添加关键字?
【问题讨论】:
标签: parsing syntax scheme racket keyword