Turse is a new Rust interpreter and compiler for the (forsaken) Turing language, and is intended to be a drop in replacement for TProlog, the older interpreter.
This project uses information from these repositories:
Currently, only the compiler (toc
) is being worked on, but a new interpreter will eventually be focused on.
- Curiosity. Just pure curiosity
- Learning about compilers and bytecode virtual machines
- Learning about concurrency and parallelism
- Learning about JIT and interpreters
- Big projects like this are "fun" to play with
Do not expect this project to be maintained for a long time.
Lint mode & the LSP server supports:
- Arrays
- Functions & Procedures
- Pointers
- Sets
- Control flow statements
- Put & get statements
Compilation mode also supports some of thing things linting mode does, with the exception of:
- Arrays
- Set types
- Referencing items not declared in a function or procedure
- Pointers
- String concatenation
char(*)
andstring(*)
Attempting to compile code that does these things will result in a compiler crash.
To run the compiler executable:
git clone https://github.com/DropDemBits/turse-rs.git
cargo run --bin toc_driver
Turse is licensed under the MIT license (see LICENSE or http://opensource.org/licenses/MIT).
Portions of the VSCode extension incorporate code from other repositories, see NOTICE for details.