Compare commits

...

2 Commits

Author SHA1 Message Date
95c0403362 created data_filtering.txt 2025-04-08 18:04:22 +05:00
7353cbcd49 fixed some bugs 2025-04-08 18:03:56 +05:00
3 changed files with 51 additions and 7 deletions

View File

@ -75,7 +75,7 @@ internal static partial class Modes
ColoredConsole.Write("Input file path: ", ConsoleColor.Blue);
input = ColoredConsole.ReadLine(ConsoleColor.Gray);
if (string.IsNullOrEmpty(input))
throw new NullReferenceException();
throw new ArgumentException("Input file path is required");
inputPath = input;
break;
@ -83,9 +83,9 @@ internal static partial class Modes
case "output":
ColoredConsole.Write("Output file path [default=stdout]: ", ConsoleColor.Blue);
input = ColoredConsole.ReadLine(ConsoleColor.Gray);
if (string.IsNullOrEmpty(input))
throw new ArgumentException("Input file path is required");
inputPath = input;
if(string.IsNullOrEmpty(input))
outputPath = null;
else outputPath = input;
break;
case "s":

View File

@ -41,7 +41,8 @@ public static class SearchExpressionCompiler
var subExprs = new List<ISearchExpression>();
int supExprBegin = 1;
int bracketBalance = 1;
for (int i = supExprBegin; i < query.Length && bracketBalance != 0; i++)
int i = supExprBegin;
for (; i < query.Length && bracketBalance != 0; i++)
{
if (CharEqualsAndNotEscaped('(', query, i))
{
@ -60,7 +61,7 @@ public static class SearchExpressionCompiler
}
}
if (query[^1] != ')')
if (i != query.Length)
throw new NotImplementedException("Expressions after ')' are not supported");
if (bracketBalance > 0)
@ -68,7 +69,7 @@ public static class SearchExpressionCompiler
if (bracketBalance < 0)
throw new Exception("Too many closing brackets");
var subPartLast = query.Slice(supExprBegin, query.Length - supExprBegin - 1);
var subPartLast = query.Slice(supExprBegin, i - 1 - supExprBegin);
var subExprLast = Compile(subPartLast);
subExprs.Add(subExprLast);
return new MultipleMatchExpression(subExprs);

View File

@ -0,0 +1,43 @@
countries
filter:
always: exists (has raw_development && raw_development != 0)
optional: is player (was_player == yes)
exclude:
flags
hidden_flags
variables
estate
active_agenda
power_projection
ai
history
navy
army
mercenary_company
active_relations
border_pct
border_sit
border_provinces
neighbours
home_neighbours
core_neighbours
inflation_history
opinion_cache
owned_provinces
controlled_provinces
core_provinces
claim_provinces
leader
query:
countries.(---.~|REB.~|PIR.~|NAT.~|*.(flags.~|hidden_flags.~|variables.~|estate.~|active_agenda.~|power_projection.~|ai.~|history.~|navy.~|army.~|mercenary_company.~|active_relations.~|border_pct.~|border_sit.~|border_provinces.~|neighbours.~|home_neighbours.~|core_neighbours.~|inflation_history.~|opinion_cache.~|owned_provinces.~|controlled_provinces.~|core_provinces.~|claim_provinces.~|leader.~|*))
active_war
filter:
optional: only player wars
previous_war
filter:
optional: only player wars
always: not fictive (has losses and lasts long)
income_statistics
nation_size_statistics
inflation_statistics