Skip to content

Basic Syntax

AbySS leans into symbolic, magic-inspired keywords without sacrificing readability. Comments follow familiar patterns, so you can annotate spells freely while keeping the parser happy.

// This is a single-line comment
/*
This is a multi-line comment
*/

Pure, sandbox-safe helpers available everywhere — including the Playground:

  • abs(x) → magnitude of an arcana or aether, preserving the type.
  • sqrt(x) → a fate: bless { value } with the square root, or curse { reason } for a negative input — so sqrt(x)? is the everyday form (see Error Handling).
  • floor(x) / ceil(x) → nearest arcana at or below / above an aether.
unveil(abs(-7).transmute(rune));
unveil(abs(-2.5).transmute(rune));
oracle (sqrt(9.0)) {
bless { value } => unveil(value);
curse { reason } => unveil(reason);
};
unveil(floor(2.9).transmute(rune));
unveil(ceil(2.1).transmute(rune));
7
2.5
3
2
3
  • Keywords such as forge, oracle, and orbit are intentionally thematic but remain deterministic.
  • Statements end with semicolons; code blocks use { ... } like other C-family syntaxes.
  • Multi-line constructs favor indentation plus single keywords per line for quick scanning.

Continue through the reference for deeper dives into types, control flow, collections, and artifacts.