implemented boolean values parsing
This commit is contained in:
parent
74d09c51a0
commit
c4af1f31e8
@ -8,6 +8,7 @@ namespace ParadoxSaveParser.Lib;
|
||||
[JsonSerializable(typeof(string))]
|
||||
[JsonSerializable(typeof(long))]
|
||||
[JsonSerializable(typeof(double))]
|
||||
[JsonSerializable(typeof(bool))]
|
||||
public partial class ParsedValueJsonContext : JsonSerializerContext
|
||||
{
|
||||
}
|
||||
@ -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;
|
||||
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();
|
||||
_stringBuilderPool.Return(tok.value);
|
||||
if (tokStr[0] != '-' && !char.IsDigit(tokStr[0]))
|
||||
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;
|
||||
|
||||
@ -3,11 +3,12 @@ option csharp_namespace = "ParadoxSaveParser.WebAPI.MyProtobuf";
|
||||
|
||||
message Item {
|
||||
oneof value {
|
||||
int64 i64 = 1;
|
||||
double f64 = 2;
|
||||
string str = 3;
|
||||
ItemList list = 4;
|
||||
ItemListMap map = 5;
|
||||
bool b = 1;
|
||||
int64 i64 = 2;
|
||||
double f64 = 3;
|
||||
string str = 4;
|
||||
ItemList list = 5;
|
||||
ItemListMap map = 6;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user