Commit Graph

93 Commits

Author SHA1 Message Date
Přemysl Eric Janouch 9c238621a5
Relicense to 0BSD, update mail address
I've come to the conclusion that copyright mostly just stands in the way
of software development.  In my jurisdiction I cannot give up my own
copyright and 0BSD seems to be the closest thing to public domain.

The updated mail address, also used in my author/committer lines,
is shorter and looks nicer.  People rarely interact anyway.
2018-06-24 03:49:07 +02:00
Přemysl Eric Janouch 67cc243e34
_init() and _INITIALIZER -> _make()
Gets rid of stupid memset()s and some preprocessor.
2017-06-22 16:14:11 +02:00
Přemysl Eric Janouch 4a199c7b67
Add VIM syntax highlighting 2017-06-20 16:22:04 +02:00
Přemysl Eric Janouch 0ae4a42335
Make the printer generic
Now you can concatenate lists like strings.
2017-06-01 10:41:11 +02:00
Přemysl Eric Janouch 863ea189eb
Skip \r as whitespace 2017-06-01 10:30:00 +02:00
Přemysl Eric Janouch 8518c1a58f
The great librarificating rename 2017-05-30 02:43:42 +02:00
Přemysl Eric Janouch d579e68051
"quote" -> "block"
Update README accordingly.
2017-05-30 01:04:03 +02:00
Přemysl Eric Janouch 4698e522cc
Fix regression in multiplication 2017-05-28 10:02:19 +02:00
Přemysl Eric Janouch 81853a37fb
Update README 2017-05-27 20:20:49 +02:00
Přemysl Eric Janouch ef925158e3
Update README 2017-05-26 20:31:30 +02:00
Přemysl Eric Janouch dd957483ac
interpreter: forward "argv" 2017-05-26 20:25:02 +02:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 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
Přemysl Eric Janouch fa892b99e7
Update README 2017-05-26 12:49:15 +02:00
Přemysl Eric Janouch f156c67e34
Simplify ".." 2017-05-26 01:47:56 +02:00
Přemysl Eric Janouch ec7a0dc95f
Add "values"
This oneliner is way too important to be left out.
2017-05-26 01:47:56 +02:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 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
Přemysl Eric Janouch 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
Přemysl Eric Janouch 76df28e492
Fix "if"
Blocks didn't work.
2017-05-25 15:01:21 +02:00
Přemysl Eric Janouch a621de2d50
Update README 2017-05-25 14:38:43 +02:00
Přemysl Eric Janouch 1de758b6d6
Replace for/break with a try/throw mechanism 2017-05-25 13:52:41 +02:00
Přemysl Eric Janouch aa4b4391f3
Cleanup 2017-05-25 13:52:13 +02:00
Přemysl Eric Janouch 6cce0e5595
Add try/throw 2017-05-25 13:51:47 +02:00
Přemysl Eric Janouch cc302bc17c
Fix "-" 2017-05-25 13:50:42 +02:00
Přemysl Eric Janouch 3929106e5d
Add "parse" 2017-05-25 13:50:26 +02:00
Přemysl Eric Janouch 1f71c5202c
Make setting "set" also return the value 2017-05-25 13:49:32 +02:00
Přemysl Eric Janouch febefc6c6d
Get rid of "error_is_fatal" 2017-05-25 13:48:56 +02:00
Přemysl Eric Janouch 0d078d7148
Simplify truthy() 2017-05-24 20:54:37 +02:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch c5cd74d910
Simplify the lexer 2017-05-24 20:42:49 +02:00
Přemysl Eric Janouch 383c9d8fd2
Simplify item management 2017-05-24 19:32:18 +02:00
Přemysl Eric Janouch 5314815132
repl: add completion
Now it should be fairly useful despite the limitation to single lines.
2017-05-23 18:36:52 +02:00
Přemysl Eric Janouch fa06aff875
repl: highlight matching parenthesis 2017-05-23 18:08:00 +02:00
Přemysl Eric Janouch 9f51b986d2
"filter" is not a primitive 2017-05-23 17:54:53 +02:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 2224ca00ad
Refactor argument saving
While nothing has been achieved, at least now it should be obvious.
2017-05-21 18:32:28 +02:00
Přemysl Eric Janouch b9c2a395d9
Fix lies in README 2017-05-21 18:20:12 +02:00
Přemysl Eric Janouch 9ae0e6dc0e
Specify argument in which an error happened 2017-05-21 17:57:31 +02:00
Přemysl Eric Janouch dae5622955
Remove some ancient stupidity 2017-05-21 17:47:19 +02:00
Přemysl Eric Janouch ba2e31d81f
Reorganize evaluation code 2017-05-21 17:20:15 +02:00
Přemysl Eric Janouch 1ede1ed686
Fix crash in print_tree() 2017-05-21 17:11:16 +02:00
Přemysl Eric Janouch 1c2db8ad6b
Allow calling literal blocks 2017-05-21 16:20:39 +02:00
Přemysl Eric Janouch d1d598f968
Update README 2017-05-21 13:37:43 +02:00
Přemysl Eric Janouch bbdd17885c
repl: slight refactoring 2017-05-21 13:24:54 +02:00
Přemysl Eric Janouch a529cf262e
Fix backtrace generation 2017-05-21 13:19:50 +02:00
Přemysl Eric Janouch f0156897c8
Add a REPL for toying around 2017-05-21 13:19:50 +02:00
Přemysl Eric Janouch 455845d078
Split out the interpreter 2017-05-21 13:19:49 +02:00
Přemysl Eric Janouch b31526d6ba
Fix combined operators 2017-05-21 13:19:49 +02:00
Přemysl Eric Janouch e1ec59043e
Update README 2017-05-21 13:19:49 +02:00