implemented boolean values parsing

This commit is contained in:
2025-04-10 16:22:21 +05:00
parent 74d09c51a0
commit c4af1f31e8
3 changed files with 29 additions and 17 deletions
+22 -12
View File
@@ -154,19 +154,29 @@ public class SaveParserEU4
switch (tok.type)
{
case TokenType.StringOrNumber:
// string values can be empty
if(tok.value!.Length == 0)
return string.Empty;
string tokStr = tok.value.ToString();
_stringBuilderPool.Return(tok.value);
if (tokStr[0] != '-' && !char.IsDigit(tokStr[0]))
try
{
// string values can be empty
if (tok.value!.Length == 0)
return string.Empty;
if (tok.value.Equals("yes"))
return true;
if (tok.value.Equals("no"))
return false;
string tokStr = tok.value.ToString();
if (tokStr[0] != '-' && !char.IsDigit(tokStr[0]))
return tokStr;
if (tokStr.Contains('.') && double.TryParse(tokStr, out double d))
return d;
if (long.TryParse(tokStr, out long l))
return l;
return tokStr;
if (tokStr.Contains('.') && double.TryParse(tokStr, out double d))
return d;
if (long.TryParse(tokStr, out long l))
return l;
return tokStr;
}
finally
{
_stringBuilderPool.Return(tok.value!);
}
case TokenType.BracketOpen:
object obj = ParseListOrDict();
return obj;