Commit graph

31 commits

Author SHA1 Message Date
Russ Olsen
3fb272156c Add support for #foo.bar form back in. Add support for inlining words. Very WIP work on expanding words to their Python code and expanding that code in inlined words. 2020-05-15 14:03:03 -04:00
Russ Olsen
5cdae26aeb Sync docs up with new code. 2020-05-11 12:56:39 -04:00
Russ Olsen
9bad7b958f Added nativeword word, which wraps a native function as a forth word. 2020-05-11 12:55:15 -04:00
Russ Olsen
9e9573b3dd Fairly complete rewrite of VM. Now supports composite words with { w1 w2...}. Rewrote :, if, ifelse and while to use composite words. Namespaces now have Clojure like vars for indirection and also support inline words. Words defined in Python now use Python function decorators to add Sallyforth related metadata. 2020-05-09 10:47:47 -04:00
Russ Olsen
ed5ccfd261 Formatting fix. 2020-05-02 11:11:14 -04:00
Russ Olsen
ca305ff519 Flesh out the readme a bit more. 2020-05-02 11:09:12 -04:00
Russ Olsen
e488738143 Add :keywords, if-not, begin-while-repeat. Change names of values imported from native python modules from mod1.mod2.value to mod1/mod2/value. 2020-05-02 10:45:23 -04:00
Russ Olsen
4473e149c3 Added :keywords, Token class. 2020-05-02 10:43:29 -04:00
Russ Olsen
a956438aec Clean up forth eval/execute, make repl more forth driven. 2020-05-01 08:06:08 -04:00
Russ Olsen
62acb4ab95 Removed unused lex module. 2020-04-30 02:23:24 -04:00
Russ Olsen
16d9bdf352 Rationalize namespaces by adding entries. Add readtoken which has different behavior at compile and runtime. 2020-04-30 02:14:50 -04:00
Russ Olsen
f303b00345 Reorganize python word impls, switch tokenizer to a stream approach. 2020-04-29 14:16:54 -04:00
Russ Olsen
638d50b100 Added #foo.bar macro to mean <. foo 'bar .>, improved stack word output. 2020-04-25 16:54:45 -04:00
Russ Olsen
e1b1c4ee24 Rationalize native code import. 2020-04-24 09:10:18 -04:00
Russ Olsen
a4e2a1997a Clean up attr resolution. 2020-04-23 09:10:27 -04:00
Russ Olsen
965f78f142 Set *source* during init. 2020-04-23 09:09:07 -04:00
Russ Olsen
f1bdf52b2b Adding reader macros. Turned tokenizer into a class, added list and string word. 2020-04-22 08:57:14 -04:00
Russ Olsen
f10edf9fd7 Added basic namespace support. 2020-04-21 09:22:25 -04:00
Russ Olsen
8d4375dbf1 Add empty set and map words. 2020-04-18 18:44:22 -04:00
Russ Olsen
502f120d7b Added builtin alias word, which means we can define most of the built-in words with non-Python comparible names (think . and +) in sallyforth instead of Python. Also added backslash comments and stack reset work. 2020-04-18 12:12:10 -04:00
Russ Olsen
97c3aa1fff Switched the word function xface so that words now return the new ip instead of a delta. This simplifies the interpreter allows recur to simply return 0. Also changed the tokenizer so that 'foo produces a string w/o the need for a closing quote, good for symbols. 2020-04-18 10:22:25 -04:00
Russ Olsen
0f63796331 General cleanup, use single quotes in Python, added single quoted strings to SallyForth. 2020-04-17 13:44:18 -04:00
Russ Olsen
8785b97f03 Reorganize code to make it a bit more modular. 2020-04-17 13:42:41 -04:00
Russ Olsen
6925755432 Added better support for calling native code, added readline history, else to ifs. 2020-04-17 08:56:06 -04:00
Russ Olsen
d5e5885b0b README.md 2020-04-16 09:07:08 -04:00
Russ Olsen
c5c8cdfff2 Added start up file execution, configurable prompt. 2020-04-16 09:04:06 -04:00
Russ Olsen
4886e2de2a Renamed process functions to execute, added file execution, vars. 2020-04-16 09:02:36 -04:00
Russ Olsen
c74f666a19 Added (comments) 2020-04-16 09:01:50 -04:00
Russ Olsen
f8ceb9b3a3 Fix formatting. 2020-04-14 12:45:46 -04:00
Russ Olsen
2a9ea9548f Initial checkin. 2020-04-14 12:44:37 -04:00
russolsen
3e48c372dc
Initial commit 2020-04-14 12:06:48 -04:00