DOOMS is a robust and flexible scripting language built in Python. It features a complete interpreter pipeline (Lexer, Parser, AST, Interpreter) and is designed to enforce strict type checking while maintaining the dynamic, expressive feel of modern scripting languages.
- Strict Typing: Variables must be declared with their types (
int,str,boo,any). - Object-Oriented: First-class support for Classes and
thisbinding without needing anewkeyword. - Modules System: Built-in
import "file.dooms" as nssupport. - Rich Data Structures: Arrays (
[1, 2]), Tuples ([int, str]), and Dictionaries ({ "key": "value" }). - Built-in Methods: Arrays and Strings come with useful native methods (
.push(),.pop(),.length(),.split()). - Control Flow: Robust Block Scoping (
{}), Functions, and Loops (while,if/else). - Graceful Error Handling: Beautiful, Rust-style error tracing in the terminal pointing exactly to your syntax mistakes.
DOOMS is available on PyPI! You can install it globally using pip:
pip install doomsOnce installed, the dooms command will be available anywhere in your terminal.
dooms run your_script.dooms// Classes and Objects
class Person {
func init(str name, int age) {
this.name = name;
this.age = age;
}
func greet() {
print("Hello, I am", this.name, "and I am", this.age, "years old.");
}
}
any user = Person("Alice", 25);
user.greet();
// Strict typing and arrays
[int, str] my_tuple = [100, "Alice"];
print("Tuple type:", my_tuple);
We are currently working on transitioning to a compiled stack-based Virtual Machine!
- Phase 1-4: Basic Interpreter, Types, Arithmetic, Conditionals
- Phase 5: Block Scoping (
{...}) and Loops (while,<,>,==) - Phase 6: Custom Functions
- Phase 7: Arrays / Lists
- Phase 8: Dictionaries, String Methods, and
input() - Phase 9: Modules System (
import) - Phase 10: Classes (OOP)
- Phase 11: Bytecode Compilation (Virtual Machine)
D o o m s