(item ()
(parse (or (kw)
(seq (#\( (names (list (:min 1) (kw))) #\))
- names)))))
+ names))))
+ (constraints ()
+ (parse (seq (#\[
+ (constraints
+ (list ()
+ (list (:min 1)
+ (error (:ignore-unconsumed t) (item)
+ (skip-until () :id #\( #\, #\])))
+ #\,))
+ #\])
+ constraints)))
+ (fragment ()
+ (parse-delimited-fragment scanner #\{ #\})))
(parse (seq ("code"
(reason (must (kw)))
(nil (must #\:))
(name (must (item)))
- (constraints (? (seq (#\[
- (constraints
- (list ()
- (list (:min 1)
- (error (:ignore-unconsumed t)
- (item)
- (skip-until ()
- :id #\( #\, #\])))
- #\,))
- #\])
- constraints)))
- (fragment (parse-delimited-fragment scanner #\{ #\})))
+ (constraints (? (constraints)))
+ (fragment (fragment)))
(when name
(add-to-module *module*
(make-instance 'code-fragment-item