Kern-Builtins¶
Was ist das?¶
Builtins (eingebaute Funktionen) sind die grundlegenden Werkzeuge, die moolang ohne Import zur Verfügung stellt — vergleichbar mit Pythons print, len, input oder JavaScripts console.log. Sie liegen in der Laufzeit (Runtime) selbst und decken Ausgabe, Eingabe, Typ-Prüfung, Zeit, Zahlen-Konvertierung und Prozess-Steuerung ab.
Fast jede Funktion hat einen deutschen und einen englischen Namen (z.B. länge / len), manchmal auch eine Kurzform. Beide sind gleichwertig — wähle, was lesbarer ist.
Quelle: compiler/src/runtime_bindings.rs, compiler/src/codegen.rs.
Ausgabe & Eingabe¶
zeige (Schlüsselwort)¶
Signatur: zeige <ausdruck>
Zweck: Gibt einen Wert auf der Standardausgabe aus (mit Zeilenumbruch).
eingabe / input¶
Signatur: eingabe(prompt: Text) → Text
Zweck: Liest eine Zeile von der Standardeingabe, zeigt vorher prompt.
Beispiel aus beispiele/adventure.moo:
Typ & Länge¶
typ_von / type_of¶
Signatur: typ_von(wert) → Text
Zweck: Gibt den Typnamen als Text zurück ("Zahl", "Text", "Liste", "Dict", "Bool", ...).
länge / len¶
Signatur: länge(x) → Zahl
Zweck: Länge einer Liste, eines Texts oder eines Dicts.
Beispiel aus beispiele/adventure.moo:
Konvertierung¶
text / str¶
Signatur: text(wert) → Text
Zweck: Wandelt einen Wert in einen Text um.
zahl / num¶
Signatur: zahl(text) → Zahl
Zweck: Parst eine Zahl aus einem Text.
Zeit¶
zeit / time¶
Signatur: zeit() → Zahl
Zweck: Aktueller Unix-Zeitstempel in Sekunden.
zeit_ms / time_ms¶
Signatur: zeit_ms() → Zahl
Zweck: Aktueller Zeitstempel in Millisekunden (für Delta-Time-Berechnungen).
warte / delay¶
Signatur: warte(ms: Zahl)
Zweck: Blockiert für ms Millisekunden. Typischer Game-Loop-Takt.
Beispiel aus beispiele/breakout.moo:
schlafe / sleep¶
Signatur: schlafe(sekunden: Zahl)
Zweck: Pausiert den Thread für die angegebene Anzahl Sekunden (feinerer Variant von warte, das in ms arbeitet).
Prozess & Umgebung¶
argumente / args¶
Signatur: argumente() → Liste<Text>
Zweck: Kommandozeilenargumente des aktuellen Prozesses.
umgebung / env¶
Signatur: umgebung(name: Text) → Text
Zweck: Liest eine Umgebungsvariable.
beende / exit¶
Signatur: beende(code: Zahl)
Zweck: Beendet den Prozess mit dem angegebenen Exit-Code.
systemaufruf / syscall¶
Signatur: systemaufruf(nr, a1, a2, a3) → Zahl
Zweck: Direkter Linux-Syscall (vier Argumente). Nur für Low-Level-Code.
Iteration¶
Range .. Operator¶
Syntax: <start>..<ende> (Ausdruck, nicht Funktion)
Zweck: Erzeugt einen Bereich von start (inklusive) bis ende (exklusive) zur Nutzung in für-Schleifen.
range¶
Signatur: range(start, ende) → Liste<Zahl>
Zweck: Gleiche Semantik wie .., als Funktionsausdruck (Liste der Indizes).
Debug¶
haltepunkt / breakpoint¶
Signatur: haltepunkt(zeile?: Zahl)
Zweck: Löst einen Debugger-Breakpoint aus (für Entwicklungs-Builds).
ausfuehren / eval¶
Signatur: ausfuehren(code: Text) → Wert
Zweck: Kompiliert und führt moo-Quellcode zur Laufzeit aus.