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 |
