====== 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 ===== * ''[[lyx_-_programmiersprache:units:string|std.string]]'' ---- ===== 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 |