FrameworcFix splitted to different files

This commit is contained in:
2021-12-12 16:19:18 +03:00
parent 5e8f9d8485
commit e9d490ebe3
14 changed files with 185 additions and 203 deletions

View File

@@ -1,4 +1,5 @@
using System;
using DTLib.Extensions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -29,6 +30,13 @@ namespace DTLib.Dtsod
foreach (KeyValuePair<string, dynamic> pair in Parse(text))
Add(pair.Key, pair.Value);
}
public DtsodV21(Dictionary<string, dynamic> rawDict)
{
Text = "";
foreach (KeyValuePair<string, dynamic> pair in rawDict)
Add(pair.Key, pair.Value);
}
// выдаёт Exception
public new dynamic this[string key]
@@ -89,14 +97,14 @@ namespace DTLib.Dtsod
// СЛОМАНО
/*void ReadCommentLine()
{
for (; i < text.Length && text[i] != '\n'; i++) DebugNoTime("gray", text[i].ToString());
for (; i < text.Length && text[i] != '\n'; i++) DebugNoTime("h", text[i].ToString());
}*/
void ReadName()
{
bool isListElem = false;
dynamic value = null;
dynamic value;
StringBuilder defaultNameBuilder = new();
DebugNoTime("m", "ReadName\n");
@@ -113,7 +121,8 @@ namespace DTLib.Dtsod
i++;
string name = defaultNameBuilder.ToString();
value = ReadValue();
DebugNoTime("c", $"parsed.Add({name}, {value} { value.GetType() })\n");
// если value это null, эта строка выдавала ошибку
//DebugNoTime("c", $"parsed.Add({name}, {value} { value.GetType() })\n");
if (isListElem)
{
if (!parsed.ContainsKey(name))
@@ -158,11 +167,11 @@ namespace DTLib.Dtsod
valueBuilder.Append('"');
for (; text[i] != '"' || text[i - 1] == '\\'; i++)
{
DebugNoTime("gray", text[i].ToString());
DebugNoTime("h", text[i].ToString());
valueBuilder.Append(text[i]);
}
valueBuilder.Append('"');
DebugNoTime("gray", text[i].ToString());
DebugNoTime("h", text[i].ToString());
type = ValueType.String;
return valueBuilder.ToString();
}

View File

@@ -1,4 +1,5 @@
using System;
using DTLib.Extensions;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
@@ -35,12 +36,6 @@ namespace DTLib.Dtsod
Type = type;
IsList = isList;
}
public ValueStruct(ValueTypes type, dynamic value)
{
Value = value;
Type = type;
IsList = false;
}
}
public enum ValueTypes
@@ -122,14 +117,14 @@ namespace DTLib.Dtsod
// СЛОМАНО
/*void ReadCommentLine()
{
for (; i < text.Length && text[i] != '\n'; i++) Debug("gray", text[i].ToString());
for (; i < text.Length && text[i] != '\n'; i++) Debug("h", text[i].ToString());
}*/
void ReadName()
{
bool isListElem = false;
dynamic value = null;
dynamic value;
StringBuilder defaultNameBuilder = new();
DebugNoTime("m", "ReadName\n");
@@ -192,11 +187,11 @@ namespace DTLib.Dtsod
valueBuilder.Append('"');
for (; text[i] != '"' || text[i - 1] == '\\'; i++)
{
DebugNoTime("gray", text[i].ToString());
DebugNoTime("h", text[i].ToString());
valueBuilder.Append(text[i]);
}
valueBuilder.Append('"');
DebugNoTime("gray", text[i].ToString());
DebugNoTime("h", text[i].ToString());
type = ValueTypes.String;
return valueBuilder.ToString();
}
@@ -405,33 +400,34 @@ namespace DTLib.Dtsod
switch (value.Type)
{
case ValueTypes.List:
outBuilder.Append("\"list deconstruction is'nt implemented yet\"");
outBuilder.Append('[').Append(ToStringConverter.MergeToString((IEnumerable<object>)value.Value, ",")).Append(']');
//outBuilder.Append("\"list deconstruction is'nt implemented yet\"");
break;
case ValueTypes.Complex:
outBuilder.Append("\n");
outBuilder.Append('\n');
outBuilder.Append('\t', tabCount);
outBuilder.Append("{\n");
tabCount++;
outBuilder.Append(Deconstruct(value.Value));
tabCount--;
outBuilder.Append('\t', tabCount);
outBuilder.Append("}");
outBuilder.Append('}');
break;
case ValueTypes.String:
outBuilder.Append("\"");
outBuilder.Append('\"');
outBuilder.Append(value.Value.ToString());
outBuilder.Append("\"");
outBuilder.Append('\"');
break;
case ValueTypes.Short:
outBuilder.Append(value.Value.ToString());
outBuilder.Append("s");
outBuilder.Append('s');
break;
case ValueTypes.Int:
outBuilder.Append(value.Value.ToString());
break;
case ValueTypes.Long:
outBuilder.Append(value.Value.ToString());
outBuilder.Append("l");
outBuilder.Append('l');
break;
case ValueTypes.UShort:
outBuilder.Append(value.Value.ToString());