Skip to content
Snippets Groups Projects
Commit 98158b32 authored by Jiří Kalvoda's avatar Jiří Kalvoda
Browse files

Rename ConfigKeyValue -> ConfigOption

parent 1906caca
Branches
No related tags found
No related merge requests found
......@@ -71,8 +71,8 @@ class ConfigDuplicitKeyException: ConfigDuplicitException
}
class ConfigNoAmenException: ConfigException
{
public ConfigKeyValue Value;
public ConfigNoAmenException(ConfigKeyValue value):base(value.Section.Root)
public ConfigOption Value;
public ConfigNoAmenException(ConfigOption value):base(value.Section.Root)
{
Value = value;
}
......@@ -83,9 +83,9 @@ class ConfigNoAmenException: ConfigException
}
class ConfigMixedTabException: ConfigException
{
public ConfigKeyValue Value;
public ConfigOption Value;
public int Line;
public ConfigMixedTabException(ConfigKeyValue value, int line):base(value.Section.Root)
public ConfigMixedTabException(ConfigOption value, int line):base(value.Section.Root)
{
Value = value;
Line = line;
......@@ -97,9 +97,9 @@ class ConfigMixedTabException: ConfigException
}
class ConfigWrongIndentException: ConfigException
{
public ConfigKeyValue? Value;
public ConfigOption? Value;
public int Line;
public ConfigWrongIndentException(ConfigSection section, ConfigKeyValue? value, int line):base(section.Root)
public ConfigWrongIndentException(ConfigSection section, ConfigOption? value, int line):base(section.Root)
{
Value = value;
Line = line;
......@@ -153,8 +153,8 @@ class ConfigNoValueException: ConfigException
}
class ConfigUnusedOptionException: ConfigException
{
public ConfigKeyValue Value;
public ConfigUnusedOptionException(ConfigKeyValue value):base(value.Root)
public ConfigOption Value;
public ConfigUnusedOptionException(ConfigOption value):base(value.Root)
{
Value = value;
}
......@@ -311,14 +311,14 @@ abstract class ConfigValue
}
public static implicit operator string(ConfigValue v) => v.AsString();
}
class ConfigKeyValue: ConfigValue
class ConfigOption: ConfigValue
{
public ConfigSection Section {get; init;}
internal string? amen;
internal string? tabs;
public string Key {get; init;}
public bool Used = false;
public ConfigKeyValue Use()
public ConfigOption Use()
{
Used = true;
return this;
......@@ -327,7 +327,7 @@ class ConfigKeyValue: ConfigValue
{
get => Section.SectionName != null ? $"{Section.SectionName}: {Key}" : Key;
}
internal ConfigKeyValue(ConfigSection _Section, string _Key, int _line):base(_Section.Root)
internal ConfigOption(ConfigSection _Section, string _Key, int _line):base(_Section.Root)
{
Section = _Section;
Key = _Key;
......@@ -342,7 +342,7 @@ class ConfigKeyAsValue: ConfigValue
{
get => (Section.SectionName != null ? $"{Section.SectionName}: " : "") + $"Key {Value}";
}
internal ConfigKeyAsValue(ConfigKeyValue keyValue):base(keyValue.Root)
internal ConfigKeyAsValue(ConfigOption keyValue):base(keyValue.Root)
{
Line = keyValue.Line;
Value = keyValue.Key;
......@@ -375,13 +375,13 @@ class ConfigSectionNameAsDefaultValue: ConfigSectionNameAsValue
get => base.FullName + $" as default for \"{defaultFor}\" option";
}
}
class ConfigSection: IReadOnlyList<ConfigKeyValue>
class ConfigSection: IReadOnlyList<ConfigOption>
{
public ConfigParser Root {get; init;}
public string? SectionName {get; init;}
public int Line;
List<ConfigKeyValue> values = new();
Dictionary<string, ConfigKeyValue> valueByName = new();
List<ConfigOption> values = new();
Dictionary<string, ConfigOption> valueByName = new();
public bool Used = false;
public ConfigSection Use()
{
......@@ -394,14 +394,14 @@ class ConfigSection: IReadOnlyList<ConfigKeyValue>
SectionName = _SectionName;
Line = _line;
}
internal void Add(ConfigKeyValue v)
internal void Add(ConfigOption v)
{
if(valueByName.ContainsKey(v.Key))
throw new ConfigDuplicitKeyException(this, v.Key, v.Line, valueByName[v.Key].Line);
valueByName[v.Key] = v;
values.Add(v);
}
public IEnumerator<ConfigKeyValue> GetEnumerator()
public IEnumerator<ConfigOption> GetEnumerator()
{
foreach(var s in values)
yield return s;
......@@ -409,15 +409,15 @@ class ConfigSection: IReadOnlyList<ConfigKeyValue>
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
=> GetEnumerator();
public int Count{ get{return values.Count;}}
public ConfigKeyValue this[int i]
public ConfigOption this[int i]
{
get { return values[i]; }
}
public ConfigKeyValue? this[string key]
public ConfigOption? this[string key]
{
get { return Optional(key); }
}
public ConfigKeyValue? Optional(string key)
public ConfigOption? Optional(string key)
{
if(!valueByName.TryGetValue(key, out var r))
return null;
......@@ -427,7 +427,7 @@ class ConfigSection: IReadOnlyList<ConfigKeyValue>
{
return (ConfigValue?)Optional(key) ?? new ConfigSectionNameAsDefaultValue(this, key);
}
public ConfigKeyValue Mandatory(string key)
public ConfigOption Mandatory(string key)
{
if(!valueByName.TryGetValue(key, out var r))
throw new ConfigNotDefinedException(this, key);
......@@ -448,7 +448,7 @@ class ConfigSection: IReadOnlyList<ConfigKeyValue>
public ConfigSectionNameAsValue SectionNameAsValue() => new(this);
public void CheckUnused()
{
foreach(ConfigKeyValue it in this)
foreach(ConfigOption it in this)
{
if(it.Used == false)
throw new ConfigUnusedOptionException(it);
......@@ -466,7 +466,7 @@ class ConfigParser: IReadOnlyList<ConfigSection>
FileName = _FileName;
string[] lines = s.Split("\n");
var currentSection = MainSection = new(this, null, 0);
ConfigKeyValue? lastVal = null;
ConfigOption? lastVal = null;
for(int i=0;i<lines.Count();i++)
{
string l = lines[i];
......@@ -519,12 +519,12 @@ class ConfigParser: IReadOnlyList<ConfigSection>
int indexArrow = l.IndexOf("<<");
if(indexIs == -1 && indexArrow == -1)
{
currentSection.Add(lastVal = new ConfigKeyValue(currentSection, tl, firstLineIndex + i));
currentSection.Add(lastVal = new ConfigOption(currentSection, tl, firstLineIndex + i));
continue;
}
int index = indexIs == -1 ? indexArrow : indexArrow == -1 ? indexIs : Math.Min(indexIs, indexArrow);
string key = l[0..index].Trim();
currentSection.Add(lastVal = new ConfigKeyValue(currentSection, key, firstLineIndex + i));
currentSection.Add(lastVal = new ConfigOption(currentSection, key, firstLineIndex + i));
if(indexIs != -1 && (indexArrow == -1 || indexIs < indexArrow))
{
string val = l[(indexIs+1)..].Trim();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment