std.yaml

YAML-Parser für die gebräuchlichsten YAML-Strukturen (Scalare: null, bool, int, float, string; Sequenzen und Maps). Pfad-basierter Zugriff (GetString(doc, „database.host“, „localhost“)), typisierte Getter (String, Int, Float, Bool, Array, Object), Datei-Load/Save, Schlüssel-Iteration (GetKeys), Typ-Abfrage und YAML-Escape/Unescape.

Einsatzbereiche: Kubernetes/Docker-Konfigurationen, Anwendungs-Configs (einfacher als XML, lesbarer als JSON), CI/CD-Pipelines, Infrastructure-as-Code.

Autor: Andreas Röne
Copyright: 2024-2025 Andreas Röne


Imports

Konstanten

Name Typ Wert Sichtbarkeit
YAML_NULL int64 0 priv
YAML_BOOL int64 1 priv
YAML_INT int64 2 priv
YAML_FLOAT int64 3 priv
YAML_STRING int64 4 priv
YAML_SEQ int64 5 priv
YAML_MAP int64 6 priv
ERR_YAML_OK int64 0 priv
ERR_YAML_INVALID int64 1 priv
ERR_YAML_PARSE int64 2 priv
ERR_YAML_EOF int64 3 priv
ERR_YAML_INDENT int64 4 priv
ERR_YAML_TYPE int64 5 priv

Funktionen

Signatur Sichtbarkeit Beschreibung
isWhitespace(c: int64): bool priv Prüft ob Zeichen ein Leerzeichen ist
isLineBreak(c: int64): bool priv Prüft ob Zeichen ein Zeilenumbruch ist
isDigit(c: int64): bool priv Prüft ob Zeichen eine Ziffer ist
isAlpha(c: int64): bool priv Prüft ob Zeichen ein Buchstabe ist
findLineEnd(s: pchar, pos: int64): int64 priv Ende der aktuellen Zeile finden
skipWhitespace(s: pchar, pos: int64): int64 priv Leerzeichen im String überspringen
skipLine(s: pchar, pos: int64): int64 priv Aktuelle Zeile überspringen
countIndent(s: pchar, pos: int64): int64 priv Einrückungstiefe der Zeile messen
isComment(s: pchar, pos: int64): bool priv Prüft ob Position ein YAML-Kommentar ist
isEmptyLine(s: pchar, pos: int64): bool priv Prüft ob aktuelle Zeile leer ist
ParseString(input: pchar): int64 pub YAML-String in Dokumentstruktur parsen
GetString(doc: int64, path: pchar, default_val: pchar): pchar pub Stringwert per Pfad lesen
GetInt(doc: int64, path: pchar, default_val: int64): int64 pub Ganzzahlwert per Pfad lesen
GetFloat(doc: int64, path: pchar, default_val: f64): f64 pub Fließkommawert per Pfad lesen
GetBool(doc: int64, path: pchar, default_val: bool): bool pub Booleschen Wert per Pfad lesen
GetArray(doc: int64, path: pchar): int64 pub Array-Knoten per Pfad lesen
GetObject(doc: int64, path: pchar): int64 pub Objekt-Knoten per Pfad lesen
WriteString(doc: int64, output: pchar, max_len: int64): int64 pub Dokument als YAML-String serialisieren
WriteFile(doc: int64, path: pchar): bool pub Dokument in YAML-Datei schreiben
SetString(doc: int64, path: pchar, value: pchar): void { } pub Stringwert per Pfad setzen
SetInt(doc: int64, path: pchar, value: int64): void { } pub Ganzzahlwert per Pfad setzen
SetFloat(doc: int64, path: pchar, value: f64): void { } pub Fließkommawert per Pfad setzen
SetBool(doc: int64, path: pchar, value: bool): void { } pub Booleschen Wert per Pfad setzen
SetArray(doc: int64, path: pchar, values: pchar, count: int64): void { } pub Array-Werte per Pfad setzen
SetObject(doc: int64, path: pchar, keys: pchar, values: pchar, count: int64): void { } pub Objekt-Schlüssel und -Werte setzen
DeleteKey(doc: int64, path: pchar): bool pub Schlüssel per Pfad löschen
LoadFile(path: pchar): int64 pub YAML-Datei laden und parsen
SaveFile(doc: int64, path: pchar): bool pub Dokument als YAML-Datei speichern
HasPath(doc: int64, path: pchar): bool pub Prüft ob Pfad im Dokument existiert
GetType(doc: int64, path: pchar): int64 pub Datentyp eines Pfadwerts ermitteln
GetKeys(doc: int64, path: pchar, output: pchar, max_count: int64): int64 pub Alle Schlüssel eines Objekts liefern
GetArrayLen(doc: int64, path: pchar): int64 pub Länge eines Arrays per Pfad lesen
EscapeString(input: pchar, output: pchar): int64 pub YAML-Sonderzeichen in String escapen
UnescapeString(input: pchar, output: pchar): int64 pub YAML-Escape-Sequenzen auflösen
ParseYamlInt(s: pchar): int64 pub YAML-Ganzzahlwert aus String parsen
ParseYamlBool(s: pchar): bool pub YAML-Booleschen Wert aus String parsen
ParseYamlFloat(s: pchar): f64 pub YAML-Fließkommawert aus String parsen
IsValidKey(s: pchar): bool pub Prüft ob String ein gültiger YAML-Schlüssel
NeedsQuoting(s: pchar): bool pub Prüft ob String in YAML gequotet werden muss