From 2428ba82317cd805536c8d891895aebd2cf9045f Mon Sep 17 00:00:00 2001 From: haven1433 Date: Wed, 2 Nov 2022 08:43:08 -0500 Subject: [PATCH] thumb tool should allow +1's on words --- src/HexManiac.Core/Models/Code/ThumbParser.cs | 7 +++++++ src/HexManiac.Tests/CodeToolTests.cs | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/src/HexManiac.Core/Models/Code/ThumbParser.cs b/src/HexManiac.Core/Models/Code/ThumbParser.cs index c3503d69..f9f22d27 100644 --- a/src/HexManiac.Core/Models/Code/ThumbParser.cs +++ b/src/HexManiac.Core/Models/Code/ThumbParser.cs @@ -999,7 +999,14 @@ namespace HavenSoft.HexManiac.Core.Models.Code { // Parse successful! Nothing else to do. } else { if (line.StartsWith("0x")) line = line.Substring(2); + var add = 0; + if (line.Contains("+")) { + var parts = line.Split("+"); + if (!int.TryParse(parts[1], out add)) return false; + line = parts[0]; + } if (!int.TryParse(line, NumberStyles.HexNumber, CultureInfo.CurrentCulture, out result)) return false; + result += add; } results = new[] { (byte)result, diff --git a/src/HexManiac.Tests/CodeToolTests.cs b/src/HexManiac.Tests/CodeToolTests.cs index ff1f735e..fb3dd04e 100644 --- a/src/HexManiac.Tests/CodeToolTests.cs +++ b/src/HexManiac.Tests/CodeToolTests.cs @@ -175,5 +175,11 @@ namespace HavenSoft.HexManiac.Tests { ThumbScript = "add r3,r3,#6; add r3, #6"; Assert.Equal(Model.ReadMultiByteValue(0, 2), Model.ReadMultiByteValue(2, 2)); } + + [Fact] + public void Word_PlusOne_Compiles() { + ThumbScript = ".word 0x8123456+1"; + Assert.Equal(0x57, Model[0]); + } } }