Commit Graph

161 Commits

Author SHA1 Message Date
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
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
54449d824c [honu] use a function keyword to define procedures and make lambdas 2012-02-01 16:05:40 -07:00
Jon Rafkind
42d21a9918 [honu] erase old files 2012-01-26 13:56:05 -07:00
Jon Rafkind
b67f5e71e6 [honu] add moere assignment operators 2012-01-26 13:32:52 -07:00
Jon Rafkind
9e8a77c5c5 [honu] fix more references to := 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
1fac120cd2 [honu] move core definition of honu-syntax to another 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
2af9100a5d [honu] make "then" keyword required for if again. start to add more loop types to for 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
1b81ed5d8d [honu] add != operator. provide some other basic functions 2012-01-18 12:34:51 -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
ec02c2f83a [honu] refactor dot into syntax classes 2012-01-09 10:38:12 -07:00
Jon Rafkind
13abcf91fb [honu] make dot a fixture so that assignment can work: v.x := 5 2012-01-09 10:38:11 -07:00
Jon Rafkind
c9788909ea [honu] fix for literal sets generated in a macro. replace . with -> for classes in the linq example 2012-01-09 10:38:11 -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
bef2f188b3 [honu] move when macro to the honu language 2011-11-22 10:30:43 -07:00
Jon Rafkind
4c00c26cd5 [honu] clean up main file requires and provides 2011-11-22 10:30:42 -07:00
Jon Rafkind
23cbc505cc [honu] define parsing macro in the transformer phase. also provide a bunch of things from main 2011-11-17 23:34:59 -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
080e6bc25a [honu] allow else patterns for match 2011-11-15 23:36:01 -07:00
Jon Rafkind
a38949d8ba [honu] use reified syntax classes to check for literals instead of direct comparisons with free-identifier=? 2011-11-15 23:36:00 -07:00
Jon Rafkind
219a39575a [honu] actually check for separator for the separate ids class. parse constructor arguments with comma separated ids 2011-11-15 12:19:27 -07:00
Jon Rafkind
815c3887fb [honu] abstract out separated identifiers 2011-11-15 12:19:26 -07:00
Jon Rafkind
1f8c1950fb [honu] allow multiple variables to be declared at once 2011-11-14 17:49:15 -07:00
Jon Rafkind
9d393f991f [honu] filter out non-pattern variables 2011-11-14 17:49:15 -07:00
Jon Rafkind
0d89827a85 [honu] share the variable declaration syntax by moving the pattern to a syntax class 2011-11-14 17:49:15 -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
a4123ce536 [honu] rebind the result of parsing to the original pattern variable name 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
34689f1711 [honu] checkpoint for docs 2011-09-20 18:05:27 -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
18b18aaded [honu] add string comparison. add test.xml file for linq example 2011-09-15 16:01:54 -06:00
Jon Rafkind
aaed60493a [honu] recognize linq literals 2011-09-15 16:01:53 -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
6bf5d43c37 [honu] expand honu's #%top-interaction to racket's #%top-interaction 2011-09-06 17:33:13 -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
Eli Barzilay
6ebf3ab32d Revert "Abolish "typed-scheme"."
This reverts commit 49a89da818.

(Will be redone later today.)
2011-09-04 10:27:58 -04:00
Eli Barzilay
49a89da818 Abolish "typed-scheme". 2011-09-04 08:46:03 -04: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
Jon Rafkind
6c75b60d1b [honu] add assignment operator 2011-08-30 17:19:17 -06:00
Jon Rafkind
6b766cd395 [honu] add list comprehensions 2011-08-19 17:12:14 -06:00
Jon Rafkind
816b1747e9 [honu] fix if 2011-08-19 17:12:13 -06:00
Jon Rafkind
c6e35ff665 [honu] move test file. minor cleanups to the parsing code 2011-08-19 17:12:13 -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
0bac61f538 [honu] add flow operator which composes functions from right to left 2011-08-12 15:16:39 -06:00
Jon Rafkind
d4763da563 [honu] add structs and use . to lookup the field names in a struct instance 2011-08-12 15:16:39 -06:00
Jon Rafkind
5157a333bb [honu] use brackets to do list lookup instead of using dot 2011-08-12 15:16:39 -06:00
Jon Rafkind
17f1ac53be [honu] add dot as an operator. parse parenthesized expressions 2011-08-10 17:33:43 -06:00
Jon Rafkind
c8695ddf2e [honu] set associativty for operators 2011-08-10 17:33:43 -06:00
Jon Rafkind
2f2e1e6a03 [honu] add :: as the infix cons operator 2011-08-09 16:25:28 -06:00
Jon Rafkind
0871117538 [honu] add [] as a list form 2011-08-09 16:25:28 -06:00
Jon Rafkind
ab0a21db99 [honu] add quote and quasiquote 2011-08-09 16:25:27 -06:00
Jon Rafkind
4538335b1c [honu] return a void expression if there is no current expression waiting to be processed 2011-08-09 16:25:27 -06:00
Jon Rafkind
3bcf99b8f6 [honu] parse brace-enclosed code as an expression 2011-08-09 11:57:52 -06:00
Jon Rafkind
b823df23a7 [honu] handle empty files 2011-08-09 11:57:52 -06:00
Jon Rafkind
182cded2a3 [honu] return the last expression if two atomic expressions occur in sequence. add a simple for loop macro 2011-08-09 11:57:52 -06:00
Jon Rafkind
1e4c9b4ec3 use new reader for #lang honu 2011-07-26 17:41:07 -06:00
Jon Rafkind
23e907aa5c add printf. recognize strings as atoms 2011-07-22 14:43:45 -04:00
Jon Rafkind
d4ea3b5d79 parse multiple call arguments 2011-07-22 14:43:45 -04:00
Jon Rafkind
1b914ead61 add optional val before functions and arguments 2011-07-20 19:22:30 -06:00
Jon Rafkind
292512221e function == lambda. add new syntax for defining functions 2011-07-20 19:22:30 -06:00
Jon Rafkind
a7768a13a3 use #%module-begin for honu modules so top level expressions get printed
macros return whether they terminate parsing
2011-07-19 11:00:32 -06:00
Jon Rafkind
3a1dde7f14 parse arguments. provide basic math operations 2011-07-18 11:28:34 -06:00
Jon Rafkind
3736571ad0 fix sequences 2011-07-14 16:54:26 -06:00
Jon Rafkind
a29d64b44a enable #lang honu 2011-07-14 16:54:26 -06:00
Jon Rafkind
57a759c383 fix parsing for operators 2011-07-14 16:54:26 -06:00
Jon Rafkind
3e96a1e66e parse operators 2011-07-13 16:09:22 -06:00
Jon Rafkind
acb3bce1e7 add function as a macro 2011-07-13 16:09:21 -06:00
Jon Rafkind
2737351c4a start new honu implementation 2011-07-12 10:37:23 -06:00
Eli Barzilay
3157955d40 ".ss" -> ".rkt" scan done. 2011-07-02 10:37:53 -04:00
Vincent St-Amour
fcf766c905 Prune dead code from Honu.
Approved by Jon Rafkind.
2011-05-24 10:57:31 -04:00
David Van Horn
c9519fd113 Fixed various spelling errors. 2011-02-03 17:42:33 -05:00
Jon Rafkind
b8ad3ad1cb use racket. add list-match utility 2010-10-27 12:07:36 -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
a1e26dd01b try to fix infix macros 2010-10-22 10:48:12 -06:00