Commit Graph

66 Commits

Author SHA1 Message Date
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 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 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 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 a529cf262e
Fix backtrace generation 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 8487afe7ef
Add numerical comparisons 2017-05-21 13:19:49 +02:00
Přemysl Eric Janouch 5383dfac9c
Add "ne?", "ge?", "le?", "gt?"
At least in some form.
2017-05-21 13:19:49 +02:00
Přemysl Eric Janouch 04364b75ea
Add "eq?" and "lt?" 2017-05-21 13:19:48 +02:00
Přemysl Eric Janouch c8e3e2eed6
Add boolean operators 2017-05-21 13:19:48 +02:00
Přemysl Eric Janouch 792deba5f3
Omit trailing zeros when not necessary 2017-05-21 13:19:48 +02:00
Přemysl Eric Janouch 9eb2967340
Add arithmetics 2017-05-21 13:19:48 +02:00
Přemysl Eric Janouch 16a4c3b21a
Add "system" 2017-05-21 13:19:48 +02:00
Přemysl Eric Janouch c7b06a490f
Move native functions into the context 2017-05-21 13:19:48 +02:00
Přemysl Eric Janouch 0f4ece8867
Add "break" for breaking out of loops 2017-05-21 13:19:48 +02:00
Přemysl Eric Janouch 1caec277bf
set() can unset now
Fixing two bugs with this commit.
2017-05-21 13:19:48 +02:00
Přemysl Eric Janouch 706f452d9d
Fix memory leak on evaluation error 2017-05-21 13:19:48 +02:00
Přemysl Eric Janouch 567c3d8dc2
Fix missing argument values 2017-05-21 13:19:48 +02:00
Přemysl Eric Janouch 4d15d9cc6b
Fix invalid memory access in debug code 2017-05-21 13:19:47 +02:00
Přemysl Eric Janouch cbce0d6498
Fix for, map, filter 2017-05-21 13:19:47 +02:00
Přemysl Eric Janouch 7e8bfbf9b9
Make ; a synonym for a newline 2017-05-21 13:19:47 +02:00
Přemysl Eric Janouch 5307d24315
Slightly fix fn_concatenate() 2017-05-21 13:19:47 +02:00
Přemysl Eric Janouch d2155031d0
Implement if, for, map, filter 2017-05-21 13:19:47 +02:00
Přemysl Eric Janouch f0337aa481
Do away with POSIX 2017-05-21 13:19:47 +02:00
Přemysl Eric Janouch fedde03f1e
Decided: () is our nil/undef 2017-05-21 13:19:47 +02:00
Přemysl Eric Janouch 23da396614
General cleanup
Memory allocation errors seem to be handled now.
2017-05-21 13:19:47 +02:00
Přemysl Eric Janouch 3c86249f11
General cleanup
With the exception of memory handling, ell looks pretty fine now.
2017-05-21 13:19:47 +02:00
Přemysl Eric Janouch 158b8fffeb
Rethink the parse() function
Now the parser should handle memory allocation failures properly.
2017-05-21 13:19:47 +02:00
Přemysl Eric Janouch 5d5042fdec
Add allocation error handling to the parser 2017-05-21 13:19:46 +02:00
Přemysl Eric Janouch 846f560979
Mark memory allocation issues in the parser 2017-05-21 13:19:46 +02:00
Přemysl Eric Janouch e9b426db41
Parsing should not create a new list
The resulting program is already a sequence.
2017-05-21 13:19:46 +02:00