From 9f682a3f11499b7c19eca5c1af0fa538d65637fe Mon Sep 17 00:00:00 2001 From: Asumu Takikawa Date: Fri, 7 Aug 2015 19:08:21 -0400 Subject: [PATCH] Add prefab structs to match grammar --- pkgs/racket-doc/scribblings/reference/match-grammar.rkt | 1 + pkgs/racket-doc/scribblings/reference/match-parse.rkt | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/pkgs/racket-doc/scribblings/reference/match-grammar.rkt b/pkgs/racket-doc/scribblings/reference/match-grammar.rkt index 568267f7a6..157df1e95b 100644 --- a/pkgs/racket-doc/scribblings/reference/match-grammar.rkt +++ b/pkgs/racket-doc/scribblings/reference/match-grammar.rkt @@ -50,6 +50,7 @@ qp ::= literal @match literal | (qp ooo . qp) @match qps beginning with repeated qp | #(qp ...) @match vector of qps | #&qp @match boxed qp + | #s(prefab-key qp ...) @match prefab struct with qp fields | ,pat @match pat | ,@(LIST lvp ...) @match lvps, spliced | ,@(LIST-REST lvp ... pat) @match lvps plus pat, spliced diff --git a/pkgs/racket-doc/scribblings/reference/match-parse.rkt b/pkgs/racket-doc/scribblings/reference/match-parse.rkt index 81d6c50b93..3f6df400b2 100644 --- a/pkgs/racket-doc/scribblings/reference/match-parse.rkt +++ b/pkgs/racket-doc/scribblings/reference/match-parse.rkt @@ -58,6 +58,10 @@ (list->vector (map fixup-sexp (vector->list s)))] [(box? s) (box (fixup-sexp (unbox s)))] + [(struct? s) + (apply make-prefab-struct + (prefab-struct-key s) + (cdr (map fixup-sexp (vector->list (struct->vector s)))))] [(symbol? s) (case s [(lvp pat qp literal ooo datum struct-id