From 2e9065e61017643d5d6d4f17cf3af254192f6877 Mon Sep 17 00:00:00 2001 From: Leif Andersen Date: Mon, 29 Sep 2014 22:55:13 -0400 Subject: [PATCH] Use function-header library in racket/match. --- racket/collects/racket/match/define-forms.rkt | 24 ++----------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/racket/collects/racket/match/define-forms.rkt b/racket/collects/racket/match/define-forms.rkt index 0546421802..35fac850c9 100644 --- a/racket/collects/racket/match/define-forms.rkt +++ b/racket/collects/racket/match/define-forms.rkt @@ -6,7 +6,8 @@ unstable/sequence syntax/parse syntax/parse/experimental/template - racket/lazy-require)) + racket/lazy-require + syntax/parse/lib/function-header)) (begin-for-syntax (lazy-require [racket/match/patterns (bound-vars)] @@ -14,27 +15,6 @@ (provide define-forms) -;; syntax classes for `define/match` -(begin-for-syntax - (define-syntax-class function-header - (pattern ((~or header:function-header name:id) . args:args) - #:attr params - (template ((?@ . (?? header.params ())) - . args.params)))) - - (define-syntax-class args - (pattern (arg:arg ...) - #:attr params #'(arg.name ...)) - (pattern (arg:arg ... . rest:id) - #:attr params #'(arg.name ... rest))) - - (define-splicing-syntax-class arg - #:attributes (name) - (pattern name:id) - (pattern [name:id default]) - (pattern (~seq kw:keyword name:id)) - (pattern (~seq kw:keyword [name:id default])))) - (define-syntax-rule (define-forms parse-id match match* match-lambda match-lambda* match-lambda** match-let match-let*