Commit Graph

334 Commits

Author SHA1 Message Date
Jon Rafkind
1f8c1950fb [honu] allow multiple variables to be declared at once 2011-11-14 17:49:15 -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
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
6b519f7b64 [honu] remove extra semicolon from cond 2011-10-23 14:06:12 -06: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
Matthew Flatt
ec380e34ed remove built-in reader and printing support for Honu
This is a backward-incompatible change, but I think it's
unlikely that any code depends on the removed bindings
or reader syntax.
2011-10-05 09:40:27 -06:00
Eli Barzilay
81e0f3f3d7 Move scribblings/honu' to honu/scribblings'.
Also, use `user-doc' since it's not distributed, yet.
2011-09-21 16:10:48 -04:00
Jon Rafkind
34689f1711 [honu] checkpoint for docs 2011-09-20 18:05:27 -06:00
Jon Rafkind
b4a74fc12d [honu] return eof at the repl if an eof-object is read 2011-09-15 17:21:24 -06:00
Jon Rafkind
808c2bdf27 [honu] read and parse a line at the repl 2011-09-15 16:01:54 -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
d53332c1f7 [honu] remove debugging output 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
6af36bc25d [honu] treat #\return like #\newline 2011-08-30 17:19:17 -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
758edda5ce [honu] accidentally added these files, so removing them 2011-08-19 17:21:56 -06:00
Jon Rafkind
242337286d [honu] move test to the tests collection 2011-08-19 17:13:22 -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
4324a1a33d [honu] add colored lexer so drracket can color honu syntax appropriately 2011-08-03 14:37:26 -06:00
Jon Rafkind
adecdd5603 [honu] return a parse error if the lexer couldnt find any other matching regex 2011-08-03 14:37:26 -06:00
Jon Rafkind
7f3e434cb5 [honu] allow nested block comments 2011-07-29 18:42:55 -06:00
Jon Rafkind
cd5d0ee9a3 [honu] fix escapes in string literals 2011-07-29 16:59:48 -06:00
Jon Rafkind
7532515110 [honu] use regular expressions to lex comments 2011-07-29 16:59:48 -06:00
Jon Rafkind
cd62f1983f show line/column information for parsing errors 2011-07-29 16:59:48 -06:00
Jon Rafkind
1e4c9b4ec3 use new reader for #lang honu 2011-07-26 17:41:07 -06:00
Jon Rafkind
ae6a69b8eb make syntax objects 2011-07-26 17:41:07 -06:00
Jon Rafkind
a39cd8773a refactor 2011-07-26 17:41:07 -06:00
Jon Rafkind
df9b8db14a parse sub-trees 2011-07-26 17:41:06 -06:00
Jon Rafkind
1f9b9b4c51 parse tokens into a tree 2011-07-26 17:41:06 -06:00
Jon Rafkind
1978002312 handle end of line comments 2011-07-26 12:31:45 -04:00
Jon Rafkind
f941e56f71 lex identifiers and delimiters 2011-07-26 12:31:45 -04:00
Jon Rafkind
4e8e18463b add lexer for honu 2011-07-26 12:31:44 -04: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
Robby Findler
507b1cd8fd moved the docs-complete library into rackunit
to avoid having a separate, new manual for the
  one library
2011-05-05 16:10:42 -05:00
Jon Rafkind
d859642195 remove honu from docs check 2011-04-26 10:36:53 -06:00
Robby Findler
e7d0029aea added lots of new tests that our documentation is complete 2011-04-25 13:24:43 -05: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
e1ca24b80d add parse file 2010-10-22 10:48:12 -06:00
Jon Rafkind
a1e26dd01b try to fix infix macros 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
29ed62021c convert syntax back to honu form 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
3d26928a3c parse blocks 2010-10-22 10:48:09 -06:00
Jon Rafkind
00094ba4e3 make print a macro 2010-10-22 10:48:09 -06:00
Jon Rafkind
3d6de914b4 add print - display + newline 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
Jon Rafkind
177141a852 test 2010-10-22 10:47:57 -06:00
Jon Rafkind
837f1e24e5 test 2010-10-22 10:47:56 -06:00
Jon Rafkind
64255032bb start to modify scheme's `syntax' binding 2010-10-22 10:47:56 -06:00
jon
2f5593a104 implement honu-syntax 2010-10-22 10:47:56 -06:00
jon
99e6eb5e9d fix parser so that it parses left to right 2010-10-22 10:47:56 -06:00
jon
72f83d19a9 parse transformers 2010-10-22 10:47:55 -06:00
jon
e052c33998 add hook for parsing transformers 2010-10-22 10:47:55 -06:00
Ryan Culpepper
a436df02f4 fixed another reference to syntax/parse/experimental/splicing 2010-08-31 16:21:44 -06:00
Ryan Culpepper
712a8f60e9 updated syntax/parse/exp./splicing, updated honu use
fixed stress.rkt
2010-08-31 16:21:44 -06:00
Matthew Flatt
28b4043077 rename all files .ss -> .rkt 2010-04-27 16:50:15 -06:00
Jon Rafkind
a1d5573613 move bindings to different modules
svn: r17934
2010-02-01 22:57:42 +00:00
Jon Rafkind
f980cf9462 use new syntax-parse primitive to enable macro invocation during expression parsing
svn: r17891
2010-01-30 01:42:14 +00:00
Jon Rafkind
794efa5ebb s/trigraph/ternary
svn: r17833
2010-01-26 00:25:45 +00:00
Jon Rafkind
9ee9280485 support commas in function calls
svn: r17832
2010-01-26 00:10:01 +00:00
Jon Rafkind
6f26a0ffeb add trigraph expression
svn: r17831
2010-01-25 23:21:26 +00:00
Jon Rafkind
9dccfcbe28 factor out common expressions for better performance. thanks to ryan
svn: r17821
2010-01-25 18:51:34 +00:00
Jon Rafkind
bee5af120b add more operators
svn: r17773
2010-01-22 22:14:28 +00:00
Jon Rafkind
3e4221b410 cleanup
svn: r17771
2010-01-22 21:11:26 +00:00
Jon Rafkind
91e3bc001f use a macro for generating infix precedence table
svn: r17770
2010-01-22 19:55:02 +00:00
Jon Rafkind
21aab7e99c generalize infix operator definition
svn: r17762
2010-01-21 00:53:13 +00:00
Jon Rafkind
94f0edd8d2 parse + expressions
svn: r17761
2010-01-21 00:19:23 +00:00
Jon Rafkind
8f4853a3ae replace ; with semicolon
svn: r17760
2010-01-21 00:06:21 +00:00
Jon Rafkind
b3d41faa68 parse function calls and definitions
svn: r17669
2010-01-15 21:44:56 +00:00
Jon Rafkind
9c2ea4c1cf use syntax/parse for parsing honu forms
svn: r17620
2010-01-12 21:51:34 +00:00