Commit Graph

42 Commits

Author SHA1 Message Date
Elf M. Sternberg fb7dab6b33 [chore] Removed a symbolic link that went nowhere. 2015-07-07 20:01:59 -07:00
Elf M. Sternberg bc857b19f1 [feat] The CPS-based interpreter from Chapter 3 of LiSP, with tests.
This passes all the basic tests provided from Lisp In Small Pieces,
chapter 3.  This is a functional LiSP interpreter with limited ability
and very little bug handling, but it's a solid implementation that
matches the specification and passes the tests provided for the CPS
interpreter.

This commit does *not* provide any of the continuation variants
described in the book; it is only the base interpreter.
2015-07-07 19:57:35 -07:00
Elf M. Sternberg 560bcd4dda [bug] Fixed the reader to handle dotted lists.
This support is ugly and probably incorrect, but it passes all the current
tests and handles test cases in the original documentation.
2015-07-07 19:56:11 -07:00
Elf M. Sternberg 8572d84817 Merge fix. 2015-07-04 15:28:56 -07:00
Ken Elf Mathieu Sternberg 1c4975067d TEST: Add tests for the reader (!), which I had forgotten.
This also adds a number of accesory functions necessary for rationalizing
the record structure of an object in the lex/parse phase into something
more lisp-like.  There's a metadata issue here that I'm not quite wrapping
my head around.
2015-07-03 15:47:04 -07:00
Ken Elf Mathieu Sternberg 254c1c0f60 FEAT: Completed chapter 3 interpreter implementation. 2015-07-03 15:45:37 -07:00
Elf M. Sternberg f711432626 Updating. 2015-07-03 12:58:08 -07:00
Elf M. Sternberg c2ff0a3d88 Added some comments. 2015-07-02 17:21:50 -07:00
Ken Elf Mathieu Sternberg 51ae30e31f Thinking about that chapter 3 interpreter from the book. 2015-07-01 17:38:31 -07:00
Ken Elf Mathieu Sternberg 368abbf827 Moving stuff around. Broke tests. Fixed tests. 2015-07-01 13:55:22 -07:00
Ken Elf Mathieu Sternberg bd9cb09298 Unicode seems borked on my desktop. Sorry about this. 2015-07-01 13:32:50 -07:00
Ken Elf Mathieu Sternberg fc0ad0c05a Update. 2015-07-01 13:32:07 -07:00
Ken Elf Mathieu Sternberg cbd2c168da Trying to keep test artifacts out of the repo. 2015-07-01 13:25:34 -07:00
Ken Elf Mathieu Sternberg abe220ac1f Not needed. 2015-07-01 13:25:13 -07:00
Ken Elf Mathieu Sternberg 291f9771f5 Found the disconnect. As always, a type issue. Dammit. 2015-07-01 13:24:45 -07:00
Elf M. Sternberg 9d9624632a Fixed test pass. Almost have CPS running. 2015-06-30 08:05:58 -07:00
Elf M. Sternberg df6f3f17ae Elf clarified test messages to distinguish interpreter cores. 2015-06-17 15:35:16 -07:00
Elf M. Sternberg b8a19d5c79 Improving test results. 2015-06-17 15:34:11 -07:00
Elf M. Sternberg a5e4558df9 Back to JUnit. 2015-06-17 13:55:58 -07:00
Elf M. Sternberg 8c9f6622d4 A different Jenkins integration. 2015-06-17 13:49:15 -07:00
Elf M. Sternberg b8909fcfd1 That's not coffee. 2015-06-17 13:47:15 -07:00
Elf M. Sternberg 1127498546 Added jenkins-style reporatge. 2015-06-17 13:46:22 -07:00
Elf M. Sternberg 3238844835 Added tests. 2015-06-17 13:41:32 -07:00
Elf M. Sternberg b8aa463993 Updated. 2015-06-17 13:02:37 -07:00
Elf M. Sternberg cff2d5cb97 Updated interpreter. Chapter 3 is still underway. 2015-06-17 12:37:02 -07:00
Elf M. Sternberg f17e74207e Re-arranging for Mocha. 2015-06-17 12:34:31 -07:00
Elf M. Sternberg 647dfbbc14 Reverting to a simpler CPS style. 2015-06-10 17:28:47 -07:00
Elf M. Sternberg c0bcc268a0 Commented invoke() usage. 2015-06-01 10:08:17 -07:00
Elf M. Sternberg 74579b9fa0 Added a lot of comments to the interpreter, clearing up a confusion in my mind. 2015-06-01 07:40:15 -07:00
Elf M. Sternberg 40a4d5ca19 Prepping for Chapter 3. 2015-05-21 13:02:39 -07:00
Elf M. Sternberg 2bc6312415 Moving to a more nuanced naming scheme. What happens next will amaze you! 2015-05-20 16:52:36 -07:00
Elf M. Sternberg 11e1ed7cf4 It works recursively. This will restore your faith in humanity!
I spent far too much time debugging an issue with metacadr (see the
cons-list commits for details), but this now successfully recurses
and all of its code paths are exercised by the factorial/fibonacci
exercises.  This is a Coffeescript implementation of the language
described at the end of chapter 1 of Lisp In Small Pieces.

Also, added a syntax-aware pretty printer.  It's very primitive, but
it's good enough for some debugging.
2015-05-20 15:47:51 -07:00
Elf M. Sternberg 570fb2b1df Some renaming; one major bugfix, using cons-lists instead of a local library. 2015-05-20 09:41:30 -07:00
Elf M. Sternberg 86efa8c09a Coffeescript attempt. 2015-05-13 22:28:55 -07:00
Elf M. Sternberg 0551a6fd4c Chapter 3 stub. 2015-05-13 22:23:30 -07:00
Elf M. Sternberg 34fef03ba8 Caught a silly typo; now sufficient to support classic factorials with recursions. 2015-04-28 08:51:34 -07:00
Elf M. Sternberg 54de465dbe Making the predicate operator a macro. 2015-04-15 16:33:25 -07:00
Elf M. Sternberg 525668310b Cleanup pass over comments in chapter 1. 2015-04-15 16:01:30 -07:00
Elf M. Sternberg 5ac7969712 Added README. Whee. 2015-04-15 15:57:52 -07:00
Elf M. Sternberg 0f4c149eb6 Merge branch 'master' of github.com:elfsternberg/LispInSmallPieces
* 'master' of github.com:elfsternberg/LispInSmallPieces:
  Initial commit
2015-04-15 15:57:10 -07:00
Elf M. Sternberg 6fda499306 Initial commit 2015-04-15 15:54:38 -07:00
Elf M. Sternberg d7f8dddb91 Chapter one. It actually works. 2015-04-15 15:50:53 -07:00