Commit Graph

77 Commits

Author SHA1 Message Date
Jon Rafkind
806b3072e3 [honu] add simple syntax-parse form. add syntax-class for delaying parsing 2012-06-11 13:07:54 -06:00
Jon Rafkind
6457e69b48 [honu] support for-syntax in require 2012-06-11 13:07:53 -06:00
Jon Rafkind
fc96cb258c [honu] assignment operators cooperate with the dot operator 2012-06-11 13:07:52 -06:00
Jon Rafkind
40a3161570 [honu] always keep parsing a unary operator 2012-04-23 17:18:12 -06:00
Jon Rafkind
4799d08022 [honu] dont splice the output of a macro directly into the output 2012-04-23 17:18:12 -06:00
Jon Rafkind
9858ec72d2 [honu] allow syntax() form to accept a single term. provide some hash stuff 2012-04-20 14:08:36 -06:00
Jon Rafkind
bb57412242 [honu] check for definitions before continuing to parse. completely parse the left hand side of an operator 2012-04-20 14:08:36 -06:00
Jon Rafkind
c390d96780 [honu] only allow semicolons in expression sequence position 2012-04-12 12:50:44 -06:00
Jon Rafkind
fa8377883d [honu] explicitly check for commas when parsing a comma separated expression sequence 2012-04-12 12:50:44 -06:00
Jon Rafkind
bbc806732c [honu] always reparse the output of honu-expression. provide honu-comma so that it works with literal sets 2012-04-06 12:36:19 -06:00
Jon Rafkind
918c87e96b [honu] return the current expression when a semicolon is parsed 2012-03-20 11:32:46 -06:00
Jon Rafkind
a94b7b9260 [honu] fix some tests. always reparse the right hand side of an operator 2012-03-05 13:48:52 -07:00
Jon Rafkind
249c7b02ca [honu] use syntax properties to differentiate parsed syntax from unparsed 2012-03-05 13:48:52 -07:00
Jon Rafkind
89f511fb3e [honu] bind all attributes from a syntax class. allow multiple expressions in a match list 2012-03-05 13:48:52 -07:00
Jon Rafkind
4852904035 [honu] wrap expressions with let so local macro parsers can be defined. replace more usages of %racket with racket-syntax 2012-02-21 16:19:10 -07:00
Jon Rafkind
7379684c5b [honu] use syntax properties to differentiate racket syntax from honu syntax instead of the %racket identifier 2012-02-21 16:19:10 -07:00
Jon Rafkind
bb85c06df4 [honu] use honu->racket in more builtin forms 2012-02-21 16:19:09 -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
549a7522e3 [honu] add syntactic patterns. parse the output of macros using a local define-syntax (kind of hackish) 2012-02-21 16:19:09 -07:00
Jon Rafkind
54449d824c [honu] use a function keyword to define procedures and make lambdas 2012-02-01 16:05:40 -07:00
Jon Rafkind
b67f5e71e6 [honu] add moere assignment operators 2012-01-26 13:32:52 -07:00
Jon Rafkind
7e5a0285d3 [honu] replace := with = 2012-01-26 13:32:52 -07:00
Jon Rafkind
d6be1fbdee [honu] move operators to their own module 2012-01-26 13:32:52 -07:00
Jon Rafkind
2b6efee854 [honu] still need := 2012-01-26 13:32:51 -07:00
Jon Rafkind
d7a35c1eb8 [honu] use = for mutation to be consistent with other uses. put where clauses of list comprehensions on the right side 2012-01-26 13:32:51 -07:00
Jon Rafkind
a1869fa2f1 [honu] then is optional in "if". allow multiple sequences in for. add for/fold 2012-01-26 13:32:51 -07:00
Jon Rafkind
bc30a94c72 [honu] allow list comprehensions to follow expressions 2012-01-26 13:32:50 -07:00
Jon Rafkind
9d11622968 [honu] add a filtering clause to list comprehensions 2012-01-18 12:34:51 -07:00
Jon Rafkind
6552d3f2cd [honu] allow classes to accept 0 constructor parameters. add 'to' as a binary operator that creates a list of numbers 2012-01-18 12:34:51 -07:00
Jon Rafkind
a9ba721be8 [honu] add example of lexically scoped macros 2011-11-22 10:30:44 -07:00
Jon Rafkind
42caad96de [honu] use honu-body directly in the parser 2011-11-22 10:30:44 -07:00
Jon Rafkind
4b4a369d84 [honu] abstract out delayed parsing 2011-11-22 10:30:43 -07:00
Jon Rafkind
973000adbb [honu] delay parsing of function bodies 2011-11-22 10:30:43 -07:00
Jon Rafkind
70589a7033 [honu] create a new syntax class for parsing expressions at current-phase + 1. allow new operators to be defined using honu syntax 2011-11-17 23:34:59 -07:00
Jon Rafkind
5cb1834376 [honu] redo operator parsing to fix various precedence cases. add a new quasi-operator macro that can consume as much input on the right as it wants and use that to call methods on objects. change = to equal?. allow variables to be defined in classes 2011-11-14 00:45:55 -07:00
Jon Rafkind
dfe33f8919 [honu] convert function bodies from honu to racket 2011-11-11 10:35:09 -07:00
Jon Rafkind
6e3cf95e83 [honu] parse bodies of macros early. re-parse the output of macros 2011-11-10 15:55:55 -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
5aa6b0b06e [honu] dont parse the output of syntax too early. wrap some core racket forms with %racket 2011-11-09 11:17:40 -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
dccdcb0550 [honu] wrap expressions with a semicolon at the end of them in (%semicolon ...) 2011-10-23 14:06:06 -06:00
Jon Rafkind
b055ce9fe0 [honu] wrap blocks inside a definition context (with let) 2011-10-23 13:26:28 -06:00
Jon Rafkind
219516b321 [honu] use an empty "begin" if nothing was parsed 2011-09-15 16:01:54 -06:00
Jon Rafkind
0b4e630b8c [honu] return currently parsed form if a macro is seen 2011-09-15 16:01:54 -06:00
Jon Rafkind
501efef8a1 [honu] dont produce an extra void expression in a block. add a for form to iterate over a list. add an example of linq with xml 2011-09-13 12:15:47 -06:00
Jon Rafkind
1650294a83 [honu] add simple class form. share the function parsing syntax class 2011-09-13 12:15:47 -06:00
Jon Rafkind
062a20f7e1 [honu] function application respects precedence so that dot can bind higher 2011-09-13 12:15:47 -06:00
Jon Rafkind
5f0a221a03 [honu] allow already parsed expression to pass through 2011-08-30 21:11:11 -06:00
Jon Rafkind
d88b75a9b7 [honu] macros can be defined with honu syntax 2011-08-30 17:19:17 -06:00