Ryan Culpepper
829a640299
reorganize code, expose stxclass rhs->parser helper
2013-03-18 19:14:05 -04:00
Ryan Culpepper
ab9207dbc7
split out pattern optimization code
2013-03-18 19:14:04 -04:00
Ryan Culpepper
ae63f01cc7
improve pattern factoring, misc cleanup
2013-03-18 19:14:04 -04:00
Ryan Culpepper
34c1bdfc97
unfold pat:and to uncover more factoring opportunities
...
Side clauses introduce pat:and, very common in stxclasses.
2013-03-18 19:14:04 -04:00
Ryan Culpepper
d5068278f4
do factoring for stxclasses (non-splicing only) too
2013-03-18 19:14:04 -04:00
Ryan Culpepper
1de7045dd3
basic pattern factoring for syntax-parse
2013-03-18 19:14:04 -04:00
Ryan Culpepper
91cbbbbde2
change syntax-parse clause parsing code
2013-03-18 19:14:04 -04:00
Ryan Culpepper
5470899d6e
fix shadowing (caused unwanted state threading)
...
closes PR 13327
2012-12-01 11:17:13 -05:00
Ryan Culpepper
32ae484c72
syntax/parse: fix scoping of this-syntax (include formals)
2012-08-13 18:47:02 -04:00
Ryan Culpepper
a564110c08
syntax/parse: change expectstack rep to reduce/consolidate allocations
2012-03-13 19:50:09 -06:00
Ryan Culpepper
5db8553ea1
syntax/parse: expect:thing stores stx being matched
2012-03-13 19:50:09 -06:00
Ryan Culpepper
fb7c7e3793
syntax/parse: added roles, other updates/fixes
...
expr/c uses role for contract label when avail
export ~peek-not (previously missed)
fixes for integrable stxclasses
2012-03-08 07:39:42 -07:00
Ryan Culpepper
a0065b9efa
syntax/parse: cut-prompt is inherited, not threaded
2012-03-08 01:17:47 -07:00
Ryan Culpepper
14089e0ac6
syntax/parse: clean up integrable stxclass code
2012-03-08 01:17:47 -07:00
Ryan Culpepper
3e6069a70f
syntax/parse: optimize common ellipsis patterns
2012-02-28 05:27:58 -07:00
Ryan Culpepper
e2404184ee
syntax/parse: fix opaque head patterns and splicing syntax classes
...
closes PR 12537
2012-02-07 13:43:26 -07:00
Ryan Culpepper
5befa7320f
syntax/id-table: added uncontracted private version
2011-09-30 04:13:09 -06:00
Ryan Culpepper
1c6b8bd68e
syntax/parse: lazily load most macro transformers and compile-time support
2011-09-30 04:13:09 -06:00
Ryan Culpepper
7cc1476170
syntax/parse: fix bug: integrated stxclass might not bind pvar to syntax
2011-09-21 16:58:52 -06:00
Ryan Culpepper
095b5a5131
syntax/parse: use new primitive cross-phase identifier comparison
2011-09-20 14:27:33 -06:00
Ryan Culpepper
883e9e9e6b
syntax/parse: syntax-parse sets current-syntax-context
2011-08-30 12:04:25 -06:00
Ryan Culpepper
86f65468d7
removed define-pattern-variable
2011-04-07 09:47:20 -06:00
Ryan Culpepper
73ab167522
created racket/syntax from parts of unstable/syntax
2011-04-07 09:47:20 -06:00
Ryan Culpepper
bf591d4d01
syntax/parse: added #:disable-colon-notation option
2011-03-17 13:47:38 -06:00
Ryan Culpepper
012746540c
syntax/parse: added define-simple-macro form (needs docs)
2011-03-17 13:47:38 -06:00
Ryan Culpepper
1353d40612
syntax/parse: allow zero syntax-parse clauses and zero syntax-class variants
2011-03-17 13:47:38 -06:00
Ryan Culpepper
553ef2834d
syntax/parse: removed stx from expectstack
2010-11-03 18:09:21 -06:00
Ryan Culpepper
c941db0bfa
Added ~peek-not, cf packrat/PEG ! operator
2010-10-22 15:30:24 -06:00
Ryan Culpepper
de5b110d75
added lookahead (~peek)
2010-10-04 11:54:03 -06:00
Ryan Culpepper
b572f0c7dc
removed useless requires
2010-09-03 13:53:41 -06:00
Ryan Culpepper
be3ca941bb
eliminated some uses of rest-args and list unpacking
2010-08-31 18:36:32 -06:00
Ryan Culpepper
d7a87c79e0
Merged changes to syntax/parse
...
Changed backtracking algorithm, runtime representations
- syntax classes, ~describe no longer implicitly commit
- ~describe no longer delimits effect of cut
Added keyword & optional args for stxclasses
Added ~do and #:do, ~post, ~commit and #:commit,
~delimit-cut and #:no-delimit-cut
Added syntax/parse/debug, syntax/parse/experimental/*
- expr/c for contracting macro sub-expressions
moved from syntax/parse to syntax/parse/experimental/contract
- syntax class reflection (~reflect, ~splicing-reflect)
- eh-alternative-sets (~eh-var)
- provide-syntax-class/contract
(only for params, not attrs so far)
Changed ~fail to not include POST progress (#:fail still does)
old (~fail _) is now (~post (~fail _))
Made msg argument of ~fail optional
Removed generic "repetition constraint violated" msg
Removed atom-in-list stxclass
Removed unnecessary datum->syntax on cdr of pair pattern
massive improvements to long-list microbenchmarks
Optimization: integrable syntax classes (id, expr, keyword)
need better measurements
Optimization: ad hoc elimination of head/tail choice point
for (EH ... . ()) patterns
Added unstable/wrapc (proc version of expr/c)
2010-08-31 10:55:58 -06:00