Commit Graph

122 Commits

Author SHA1 Message Date
Jon Rafkind
9a9b30c751 [honu] many small things: allow with syntax to bind arbitrary patterns. provide time and time-apply. make compress-dollars recurse on sub-expressions. add an implicit pattern variable that consists of the result with an ellipses depth of 1. fix the while form. allow require forms to contain mostly anything and be separated by commas. 2013-03-04 18:48:41 -07:00
Jon Rafkind
60f1c85207 [honu] remove context argument from macro transformers 2012-08-20 12:28:14 -06:00
Jon Rafkind
249c7b02ca [honu] use syntax properties to differentiate parsed syntax from unparsed 2012-03-05 13:48:52 -07:00
Jon Rafkind
782664316d [honu] honu forms implemented in racket must call honu->racket on the parsed output. add an example to do ocaml style pattern matching 2012-02-21 16:19:09 -07:00
Jon Rafkind
b74ad87160 [honu] wrap the condition of when expression inside parentheses. instantiate literal sets at the proper phase for honu macros 2012-02-01 16:05:41 -07:00
Jon Rafkind
1fac120cd2 [honu] move core definition of honu-syntax to another module 2012-01-26 13:32:52 -07:00
Jon Rafkind
bef2f188b3 [honu] move when macro to the honu language 2011-11-22 10:30:43 -07:00
Jon Rafkind
9ec39fd590 [honu] add format and a facility to convert floats to integers 2011-11-14 17:49:15 -07:00
Jon Rafkind
6b6ca7a7c3 [honu] allow %racket expressions to remain inside honu syntax and remove them after parsing 2011-11-10 15:55:54 -07:00
Jon Rafkind
8fe87bd2a9 [honu] reparse honu expressions into racket expressions 2011-11-09 11:17:41 -07:00
Jon Rafkind
b25406db4c [honu] re-attach the output of macros to the input stream. wrap racket expressions so they dont get reparsed 2011-11-09 11:17:40 -07:00
Jon Rafkind
6b519f7b64 [honu] remove extra semicolon from cond 2011-10-23 14:06:12 -06:00
Jon Rafkind
ffc5387ac3 [honu] configure honu runtime to use the honu syntax reader. this allows honu to be used at the repl 2011-09-06 17:33:12 -06:00
Jon Rafkind
60aabdc8c5 [honu] don't stop parsing the current expression after invoking a macro.
add a file to help test honu.
2011-08-19 17:12:13 -06:00
Jon Rafkind
07715da5e9 [honu] dont remove syntaxes that end expressions from the stream so macros can consume them. add a simple cond macro 2011-08-17 13:47:58 -06:00
Jon Rafkind
85110e177b [honu] handle unary operators. add some common functions and binary operators 2011-08-17 13:47:58 -06:00
Jon Rafkind
2737351c4a start new honu implementation 2011-07-12 10:37:23 -06:00
Jon Rafkind
b406e74a8e remove old parser implementation. disable honu expansion and disable
debugging output
2010-10-22 14:33:22 -06:00
Jon Rafkind
e1ca24b80d add parse file 2010-10-22 10:48:12 -06:00
Jon Rafkind
1b356476a4 change printf to debug. add infix macro parser 2010-10-22 10:48:11 -06:00
Jon Rafkind
c45aba592d allow comma in templates 2010-10-22 10:48:11 -06:00
Jon Rafkind
86e7b98d65 fix condition. patterns can take literals 2010-10-22 10:48:11 -06:00
Jon Rafkind
eeaf6b4981 fix with-syntax 2010-10-22 10:48:10 -06:00
Jon Rafkind
02e87cdc0c add with-syntax 2010-10-22 10:48:10 -06:00
Jon Rafkind
03562eb8e3 fix if. add check_expect. add some comparison operators 2010-10-22 10:48:10 -06:00
Jon Rafkind
00094ba4e3 make print a macro 2010-10-22 10:48:09 -06:00
Jon Rafkind
9c30bda973 use honu/core. make a convenient macro for providing stuff 2010-10-22 10:48:08 -06:00
Jon Rafkind
00989ef01b add honu function 2010-10-22 10:48:08 -06:00
Jon Rafkind
32227e391d move rest of honu files. point core at local private files 2010-10-22 10:48:08 -06:00
Jon Rafkind
b185147a45 separate honu into core and user-level modules 2010-10-22 10:48:07 -06:00
Jon Rafkind
ebb177f28d parse assignment. add simple struct form that can be accessed by field identifiers 2010-10-22 10:48:07 -06:00
Jon Rafkind
9a984fcc2b parse assignment 2010-10-22 10:48:06 -06:00
Jon Rafkind
222a3f509b allow multiple patterns in a macro. parse call before macro invocation. expressions can end with any number of semicolons 2010-10-22 10:48:06 -06:00
Jon Rafkind
44fc323cff emit macro-debugger steps. dont try to use phased macro invocation 2010-10-22 10:48:05 -06:00
Jon Rafkind
af678f40ec start to trampoline macro expansion 2010-10-22 10:48:05 -06:00
Jon Rafkind
2c6cf77b53 add another introducer. compute syntax position more accurately. parse statements 2010-10-22 10:48:05 -06:00
Jon Rafkind
befa88f1ac use literal sets 2010-10-22 10:48:05 -06:00
Jon Rafkind
99545f8a08 repeater for entire expressions 2010-10-22 10:48:04 -06:00
Jon Rafkind
81544ea644 use a different syntax for expressions 2010-10-22 10:48:03 -06:00
Jon Rafkind
9894670dbe define patterns (really syntax-classes). use different parsers depending on the context. implement provide and require 2010-10-22 10:48:00 -06:00
Jon Rafkind
0ec71da614 attach original syntax properties during expansion. add debug syntax
classes.
2010-10-22 10:48:00 -06:00
Jon Rafkind
d90235efbc dont parse raw scheme syntax. fix comma replacer 2010-10-22 10:47:59 -06:00
Jon Rafkind
59db2491d0 honu-syntax supports commas 2010-10-22 10:47:59 -06:00
Jon Rafkind
1b088f7c37 expand syntax properly. force use of syntax-parse classes 2010-10-22 10:47:59 -06:00
Jon Rafkind
d5357f6dca expose syntax-parse classes 2010-10-22 10:47:58 -06:00
Jon Rafkind
721c815d89 allow macros to reparse their input 2010-10-22 10:47:58 -06:00
Jon Rafkind
066166ce65 start to get transformers to work. weave in scheme syntax 2010-10-22 10:47:58 -06:00
Jon Rafkind
3d52f5ff12 parse macro functions 2010-10-22 10:47:58 -06:00
Jon Rafkind
31cafd7974 move syntax-rules macro to a syntax-parse pattern 2010-10-22 10:47:57 -06:00
Jon Rafkind
d5533606e6 attach honu-syntax to output from syntax-rules macros 2010-10-22 10:47:57 -06:00