Commit Graph

88 Commits

Author SHA1 Message Date
8518c1a58f
The great librarificating rename 2017-05-30 02:43:42 +02:00
d579e68051
"quote" -> "block"
Update README accordingly.
2017-05-30 01:04:03 +02:00
4698e522cc
Fix regression in multiplication 2017-05-28 10:02:19 +02:00
81853a37fb
Update README 2017-05-27 20:20:49 +02:00
ef925158e3
Update README 2017-05-26 20:31:30 +02:00
dd957483ac
interpreter: forward "argv" 2017-05-26 20:25:02 +02:00
3e68a09ae1
Remove suck
struct context::arguments stank, the "arg" special form stank.

The amount of lines this adds can be counted on one hand.
2017-05-26 20:15:43 +02:00
8414e07010
Implement dynamic scoping
Okay, that was a PITA to not have.

But I think I'm set now, feature-wise.
2017-05-26 15:20:14 +02:00
fa892b99e7
Update README 2017-05-26 12:49:15 +02:00
f156c67e34
Simplify ".." 2017-05-26 01:47:56 +02:00
ec7a0dc95f
Add "values"
This oneliner is way too important to be left out.
2017-05-26 01:47:56 +02:00
735dfd026a
Make and/or more useful
Now they follow Scheme, they just aren't special forms here.
2017-05-26 01:27:30 +02:00
4358e6f324
Simplify runtime library initialization
And remove the error printing side effect, just like that, at a cost.
2017-05-25 19:41:27 +02:00
5ae69c1cfc
Finish implementation of printing
Now readds all syntax sugar and quotes strings properly.

Removed automatic line breaking and indenting since it is complicated.

Removed #ifndef since it stopped making any sense.
2017-05-25 18:57:01 +02:00
76df28e492
Fix "if"
Blocks didn't work.
2017-05-25 15:01:21 +02:00
a621de2d50
Update README 2017-05-25 14:38:43 +02:00
1de758b6d6
Replace for/break with a try/throw mechanism 2017-05-25 13:52:41 +02:00
aa4b4391f3
Cleanup 2017-05-25 13:52:13 +02:00
6cce0e5595
Add try/throw 2017-05-25 13:51:47 +02:00
cc302bc17c
Fix "-" 2017-05-25 13:50:42 +02:00
3929106e5d
Add "parse" 2017-05-25 13:50:26 +02:00
1f71c5202c
Make setting "set" also return the value 2017-05-25 13:49:32 +02:00
febefc6c6d
Get rid of "error_is_fatal" 2017-05-25 13:48:56 +02:00
0d078d7148
Simplify truthy() 2017-05-24 20:54:37 +02:00
a81d75164a
Make the lexer follow an unsigned string
Much safer this way, allows omitting "unsigned char" temporaries.
2017-05-24 20:47:55 +02:00
c5cd74d910
Simplify the lexer 2017-05-24 20:42:49 +02:00
383c9d8fd2
Simplify item management 2017-05-24 19:32:18 +02:00
5314815132
repl: add completion
Now it should be fairly useful despite the limitation to single lines.
2017-05-23 18:36:52 +02:00
fa06aff875
repl: highlight matching parenthesis 2017-05-23 18:08:00 +02:00
9f51b986d2
"filter" is not a primitive 2017-05-23 17:54:53 +02:00
120b604abd
Fix "unless"
Best of all is, I don't even know why it must be like that.
2017-05-21 18:48:57 +02:00
2224ca00ad
Refactor argument saving
While nothing has been achieved, at least now it should be obvious.
2017-05-21 18:32:28 +02:00
b9c2a395d9
Fix lies in README 2017-05-21 18:20:12 +02:00
9ae0e6dc0e
Specify argument in which an error happened 2017-05-21 17:57:31 +02:00
dae5622955
Remove some ancient stupidity 2017-05-21 17:47:19 +02:00
ba2e31d81f
Reorganize evaluation code 2017-05-21 17:20:15 +02:00
1ede1ed686
Fix crash in print_tree() 2017-05-21 17:11:16 +02:00
1c2db8ad6b
Allow calling literal blocks 2017-05-21 16:20:39 +02:00
d1d598f968
Update README 2017-05-21 13:37:43 +02:00
bbdd17885c
repl: slight refactoring 2017-05-21 13:24:54 +02:00
a529cf262e
Fix backtrace generation 2017-05-21 13:19:50 +02:00
f0156897c8
Add a REPL for toying around 2017-05-21 13:19:50 +02:00
455845d078
Split out the interpreter 2017-05-21 13:19:49 +02:00
b31526d6ba
Fix combined operators 2017-05-21 13:19:49 +02:00
e1ec59043e
Update README 2017-05-21 13:19:49 +02:00
8487afe7ef
Add numerical comparisons 2017-05-21 13:19:49 +02:00
5383dfac9c
Add "ne?", "ge?", "le?", "gt?"
At least in some form.
2017-05-21 13:19:49 +02:00
04364b75ea
Add "eq?" and "lt?" 2017-05-21 13:19:48 +02:00
c8e3e2eed6
Add boolean operators 2017-05-21 13:19:48 +02:00
792deba5f3
Omit trailing zeros when not necessary 2017-05-21 13:19:48 +02:00