Class CliOptionsParser
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
errorOutputTextWriterOptionaler TextWriter für Fallback-Warnungen; Standard: Console.Error.
cliMessagesResourceManagerOptionaler 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
UnexpectedTerminationExitCode
Exit-Code für unerwartete Argumente oder Schalter.
private const int UnexpectedTerminationExitCode = 99
Field Value
_cliMessages
ResourceManager für CLI-Meldungen; ermöglicht Dependency Injection in Tests.
private readonly ResourceManager _cliMessages
Field Value
_errorOutput
Ausgabe-Stream für Fallback-Warnungen (z. B. unbekannter Sprachcode).
private readonly TextWriter _errorOutput
Field Value
Properties
CliMessages
Gibt den ResourceManager für CLI-Meldungen zurück (für CliHelpPrinter).
internal ResourceManager CliMessages { get; }
Property Value
Methods
IsHelpSwitch(string)
Ermittelt ob ein Schalter ein Hilfe-Schalter ist.
private static bool IsHelpSwitch(string sw)
Parameters
swstringSchalter-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
valuestringSchalter-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
valuestringZu 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
currentEmitModeAktueller Modus.
candidateEmitModeKandidaten-Modus.
diagnosticsIList<CliDiagnostic>Diagnosen-Sammlung.
Returns
- EmitMode
Der zusammengeführte Emit-Modus.
Parse(IReadOnlyList<string>)
Parst die übergebene Argumentliste.
public CliParseResult Parse(IReadOnlyList<string> args)
Parameters
argsIReadOnlyList<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
codestringBCP-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
tokenstringBefehls-Token.
commandCliCommandGeparster 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
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
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
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
argsIReadOnlyList<string>Argumentliste.
indexintAktueller Index (wird bei Erfolg erhöht).
valuestringGelesener Wert.
Returns
- bool
True wenn ein Wert gelesen wurde.