Commit Graph

20 Commits

Author SHA1 Message Date
Milo Turner
275d7974cd Added #:cut pattern directive 2018-03-05 15:03:45 +01:00
Leif Andersen
dd2a0dceb3
define-simple-macro now works with an ~or macro. (#1949)
The previous definition of define-simple-macro would fail (with
a very poor error message) if the user made a simple macro like:

(define-simple-macro (~or a b)
  (let ([tmp a])
    (if tmp tmp b)))

While the define-simple-macro form does allow syntax-parse patterns,
this should not be enabled for the initial head pattern, as described
in the define-simple-macro documentation.
2018-02-09 10:41:27 -05:00
Ryan Culpepper
9be7bf53cf syntax/parse: add unwindable state: syntax-parse-state-{ref,set!,...} 2017-12-18 09:10:31 +01:00
Ryan Culpepper
414fd515ab syntax/parse: make undo cooperate with ~commit and ~! (cut) 2017-12-09 13:42:12 +01:00
Ryan Culpepper
44eb5532ad syntax/parse: add ~or* and ~alt, like ~or{S,H} and ~or{EH}, respectively 2017-06-24 17:07:55 -04:00
Ryan Culpepper
c082f130cb support string, bytes (bindings from racket) as stxclass refs
add compile-time table as alternative to stxclass binding
2017-05-18 12:54:26 -04:00
Ryan Culpepper
febf3f36d7 syntax/parse: compress test, add more variants 2017-02-02 00:25:20 -05:00
AlexKnauth
68bd27707d add regression test for #1602 2017-02-02 00:25:20 -05:00
Georges Dupéron
e311d671de Applied changes requested by @rmculpepper for PR #1587 2017-01-23 20:32:40 -05:00
Georges Dupéron
6a07a3f986 Fixes several issues with syntax/parse, and adds some tests.
* byte-regexp? values should not be considered 3D syntax.
* hash? values are now allowed in serialized syntax properties with (template … #:properties (…))
* marshalling properties which were prefab structs called map on the result of struct->vector, changed it to struct->list as the struct "name" is always serializable.
2017-01-23 20:32:40 -05:00
Ryan Culpepper
c08a2fd57c syntax/parse: add #:and and #:post side-clauses 2016-09-29 17:21:07 -04:00
Ryan Culpepper
471f37158a syntax/parse: allow pattern expanders to produce EH patterns
fixes #1427
2016-08-22 19:47:41 -04:00
Ryan Culpepper
1f94c4ed3a syntax/parse: fix test for drdr; suppress logging output 2016-08-01 10:47:38 -04:00
Ryan Culpepper
19707a54be syntax/parse: change test to use eval so no error logged when compiled 2016-07-14 14:32:39 -04:00
Ryan Culpepper
52bfb32cd3 syntax/parse: only check for empty match on unbounded EH patterns
This change permits EH patterns like (~once <nullable>), because the
match will happen at most once, so there is no danger of divergence.
Thanks to Alex Knauth for pointing out this special case.

Merge to release branch.
2016-07-11 13:04:07 -04:00
Ryan Culpepper
9d3c193bcf syntax/parse: fix ~datum pattern with compound datum 2016-05-03 05:07:29 -04:00
AlexKnauth
2acb10a5da syntax/parse: add test for non-tilde pattern expander 2015-10-16 18:03:40 -04:00
Ryan Culpepper
8d9eb05347 syntax/parse: accept #:context (list symbol/#f syntax)
The symbol is used as the "who" field in the error message.

Also fix lazy-require of runtime-report.rkt in residual.rkt; don't
load until syntax-parse actually needs to produce an error report.
(Previously was loaded to create handler whenever syntax-parse code ran.)
2015-09-10 21:49:21 -04:00
AlexKnauth
cb3f296678 support this-syntax in syntax-parse, syntax-parser, etc.
closes PR 14855
2015-06-22 15:40:44 -04:00
Matthew Flatt
2d4f3e2ac9 remove the "racket-pkgs" directory layer
The layer is now redundant, since everything left in "pkgs" is in the
"racket-pkgs" category.
2014-12-08 05:22:59 -07:00