Commit Graph

55 Commits (e8c9c6cdd8e58c8660470046d3177e2d3e9af0c2)

Author SHA1 Message Date
Mike Gerwitz f2adafb264
prebirth: Allow toplevel function applications
So we can invoke the main function for the program.

* build-aux/bootstrap/prebirth.js
  (Compiler#_cdfn): Handle non-`define' applications.
  (Compiler#assertApply): Remove function.
2017-08-28 01:21:02 -04:00
Mike Gerwitz f23396de2e
prebirth: Abandon `define-block' in favor of `define'
Turns out, I'll kill myself before writing a Prebirth compiler in a
block-define-based Prebirth Lisp.  So, let's degrade even further into a
primitive Scheme.  This is going down a dangerous path to simply
implementing Scheme...

Nonetheless, here I remove `define-block' in favor of a simple shorthand
function definition `define', as is custom in Scheme.  We will worry
about block definitions later as metadata mapping to normal functions.
2017-08-28 00:53:02 -04:00
Mike Gerwitz c0fb8297a6
Prebirth: Add docstring
* build-aux/bootstrap/prebirth.js (Compiler#_docstring): Add method.
  (Compiler#_cdfn): Use it.
2017-08-21 02:39:33 -04:00
Mike Gerwitz 7998296a20
Add prebirth.js
This is hopefully the beginning of a good thing that I'll actually
finish.  I began planning this project formally just before the beginning of
Aug 2017.

* build-aux/bootstrap/prebirth.js: New file.
2017-08-21 02:20:10 -04:00
Mike Gerwitz ecd8b6d9e7
Add README.md and COPYING 2017-08-21 02:19:36 -04:00