|
|
@@ -3,7 +3,13 @@
|
|
3
|
3
|
A basic compiler based off of @thejameskyle's super-tiny-compiler, compiles a simple LISP-esque syntax into runnable JS.
|
|
4
|
4
|
|
|
5
|
5
|
Currently supports a few built-ins, `add`, `subtract`, `assign` and `log`. Hopefully these are self-explanatory, or at least
|
|
6
|
|
-they should be from `example.mc`.
|
|
|
6
|
+they should be from `example.mc`. A `#` denotes that the rest of the line (until the compiler sees `\n`) as a comment and
|
|
|
7
|
+means that it will not be compiled.
|
|
7
|
8
|
|
|
8
|
9
|
The compiler runs like `node compiler.js file.mc` where `file.mc` is the file you wish to compile, and this will produce an
|
|
9
|
10
|
`output.js` which requires `stdlib.js` to be in the same directory when running for now at least.
|
|
|
11
|
+
|
|
|
12
|
+Functions and variables are in different scopes, so variables can have the same names as functions - even builtins,
|
|
|
13
|
+thus making `(assign assign 5)` a totally okay thing to do.
|
|
|
14
|
+
|
|
|
15
|
+Note that this compiler is not only totally useless, but also horrendously inefficient. Either way it's a fun exercise :)
|