Skip to content

Commit

Permalink
Remove action pattern class
Browse files Browse the repository at this point in the history
The pattern language is extensible, unlike parse options and pattern directives. Restricting it with a class is unnecessary and breaks custom pattern transformers.
  • Loading branch information
jackfirth committed Sep 2, 2024
1 parent 8e4b387 commit e4322d8
Showing 1 changed file with 2 additions and 20 deletions.
22 changes: 2 additions & 20 deletions private/more-syntax-parse-classes.rkt
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@
(pattern (~seq #:declare ~! pvar-id:id
(~or syntax-class-id:id (syntax-class-id:id arg ...))
(~optional (~seq #:role role-expr:expr))))
(pattern (~seq #:post ~! action-pattern:syntax-parse-action-pattern))
(pattern (~seq #:and ~! action-pattern:syntax-parse-action-pattern))
(pattern (~seq #:post ~! action-pattern))
(pattern (~seq #:and ~! action-pattern))
(pattern (~seq #:with ~! syntax-pattern stx-expr:expr))
(pattern (~seq #:attr ~! (~or attr-name-id:id (attr-name-id:id depth)) expr:expr))
(pattern (~seq #:fail-when ~! condition-expr:expr message-expr:expr))
Expand All @@ -57,21 +57,3 @@
(pattern (~seq #:do ~! [defn-or-expr ...]))
(pattern (~seq #:undo ~! [defn-or-expr ...]))
(pattern #:cut))


(define-syntax-class syntax-parse-action-pattern
#:literals (~! ~bind ~fail ~parse ~and ~do ~undo ~post)
(pattern :~!)
(pattern (:~bind [(~or attr-name-id:id (attr-name-id:id depth)) expr:expr] ...))
(pattern
(:~fail (~optional fail-condition:syntax-parse-fail-condition) (~optional mesage-expr:expr)))
(pattern (:~parse S-pattern stx-expr:expr))
(pattern (:~and A-pattern:syntax-parse-action-pattern ...+))
(pattern (:~do defn-or-expr ...))
(pattern (:~undo defn-or-expr ...))
(pattern (:~post A-pattern:syntax-parse-action-pattern)))


(define-splicing-syntax-class syntax-parse-fail-condition
(pattern (~seq #:when condition-expr:expr))
(pattern (~seq #:unless condition-expr:expr)))

0 comments on commit e4322d8

Please sign in to comment.