Dylan Baker
5d73f82733
Compile to HTML
6年前
Dylan Baker
a0ac2606ec
Rename head/tail to first/rest
Trying to avoid conflict with the <head> tag
6年前
Dylan Baker
fb75ea9bc2
Style
6年前
Dylan Baker
7bbcd1de4f
Fix bug where lambda required an application
6年前
Dylan Baker
cf57876795
Implement compiler
Just strings and numbers for now
6年前
Dylan Baker
7d8caf316f
Prettier
6年前
Dylan Baker
f1466bf07a
Add cons, head, and tail; remove type checking
I think there’s a better way to do type checking so I’m going to hold off on it for now and get basic functionality working for now and come back later.
6年前
Dylan Baker
da6ce44556
Add length function; preserve Number node line numbers
6年前
Dylan Baker
0abc70adbd
Move core functions to their own module
6年前
Dylan Baker
acc88c3df9
Create list function
6年前
Dylan Baker
65eade66fd
Remove unused import
6年前
Dylan Baker
8821f2368e
Make sure all arguments get evaluated
6年前
Dylan Baker
e045a21b34
Remove experimental file
6年前
Dylan Baker
d66c23ab39
Prettier
6年前
Dylan Baker
80c7326df2
Implement missing closing “/) errors
6年前
Dylan Baker
bd4aa9d124
Fix error handling and bug where let bindings stay in scope
6年前
Dylan Baker
c93190c567
Implement let bindings
6年前
Dylan Baker
2f5f91b2fe
Alphabetize methods
6年前
Dylan Baker
9ae2911337
Reorganize bin.js a little
6年前
Dylan Baker
380e81044f
Remove stray semicolon
6年前
Dylan Baker
fc7978ce6b
Evaluate conditionals
6年前
Dylan Baker
b9e4a1f908
Move AST nodes into one file
6年前
Dylan Baker
9662adf8aa
Implement definitions
6年前
Dylan Baker
ca4684994c
Evaluate booleans and strings
6年前
Dylan Baker
63d4d4b735
Evaluate lambda functions
6年前
Dylan Baker
369853af3e
Replace compiler with evaluator
This class exposes two functions. `evalNode` take an AST node and evaluates it down to simplest terms. `eval` takes an array of AST nodes and calls evalNode on each of them. I don’t think we’re quite ready to be producing HTML yet so let’s not get ahead of ourselves.
6年前
Dylan Baker
4d957c60a0
Core functions should return Oslo types, not JS types
6年前
Dylan Baker
f4f4f18106
Add comparison functions to core env
6年前
Dylan Baker
76c6eac9b5
Implement conditionals
Currently I'm relying on JavaScript's semantics
around truthiness. I think I'm going to retain
that ease of use (i.e. `(if list #t #f)` should
return true if the list has more than 0 elements,
etc) but I want to specify that behavior myself.
6年前
Dylan Baker
c833db2f94
LOL I forgot how Lisp works
6年前
Dylan Baker
3e5a873054
Prettier :/
6年前
Dylan Baker
b83126524d
Make all functions lambdas for now
6年前
Dylan Baker
06ab1b52d4
Compile function applications (named and lambda)
6年前
Dylan Baker
7a9b1a6727
Create simple compiler class
Just numbers and strings for now
6年前
Dylan Baker
0b4d63ee91
Make sure source gets passed in as a string
I noticed that if you passed in just a number, JS
would helpfully parse that and then
`source.length` was undefined, which broke the
lexer.
6年前
Dylan Baker
bffecce670
Add lambdas
6年前
Dylan Baker
90d84dbb6f
Prettier
6年前
Dylan Baker
67ca84857f
Prettier
6年前
Dylan Baker
4b3ce29206
Remove resolver and compiler, add define to parser
6年前
Dylan Baker
91730231df
Saving state
6年前
Dylan Baker
3b6525e29f
Prettier
6年前
Dylan Baker
497af0aa34
Implement test helper functions
6年前
Dylan Baker
296e94f25a
Add .DS_Store and .oslo files to gitignore
I keep test .oslo files around and I hate not
having a clean repo.
6年前
Dylan Baker
681a88a755
Clean up unused stuff
6年前
Dylan Baker
a3e6a6df66
Move list of selfclosing tags into its own module
6年前
Dylan Baker
60c6d9a24a
Don't include ="" for attributes with empty string
6年前
Dylan Baker
20ab139ca7
Add doctype to list of self closing tags
I added upper and lowercase because that seemed
preferable to always casting every html function
name to lowercase.
6年前
Dylan Baker
f77ad26a69
Allow empty strings
6年前
Dylan Baker
581c99f794
Rewrite AST and compiler to be more normal
6年前
Dylan Baker
c7c40f7df7
Implement number and boolean types
6年前