Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/ToberlerOhn/hades/llms.txt

Use this file to discover all available pages before exploring further.

Hades is a custom programming language built as a passion project. It features a familiar C-style syntax with semicolons and braces, static type annotations, first-class functions with lexical scoping, classes with operator overloading, and both mutable lists and immutable records. Write .hds files and run them directly with the Python-based interpreter.

Installation

Set up the Hades interpreter and VS Code extension on your machine.

Quickstart

Write and run your first Hades program in minutes.

Language Guide

Explore variables, types, control flow, functions, classes, and more.

Reference

Complete keyword, built-in, operator, and truthiness reference.

What is Hades?

Hades combines the readability of a modern scripting language with enforced type discipline. Every variable declaration includes a type hint, every function signature specifies parameter and return types, and the interpreter enforces these at runtime. The result is a language that catches type mismatches early and produces descriptive error messages with source-location pointers.

Type Hints

Declare variables with int, float, bool, str, list, or nothing — types are checked at assignment.

Functions & Closures

Define named functions with typed parameters, return types, and lexical scope capture.

Classes

Build classes with creator constructors, method definitions, and operator overloading via operator.

Control Flow

if/else if/else, while, do-while, C-style for, and for-in iteration over lists and strings.

Lists & Records

Mutable list types with index access (list->i) and immutable record sequences.

VS Code Extension

Syntax highlighting for .hds and .hd files via the hades-language VS Code extension.

Get Started in Three Steps

1

Clone the repository

git clone https://github.com/ToberlerOhn/hades.git
cd hades
2

Write a Hades program

Create a file named hello.hds and add:
hello.hds
name: str = 'World';
print('Hello, ', name, '!')
3

Run it

python3 main.py hello.hds
You should see Hello, World! printed to the terminal.

Build docs developers (and LLMs) love