Commit Graph

108 Commits

Author SHA1 Message Date
Přemysl Eric Janouch 2717cd569b
Go: store scopes in reverse order for efficiency 2018-10-10 19:56:05 +02:00
Přemysl Eric Janouch 563e8ba069
Go: store scopes and globals as maps 2018-10-10 19:56:05 +02:00
Přemysl Eric Janouch b210216c71
Go: use slices for list values 2018-10-10 19:39:29 +02:00
Přemysl Eric Janouch fb143f4d27
Go: use slices for Handler results 2018-10-10 17:13:05 +02:00
Přemysl Eric Janouch f4f03d1737
Go: use slices for Handler arguments
First step to replacing linked lists with something more Go-like.
2018-10-10 16:37:56 +02:00
Přemysl Eric Janouch 1ae1b9bb98
Go/repl: improve completion 2018-10-10 15:40:18 +02:00
Přemysl Eric Janouch b3e27a5df3
Go: make the `system` command more useful
Connect standard streams.
2018-10-09 18:31:17 +02:00
Přemysl Eric Janouch 1e03aeacdd
Go: use string for strings instead of []byte
A few conversions more, a few conversions less.
2018-10-09 18:25:41 +02:00
Přemysl Eric Janouch f7bb33cc3d
Go: remove useless accessors to Ell.Handlers 2018-10-09 18:16:19 +02:00
Přemysl Eric Janouch f751975cfd
Add a port to Go 2018-10-09 10:42:20 +02:00
Přemysl Eric Janouch 55a1076367
Fix an apparent memory leak 2018-10-09 08:55:03 +02:00
Přemysl Eric Janouch 7c9fb564af
Cleanup
Use inline semicolons rather then line feeds.
2018-10-09 08:54:14 +02:00
Přemysl Eric Janouch a004e91c80
Sanitize error message in "throw" 2018-10-09 08:53:39 +02:00
Přemysl Eric Janouch f452191e62
Fix typo 2018-10-09 08:53:17 +02:00
Přemysl Eric Janouch 4c844e2789
Update README 2018-06-24 03:49:31 +02:00
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