Self-editor, inspired by mutator
Install Nim compiler first.
git clone https://github.com/levovix0/yase
cd yase
nimble -d:release build
./yase
type h
for help
- nodes (tetrons) in yase declared as
when in mutator tetrons declared as hierarchy of types, based on (roughly)
type Node = ref object kind: Node childs: seq[Node] params: Table[Node, Node] data: string module {.cursor.}: Module
(types based on Tetron may have additional data fields)type Flags = uint64 Tetron = ref object of RootObj links: Table[Tetron, Flags]
-
for now, yase is console program
-
basic yase interpretator writed in Nim, instead of C++
- mutator, the idea of self-editor
- Nim, yase interpretator is written in Nim, also it's just cool language
- lisp, "abstract syntax tree is all that needed"
- Be practical - Simple but not ideal solution that works now is better that complex but ideal solution that will work later. Also, there is no ideal solutions.
- Be strange - Only weird things helps us invent something new.
- Write code that writes code - Automate coding by doing more coding!