From 0b249c2f2c290f5958f7c544b1cd14c5ca1a33ab Mon Sep 17 00:00:00 2001 From: furesoft Date: Fri, 11 Oct 2024 14:04:28 +0200 Subject: [PATCH] feat: Add Mnemnonics To Assembler Highlighting --- src/MimaSim/MimaSim.Desktop/run.txt | 73 ++++++++++--------- .../Behaviors/HighlightingBindingBehavior.cs | 2 + .../Controls/ProgramEditorControl.axaml | 2 +- .../Controls/ProgramEditorControl.axaml.cs | 4 +- .../Parsers/Assembler/AssemblyParser.cs | 2 +- .../Resources/Highligting_Assembler.xshd | 34 ++++++++- .../MimaSim/Resources/Highligting_Hex.xshd | 21 ++++++ .../ViewModels/ExecutionTabViewModel.cs | 13 +++- 8 files changed, 107 insertions(+), 44 deletions(-) create mode 100644 src/MimaSim/MimaSim/Resources/Highligting_Hex.xshd diff --git a/src/MimaSim/MimaSim.Desktop/run.txt b/src/MimaSim/MimaSim.Desktop/run.txt index 99ebcd1..01f0783 100644 --- a/src/MimaSim/MimaSim.Desktop/run.txt +++ b/src/MimaSim/MimaSim.Desktop/run.txt @@ -1,32 +1,40 @@ H:\MimaSim\src\MimaSim\MimaSim\Controls\ContentDialog.cs(8,46): warning CS0618: "IStyleable" ist veraltet: "This interface may be removed in 12.0. Use StyledElement, or override StyledElement.StyleKeyOverride to override the StyleKey for a class." [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\Controls\DialogControl.cs(10,46): warning CS0618: "IStyleable" ist veraltet: "This interface may be removed in 12.0. Use StyledElement, or override StyledElement.StyleKeyOverride to override the StyleKey for a class." [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\Controls\MapTableControl.cs(8,46): warning CS0618: "IStyleable" ist veraltet: "This interface may be removed in 12.0. Use StyledElement, or override StyledElement.StyleKeyOverride to override the StyleKey for a class." [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\Commands\DialogCommand.cs(13,17): warning CS8767: Die NULL-Zulässigkeit von Verweistypen im Typ des Parameters "parameter" von "bool DialogCommand.CanExecute(object parameter)" entspricht (möglicherweise aufgrund von Attributen für die NULL-Zulässigkeit) nicht dem implizit implementierten Member "bool ICommand.CanExecute(object? parameter)". [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\Commands\DialogCommand.cs(18,17): warning CS8767: Die NULL-Zulässigkeit von Verweistypen im Typ des Parameters "parameter" von "void DialogCommand.Execute(object parameter)" entspricht (möglicherweise aufgrund von Attributen für die NULL-Zulässigkeit) nicht dem implizit implementierten Member "void ICommand.Execute(object? parameter)". [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\Core\BusRegistry.cs(17,12): warning CS8618: Non-Nullable-Feld „MainBus“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Feld als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\MIMA\Visitors\HighParserVisitor.cs(25,48): warning CS8605: Unboxing eines möglichen NULL-Werts. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\Controls\MapTableControl.cs(8,46): warning CS0618: "IStyleable" ist veraltet: "This interface may be removed in 12.0. Use StyledElement, or override StyledElement.StyleKeyOverride to override the StyleKey for a class." [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\Controls\MapItem.cs(5,19): warning CS8618: Non-Nullable-Eigenschaft „Key“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Eigenschaft als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\Controls\MapItem.cs(6,19): warning CS8618: Non-Nullable-Eigenschaft „Value“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Eigenschaft als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\Views\MainView.axaml.cs(18,36): warning CS8604: Mögliches Nullverweisargument für den Parameter "parent" in "void TabSwitcher.Initialize(TabControl parent)". [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\Controls\ProgramEditorControl.axaml.cs(33,41): error CS1061: "TextEditor" enthält keine Definition für "Highlighting", und es konnte keine zugängliche Highlighting-Erweiterungsmethode gefunden werden, die ein erstes Argument vom Typ "TextEditor" akzeptiert (möglicherweise fehlt eine using-Direktive oder ein Assemblyverweis). [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\Behaviors\HighlightingBindingBehavior.cs(29,40): warning CS8622: Die NULL-Zulässigkeit von Verweistypen im Typ des Parameters "sender" von "void HighlightingBindingBehavior.TextChanged(object sender, EventArgs eventArgs)" entspricht (möglicherweise aufgrund von Attributen für die NULL-Zulässigkeit) nicht dem Zieldelegaten "EventHandler". [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\Behaviors\DocumentTextBindingBehavior.cs(29,40): warning CS8622: Die NULL-Zulässigkeit von Verweistypen im Typ des Parameters "sender" von "void DocumentTextBindingBehavior.TextChanged(object sender, EventArgs eventArgs)" entspricht (möglicherweise aufgrund von Attributen für die NULL-Zulässigkeit) nicht dem Zieldelegaten "EventHandler". [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\Behaviors\HighlightingBindingBehavior.cs(27,40): warning CS8622: Die NULL-Zulässigkeit von Verweistypen im Typ des Parameters "sender" von "void HighlightingBindingBehavior.TextChanged(object sender, EventArgs eventArgs)" entspricht (möglicherweise aufgrund von Attributen für die NULL-Zulässigkeit) nicht dem Zieldelegaten "EventHandler". [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\Core\Extensions.cs(9,38): warning CS8602: Dereferenzierung eines möglichen Nullverweises. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\Behaviors\DocumentTextBindingBehavior.cs(40,40): warning CS8622: Die NULL-Zulässigkeit von Verweistypen im Typ des Parameters "sender" von "void DocumentTextBindingBehavior.TextChanged(object sender, EventArgs eventArgs)" entspricht (möglicherweise aufgrund von Attributen für die NULL-Zulässigkeit) nicht dem Zieldelegaten "EventHandler". [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\Behaviors\HighlightingBindingBehavior.cs(40,40): warning CS8622: Die NULL-Zulässigkeit von Verweistypen im Typ des Parameters "sender" von "void HighlightingBindingBehavior.TextChanged(object sender, EventArgs eventArgs)" entspricht (möglicherweise aufgrund von Attributen für die NULL-Zulässigkeit) nicht dem Zieldelegaten "EventHandler". [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\Core\TabSwitcher.cs(23,32): warning CS8600: Das NULL-Literal oder ein möglicher NULL-Wert wird in einen Non-Nullable-Typ konvertiert. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\Core\TabSwitcher.cs(27,30): warning CS8602: Dereferenzierung eines möglichen Nullverweises. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\Core\TabSwitcher.cs(41,17): warning CS8605: Unboxing eines möglichen NULL-Werts. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\Core\TabSwitcher.cs(41,30): warning CS8605: Unboxing eines möglichen NULL-Werts. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\Behaviors\HighlightingBindingBehavior.cs(38,40): warning CS8622: Die NULL-Zulässigkeit von Verweistypen im Typ des Parameters "sender" von "void HighlightingBindingBehavior.TextChanged(object sender, EventArgs eventArgs)" entspricht (möglicherweise aufgrund von Attributen für die NULL-Zulässigkeit) nicht dem Zieldelegaten "EventHandler". [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\Behaviors\DocumentTextBindingBehavior.cs(40,40): warning CS8622: Die NULL-Zulässigkeit von Verweistypen im Typ des Parameters "sender" von "void DocumentTextBindingBehavior.TextChanged(object sender, EventArgs eventArgs)" entspricht (möglicherweise aufgrund von Attributen für die NULL-Zulässigkeit) nicht dem Zieldelegaten "EventHandler". [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\Controls\DialogService.cs(11,34): warning CS8618: Non-Nullable-Feld „_host“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Feld als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\Controls\ProgramEditorControl.axaml.cs(41,27): warning CS8600: Das NULL-Literal oder ein möglicher NULL-Wert wird in einen Non-Nullable-Typ konvertiert. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\Controls\ProgramEditorControl.axaml.cs(43,57): warning CS8604: Mögliches Nullverweisargument für den Parameter "input" in "XmlTextReader.XmlTextReader(Stream input)". [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\Core\TabSwitcher.cs(10,30): warning CS8618: Non-Nullable-Feld „Parent“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Feld als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\Core\BusRegistry.cs(17,12): warning CS8618: Non-Nullable-Feld „MainBus“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Feld als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\MarkupExtensions\OpenRegisterPopup.cs(17,19): warning CS8600: Das NULL-Literal oder ein möglicher NULL-Wert wird in einen Non-Nullable-Typ konvertiert. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\MarkupExtensions\OpenRegisterPopup.cs(19,13): warning CS8602: Dereferenzierung eines möglichen Nullverweises. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\MarkupExtensions\OpenRegisterPopup.cs(30,16): warning CS8603: Mögliche Nullverweisrückgabe. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\Controls\ProgramEditorControl.axaml.cs(41,27): warning CS8600: Das NULL-Literal oder ein möglicher NULL-Wert wird in einen Non-Nullable-Typ konvertiert. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\Controls\ProgramEditorControl.axaml.cs(43,57): warning CS8604: Mögliches Nullverweisargument für den Parameter "input" in "XmlTextReader.XmlTextReader(Stream input)". [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\Behaviors\HighlightingBindingBehavior.cs(9,24): warning CS8618: Non-Nullable-Feld „_textEditor“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Feld als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\Core\BusRegistry.cs(60,21): warning CS8625: Ein NULL-Literal kann nicht in einen Non-Nullable-Verweistyp konvertiert werden. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\Core\BusRegistry.cs(65,16): warning CS8603: Mögliche Nullverweisrückgabe. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\Behaviors\HighlightingBindingBehavior.cs(11,24): warning CS8618: Non-Nullable-Feld „_textEditor“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Feld als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\Behaviors\DocumentTextBindingBehavior.cs(11,24): warning CS8618: Non-Nullable-Feld „_textEditor“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Feld als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\Core\Extensions.cs(9,38): warning CS8602: Dereferenzierung eines möglichen Nullverweises. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\Controls\MimaComponents\Popups\DisassemblyViewPopupControl.axaml.cs(14,9): warning CS8602: Dereferenzierung eines möglichen Nullverweises. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\MarkupExtensions\GetClockFrequency.cs(13,19): warning CS8600: Das NULL-Literal oder ein möglicher NULL-Wert wird in einen Non-Nullable-Typ konvertiert. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\MarkupExtensions\GetClockFrequency.cs(15,13): warning CS8602: Dereferenzierung eines möglichen Nullverweises. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\Controls\MimaComponents\RegisterControl.axaml.cs(19,16): warning CS8600: Das NULL-Literal oder ein möglicher NULL-Wert wird in einen Non-Nullable-Typ konvertiert. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\Controls\MimaComponents\RegisterControl.axaml.cs(19,16): warning CS8603: Mögliche Nullverweisrückgabe. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\MIMA\Visitors\HighParserVisitor.cs(25,48): warning CS8605: Unboxing eines möglichen NULL-Werts. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\ViewModels\DisassemblyPopupViewModel.cs(15,12): warning CS8618: Non-Nullable-Feld „_raw“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Feld als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\ViewModels\DisassemblyPopupViewModel.cs(15,12): warning CS8618: Non-Nullable-Feld „_disassembly“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Feld als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\Core\BusRegistry.cs(60,21): warning CS8625: Ein NULL-Literal kann nicht in einen Non-Nullable-Verweistyp konvertiert werden. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\Core\BusRegistry.cs(65,16): warning CS8603: Mögliche Nullverweisrückgabe. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\MIMA\Components\Clock.cs(16,27): warning CS8622: Die NULL-Zulässigkeit von Verweistypen im Typ des Parameters "sender" von "void Clock._timer_Elapsed(object sender, ElapsedEventArgs e)" entspricht (möglicherweise aufgrund von Attributen für die NULL-Zulässigkeit) nicht dem Zieldelegaten "ElapsedEventHandler". [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\MIMA\Components\Clock.cs(12,12): warning CS8618: Non-Nullable-Ereignis „FrequencyChanged“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Ereignis als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\MIMA\Components\Bus.cs(7,34): warning CS8618: Non-Nullable-Ereignis „DataRecieved“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Ereignis als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] @@ -38,43 +46,36 @@ H:\MimaSim\src\MimaSim\MimaSim\Core\BusRegistry.cs(86,47): warning CS8602: Deref H:\MimaSim\src\MimaSim\MimaSim\Core\BusRegistry.cs(86,47): warning CS8602: Dereferenzierung eines möglichen Nullverweises. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\Core\BusRegistry.cs(90,56): warning CS8602: Dereferenzierung eines möglichen Nullverweises. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\Core\BusRegistry.cs(90,56): warning CS8602: Dereferenzierung eines möglichen Nullverweises. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\Controls\MapItem.cs(5,19): warning CS8618: Non-Nullable-Eigenschaft „Key“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Eigenschaft als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\Controls\MapItem.cs(6,19): warning CS8618: Non-Nullable-Eigenschaft „Value“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Eigenschaft als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\MIMA\Components\CPU.cs(33,12): warning CS8618: Non-Nullable-Eigenschaft „Program“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Eigenschaft als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\Controls\DialogService.cs(11,34): warning CS8618: Non-Nullable-Feld „_host“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Feld als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\MIMA\Components\CPU.cs(58,28): warning CS8600: Das NULL-Literal oder ein möglicher NULL-Wert wird in einen Non-Nullable-Typ konvertiert. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\MIMA\Components\CPU.cs(60,30): warning CS8602: Dereferenzierung eines möglichen Nullverweises. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\Core\Parsing\Tokenizer\TokenMatch.cs(9,19): warning CS8618: Non-Nullable-Eigenschaft „Value“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Eigenschaft als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\Controls\MimaComponents\RegisterControl.axaml.cs(19,16): warning CS8600: Das NULL-Literal oder ein möglicher NULL-Wert wird in einen Non-Nullable-Typ konvertiert. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\Controls\MimaComponents\RegisterControl.axaml.cs(19,16): warning CS8603: Mögliche Nullverweisrückgabe. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\MIMA\Components\CPU.cs(101,40): warning CS8604: Mögliches Nullverweisargument für den Parameter "name" in "Register RegisterMap.GetRegister(string name)". [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\MIMA\Components\CPU.cs(111,33): warning CS8604: Mögliches Nullverweisargument für den Parameter "name" in "Register RegisterMap.GetRegister(string name)". [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\MIMA\RegisterMap.cs(25,16): warning CS8603: Mögliche Nullverweisrückgabe. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\ViewModels\DisassemblyPopupViewModel.cs(15,12): warning CS8618: Non-Nullable-Feld „_raw“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Feld als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\ViewModels\DisassemblyPopupViewModel.cs(15,12): warning CS8618: Non-Nullable-Feld „_disassembly“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Feld als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\MIMA\Visitors\HighParserVisitor.cs(221,59): warning CS8605: Unboxing eines möglichen NULL-Werts. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\Controls\MimaComponents\Popups\DisassemblyViewPopupControl.axaml.cs(14,9): warning CS8602: Dereferenzierung eines möglichen Nullverweises. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\ViewModels\ExecutionTabViewModel.cs(66,27): warning CS8602: Dereferenzierung eines möglichen Nullverweises. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\ViewModels\ExecutionTabViewModel.cs(68,30): warning CS8625: Ein NULL-Literal kann nicht in einen Non-Nullable-Verweistyp konvertiert werden. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\MIMA\Components\CPU.cs(33,12): warning CS8618: Non-Nullable-Eigenschaft „Program“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Eigenschaft als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\Core\Parsing\Tokenizer\TokenMatch.cs(9,19): warning CS8618: Non-Nullable-Eigenschaft „Value“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Eigenschaft als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\ViewModels\ExecutionTabViewModel.cs(80,22): warning CS8602: Dereferenzierung eines möglichen Nullverweises. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\ViewModels\ExecutionTabViewModel.cs(80,22): warning CS8601: Mögliche Nullverweiszuweisung. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\Behaviors\DocumentTextBindingBehavior.cs(11,24): warning CS8618: Non-Nullable-Feld „_textEditor“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Feld als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\ViewModels\ExecutionTabViewModel.cs(92,16): warning CS8603: Mögliche Nullverweisrückgabe. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\MIMA\Components\CPU.cs(58,28): warning CS8600: Das NULL-Literal oder ein möglicher NULL-Wert wird in einen Non-Nullable-Typ konvertiert. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\MIMA\Components\CPU.cs(60,30): warning CS8602: Dereferenzierung eines möglichen Nullverweises. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\MIMA\RegisterMap.cs(25,16): warning CS8603: Mögliche Nullverweisrückgabe. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\MIMA\Components\CPU.cs(101,40): warning CS8604: Mögliches Nullverweisargument für den Parameter "name" in "Register RegisterMap.GetRegister(string name)". [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\Core\Parsing\AST\DefaultPrinter.cs(20,16): warning CS8602: Dereferenzierung eines möglichen Nullverweises. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\Core\Parsing\AST\DefaultPrinter.cs(20,16): warning CS8603: Mögliche Nullverweisrückgabe. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\ViewModels\ExecutionTabViewModel.cs(92,16): warning CS8603: Mögliche Nullverweisrückgabe. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\MIMA\Components\CPU.cs(111,33): warning CS8604: Mögliches Nullverweisargument für den Parameter "name" in "Register RegisterMap.GetRegister(string name)". [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\MIMA\Parsing\Parsers\Assembler\AssemblyVisitor.cs(22,53): warning CS0252: Unbeabsichtigter Verweisvergleich. Wandeln Sie die linke Seite in den Typ "string" um, um einen Wertvergleich durchzuführen. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\MIMA\Parsing\Parsers\Assembler\AssemblyVisitor.cs(23,54): warning CS0252: Unbeabsichtigter Verweisvergleich. Wandeln Sie die linke Seite in den Typ "string" um, um einen Wertvergleich durchzuführen. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\MIMA\Parsing\Parsers\Assembler\AssemblyVisitor.cs(24,52): warning CS0252: Unbeabsichtigter Verweisvergleich. Wandeln Sie die linke Seite in den Typ "string" um, um einen Wertvergleich durchzuführen. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\MIMA\Visitors\HighParserVisitor.cs(221,59): warning CS8605: Unboxing eines möglichen NULL-Werts. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\Core\Parsing\Tokenizer\PrecedenceBasedRegexTokenizer.cs(23,32): warning CS8600: Das NULL-Literal oder ein möglicher NULL-Wert wird in einen Non-Nullable-Typ konvertiert. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\MIMA\Visitors\HighParserVisitor.cs(279,52): warning CS8605: Unboxing eines möglichen NULL-Werts. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\MIMA\Visitors\HighParserVisitor.cs(280,82): warning CS8605: Unboxing eines möglichen NULL-Werts. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\MIMA\Visitors\HighParserVisitor.cs(287,35): warning CS8605: Unboxing eines möglichen NULL-Werts. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\MIMA\Visitors\HighParserVisitor.cs(302,43): warning CS8605: Unboxing eines möglichen NULL-Werts. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\Core\Parsing\Tokenizer\PrecedenceBasedRegexTokenizer.cs(23,32): warning CS8600: Das NULL-Literal oder ein möglicher NULL-Wert wird in einen Non-Nullable-Typ konvertiert. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\MIMA\Parsing\Parsers\Assembler\AssemblyVisitor.cs(22,53): warning CS0252: Unbeabsichtigter Verweisvergleich. Wandeln Sie die linke Seite in den Typ "string" um, um einen Wertvergleich durchzuführen. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\MIMA\Parsing\Parsers\Assembler\AssemblyVisitor.cs(23,54): warning CS0252: Unbeabsichtigter Verweisvergleich. Wandeln Sie die linke Seite in den Typ "string" um, um einen Wertvergleich durchzuführen. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\MIMA\Parsing\Parsers\Assembler\AssemblyVisitor.cs(24,52): warning CS0252: Unbeabsichtigter Verweisvergleich. Wandeln Sie die linke Seite in den Typ "string" um, um einen Wertvergleich durchzuführen. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\MIMA\Visitors\HighParserVisitor.cs(316,52): warning CS8605: Unboxing eines möglichen NULL-Werts. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] -H:\MimaSim\src\MimaSim\MimaSim\MIMA\Visitors\HighParserVisitor.cs(377,64): warning CS8605: Unboxing eines möglichen NULL-Werts. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\MIMA\Parsing\Parsers\HighParser.cs(332,16): warning CS8603: Mögliche Nullverweisrückgabe. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\MIMA\Visitors\HighParserVisitor.cs(377,64): warning CS8605: Unboxing eines möglichen NULL-Werts. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\ViewModels\ExecutionTabViewModel.cs(108,12): warning CS8618: Non-Nullable-Feld „_selectedSample“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Feld als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\ViewModels\ExecutionTabViewModel.cs(108,12): warning CS8618: Non-Nullable-Feld „_sampleNames“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Feld als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\ViewModels\ExecutionTabViewModel.cs(108,12): warning CS8618: Non-Nullable-Feld „_highlighting“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Feld als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\ViewModels\ExecutionTabViewModel.cs(212,27): error CS1061: "ObservableCollection" enthält keine Definition für "Hochsprache", und es konnte keine zugängliche Hochsprache-Erweiterungsmethode gefunden werden, die ein erstes Argument vom Typ "ObservableCollection" akzeptiert (möglicherweise fehlt eine using-Direktive oder ein Assemblyverweis). [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] +H:\MimaSim\src\MimaSim\MimaSim\ViewModels\ExecutionTabViewModel.cs(213,27): error CS1061: "ObservableCollection" enthält keine Definition für "Assembler", und es konnte keine zugängliche Assembler-Erweiterungsmethode gefunden werden, die ein erstes Argument vom Typ "ObservableCollection" akzeptiert (möglicherweise fehlt eine using-Direktive oder ein Assemblyverweis). [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\MIMA\Parsing\Parsers\HighParser.cs(62,29): warning CS8618: Non-Nullable-Feld „_enumerator“ muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Fügen Sie ggf. den „erforderlichen“ Modifizierer hinzu, oder deklarieren Sie den Feld als NULL-Werte zulassend. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] H:\MimaSim\src\MimaSim\MimaSim\Commands\DialogCommand.cs(9,32): warning CS0067: Das Ereignis "DialogCommand.CanExecuteChanged" wird nie verwendet. [H:\MimaSim\src\MimaSim\MimaSim\MimaSim.csproj] diff --git a/src/MimaSim/MimaSim/Behaviors/HighlightingBindingBehavior.cs b/src/MimaSim/MimaSim/Behaviors/HighlightingBindingBehavior.cs index a3eed6b..22ceb71 100644 --- a/src/MimaSim/MimaSim/Behaviors/HighlightingBindingBehavior.cs +++ b/src/MimaSim/MimaSim/Behaviors/HighlightingBindingBehavior.cs @@ -4,6 +4,8 @@ using AvaloniaEdit; using AvaloniaEdit.Highlighting; +namespace MimaSim.Behaviors; + public class HighlightingBindingBehavior : Behavior { private TextEditor _textEditor; diff --git a/src/MimaSim/MimaSim/Controls/ProgramEditorControl.axaml b/src/MimaSim/MimaSim/Controls/ProgramEditorControl.axaml index de608a9..c61bec6 100644 --- a/src/MimaSim/MimaSim/Controls/ProgramEditorControl.axaml +++ b/src/MimaSim/MimaSim/Controls/ProgramEditorControl.axaml @@ -17,7 +17,7 @@ ShowLineNumbers="True"> - + diff --git a/src/MimaSim/MimaSim/Controls/ProgramEditorControl.axaml.cs b/src/MimaSim/MimaSim/Controls/ProgramEditorControl.axaml.cs index bf04bae..bd7632d 100644 --- a/src/MimaSim/MimaSim/Controls/ProgramEditorControl.axaml.cs +++ b/src/MimaSim/MimaSim/Controls/ProgramEditorControl.axaml.cs @@ -30,9 +30,9 @@ private void InitializeComponent() private void InitHighlighting() { - this.Find("editor").SyntaxHighlighting = LoadHighlighting("Hochsprache", ".hoch", "Highligting_Hochsprache"); - + LoadHighlighting("Maschinencode", ".hex", "Highligting_Hex"); LoadHighlighting("Assembler", ".asm", "Highligting_Assembler"); + LoadHighlighting("Hochsprache", ".hoch", "Highligting_Hochsprache"); } private IHighlightingDefinition LoadHighlighting(string name, string extension, string filename) diff --git a/src/MimaSim/MimaSim/MIMA/Parsing/Parsers/Assembler/AssemblyParser.cs b/src/MimaSim/MimaSim/MIMA/Parsing/Parsers/Assembler/AssemblyParser.cs index 4f64988..04f522b 100644 --- a/src/MimaSim/MimaSim/MIMA/Parsing/Parsers/Assembler/AssemblyParser.cs +++ b/src/MimaSim/MimaSim/MIMA/Parsing/Parsers/Assembler/AssemblyParser.cs @@ -15,7 +15,7 @@ protected override void InitLexer(LexerConfig lexer) lexer.IgnoreWhitespace(); lexer.Ignore(new MultiLineCommentIgnoreMatcher("/*", "*/")); - lexer.Ignore(new SingleLineCommentIgnoreMatcher("//")); + lexer.Ignore(new SingleLineCommentIgnoreMatcher("#")); lexer.MatchNumber(true, false); lexer.AddMatcher(new EnumMatcher("#register")); diff --git a/src/MimaSim/MimaSim/Resources/Highligting_Assembler.xshd b/src/MimaSim/MimaSim/Resources/Highligting_Assembler.xshd index 8e30814..c046acb 100644 --- a/src/MimaSim/MimaSim/Resources/Highligting_Assembler.xshd +++ b/src/MimaSim/MimaSim/Resources/Highligting_Assembler.xshd @@ -5,13 +5,41 @@ - + - + + nop + exit + mov load - cmpe + + cmplt + cmple + cmpeq + cmpge + cmpgt + cmpne + cmpn + + mul + add + sub + div + inc + dec + + not + and + or + xor + + lshift + rshift + + jmp + jpmc diff --git a/src/MimaSim/MimaSim/Resources/Highligting_Hex.xshd b/src/MimaSim/MimaSim/Resources/Highligting_Hex.xshd new file mode 100644 index 0000000..bb3e7ca --- /dev/null +++ b/src/MimaSim/MimaSim/Resources/Highligting_Hex.xshd @@ -0,0 +1,21 @@ + + + + + + + + + + + + + \b0[xX][0-9a-fA-F]+ # hex number + | \b + ( \d+(\.[0-9]+)? #number with optional floating point + | \.[0-9]+ #or just starting with floating point + ) + ([eE][+-]?[0-9]+)? # optional exponent + + + \ No newline at end of file diff --git a/src/MimaSim/MimaSim/ViewModels/ExecutionTabViewModel.cs b/src/MimaSim/MimaSim/ViewModels/ExecutionTabViewModel.cs index 2b873fc..88d302d 100644 --- a/src/MimaSim/MimaSim/ViewModels/ExecutionTabViewModel.cs +++ b/src/MimaSim/MimaSim/ViewModels/ExecutionTabViewModel.cs @@ -66,7 +66,7 @@ public LanguageName SelectedLanguage SampleNames = Locator.Current.GetService().GetSampleNamesFor(_selectedLanguage).ToArray(); SelectedSample = null; - Highlighting = HighlightingManager.Instance.GetDefinitionByExtension(".hoch"); + Highlighting = HighlightingManager.Instance.GetDefinitionByExtension(GetExtensionForLanguage(value)); } } @@ -204,4 +204,15 @@ public ExecutionTabViewModel() var cache = Locator.Current.GetService(); _source = cache!.Get("input")!; } + + private string GetExtensionForLanguage(LanguageName language) + { + return language switch + { + LanguageName.Hochsprache => ".hoch", + LanguageName.Assembly => ".asm", + LanguageName.Maschinencode => ".hex", + _ => ".asm" + }; + } } \ No newline at end of file