Skip to content

Commit 2133773

Browse files
Update NumberToken.cs
1 parent 2b4d9e2 commit 2133773

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

TokenSystem/Tokens/NumberToken.cs

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using SER.ScriptSystem;
1+
using SER.Helpers.ResultSystem;
2+
using SER.ScriptSystem;
23
using SER.ValueSystem;
34

45
namespace SER.TokenSystem.Tokens;
@@ -7,19 +8,27 @@ public class NumberToken : LiteralValueToken<NumberValue>
78
{
89
protected override IParseResult InternalParse(Script scr)
910
{
10-
if (decimal.TryParse(RawRep, out var value))
11+
if (TryParse(RawRep).WasSuccessful(out var value))
1112
{
1213
Value = value;
1314
return new Success();
1415
}
1516

16-
if (RawRep.EndsWith("%") &&
17-
decimal.TryParse(RawRep.Substring(0, RawRep.Length - 1), out var value2))
17+
return new Ignore();
18+
}
19+
20+
public static TryGet<decimal> TryParse(string stringRep)
21+
{
22+
if (decimal.TryParse(stringRep, out var value))
1823
{
19-
Value = value2 / 100;
20-
return new Success();
24+
return value;
2125
}
2226

23-
return new Ignore();
27+
if (stringRep.EndsWith("%") && decimal.TryParse(stringRep.TrimEnd('%'), out value))
28+
{
29+
return value / 100;
30+
}
31+
32+
return $"Value '{stringRep}' is not a valid number";
2433
}
2534
}

0 commit comments

Comments
 (0)