Classes
Classes are the primary way to organize code in VDX. Starting with v0.0.15, classes are recommended but optional — you can write top-level statements directly. However, classes are still essential for object instantiation and for organizing larger programs.
Syntax
class ClassName {
// variables, functions, statements
}Rules
- A
.vdxfile can contain zero or more classes (v0.0.15+) - Class names must start with a letter or underscore
- Code outside a class is allowed — top-level statements run in order
- A file can contain multiple classes — they run in order
- If no class is present, a recommendation tip is printed to stderr
Execution order
Inside a class, VDX does two passes:
- Register all functions (so you can call them before they appear in code)
- Execute all non-function statements top-to-bottom
class App {
// This works — greet() is registered in pass 1
greet();
fn greet() {
print("hello");
}
}Multiple classes
class First {
print("I run first");
}
class Second {
print("I run second");
}Classes as blueprints
Classes can also be used as blueprints for object instantiation with new. See Objects (new).
class Point {
let x: int = 0;
let y: int = 0;
}
class Main {
let p = new Point();
p.x = 10;
print(p.x); // 10
}