Table of Contents

Class CliOptionsParser

Namespace
Pl0.Cli.Cli
Assembly
Pl0.Cli.dll

Parst CLI-Argumente in Compiler-Optionen und Diagnosen.

public sealed class CliOptionsParser
Inheritance
CliOptionsParser
Inherited Members

Constructors

CliOptionsParser(TextWriter?, ResourceManager?)

Erstellt einen CliOptionsParser mit optionaler Dependency Injection.

public CliOptionsParser(TextWriter? errorOutput = null, ResourceManager? cliMessages = null)

Parameters

errorOutput TextWriter

Optionaler TextWriter für Fallback-Warnungen; Standard: Console.Error.

cliMessages ResourceManager

Optionaler ResourceManager für CLI-Meldungen; Standard: Pl0CliMessages.ResourceManager.

Fields

EmitModeMissingExitCode

Exit-Code wenn ein Emit-Modus angefordert, aber nicht angegeben wurde.

private const int EmitModeMissingExitCode = 96

Field Value

int

UnexpectedTerminationExitCode

Exit-Code für unerwartete Argumente oder Schalter.

private const int UnexpectedTerminationExitCode = 99

Field Value

int

_cliMessages

ResourceManager für CLI-Meldungen; ermöglicht Dependency Injection in Tests.

private readonly ResourceManager _cliMessages

Field Value

ResourceManager

_errorOutput

Ausgabe-Stream für Fallback-Warnungen (z. B. unbekannter Sprachcode).

private readonly TextWriter _errorOutput

Field Value

TextWriter

Properties

CliMessages

Gibt den ResourceManager für CLI-Meldungen zurück (für CliHelpPrinter).

internal ResourceManager CliMessages { get; }

Property Value

ResourceManager

Methods

IsHelpSwitch(string)

Ermittelt ob ein Schalter ein Hilfe-Schalter ist.

private static bool IsHelpSwitch(string sw)

Parameters

sw string

Schalter-Wert.

Returns

bool

True wenn es ein Hilfe-Schalter ist.

IsKnownLegacySlashSwitch(string)

Ermittelt ob ein Schrägstrich-Token ein bekannter Legacy-Schalter ist.

private static bool IsKnownLegacySlashSwitch(string value)

Parameters

value string

Schalter-Token.

Returns

bool

True wenn es ein bekannter Legacy-Schalter ist.

IsUnixAbsolutePath(string)

Prüft ob ein Wert wie ein absoluter Unix-Pfad aussieht.

private static bool IsUnixAbsolutePath(string value)

Parameters

value string

Zu prüfender Wert.

Returns

bool

True wenn der Wert ein absoluter Unix-Pfad ist.

MergeEmitMode(EmitMode, EmitMode, IList<CliDiagnostic>)

Führt zwei Emit-Modi zusammen und meldet Konflikte.

private EmitMode MergeEmitMode(EmitMode current, EmitMode candidate, IList<CliDiagnostic> diagnostics)

Parameters

current EmitMode

Aktueller Modus.

candidate EmitMode

Kandidaten-Modus.

diagnostics IList<CliDiagnostic>

Diagnosen-Sammlung.

Returns

EmitMode

Der zusammengeführte Emit-Modus.

Parse(IReadOnlyList<string>)

Parst die übergebene Argumentliste.

public CliParseResult Parse(IReadOnlyList<string> args)

Parameters

args IReadOnlyList<string>

CLI-Argumente.

Returns

CliParseResult

Parse-Ergebnis mit Optionen und Diagnosen.

ParseLanguageCode(string)

Parst einen Sprachcode und fällt bei ungültigem Code auf "de" zurück.

private string ParseLanguageCode(string code)

Parameters

code string

BCP-47-Sprachcode.

Returns

string

Gültiger Sprachcode oder "de".

TryParseCommand(string, out CliCommand)

Parst ein Befehls-Token.

private static bool TryParseCommand(string token, out CliCommand command)

Parameters

token string

Befehls-Token.

command CliCommand

Geparster Befehl.

Returns

bool

True wenn ein gültiger Befehl gefunden wurde.

TryParseEmitEqualsValue(string, out EmitMode)

Parst --emit=<mode>-Werte.

private static bool TryParseEmitEqualsValue(string switchValue, out EmitMode mode)

Parameters

switchValue string

Zu parsender Schalter-Wert.

mode EmitMode

Geparster Emit-Modus.

Returns

bool

True wenn ein gültiger Emit-Modus geparst wurde.

TryParseEmitModeFromToken(string, out EmitMode)

Versucht einen Emit-Modus aus einem Token zu parsen.

private static bool TryParseEmitModeFromToken(string token, out EmitMode mode)

Parameters

token string

Token-Wert.

mode EmitMode

Geparster Emit-Modus.

Returns

bool

True wenn ein Emit-Modus geparst wurde.

TryParseSwitch(string, out string)

Parst ein Schalter-Token in einen kanonischen Schalter-String.

private static bool TryParseSwitch(string value, out string sw)

Parameters

value string

Zu parsendes Token.

sw string

Geparster Schalter-Wert.

Returns

bool

True wenn das Token ein Schalter ist.

TryReadOptionValue(IReadOnlyList<string>, ref int, out string)

Liest den nächsten Wert aus der Argumentliste.

private static bool TryReadOptionValue(IReadOnlyList<string> args, ref int index, out string value)

Parameters

args IReadOnlyList<string>

Argumentliste.

index int

Aktueller Index (wird bei Erfolg erhöht).

value string

Gelesener Wert.

Returns

bool

True wenn ein Wert gelesen wurde.