From b2f61c3d7322e21f419bd0768bbd6d8f5b31e009 Mon Sep 17 00:00:00 2001 From: Frank Tovar Date: Sat, 14 Mar 2026 03:27:14 +0100 Subject: [PATCH] Implement phase 4 critical table imports --- docs/critical_import_tool.md | 43 +- docs/critical_tables_db_model.md | 4 +- sources/critical-import-manifest.json | 24 + src/RolemasterDb.App/rolemaster.db | Bin 634880 -> 716800 bytes ...dardCriticalTableParserIntegrationTests.cs | 94 +++- .../CriticalImportCommandRunner.cs | 20 +- .../CriticalImportLoader.cs | 11 + .../ImportArtifactWriter.cs | 2 +- .../Parsing/CriticalTableParseResult.cs | 13 + .../Parsing/CriticalTableParserSupport.cs | 477 ++++++++++++++++++ .../GroupedVariantCriticalTableParser.cs | 306 +++++++++++ .../Parsing/ParsedCriticalCellArtifact.cs | 2 + .../Parsing/ParsedCriticalGroup.cs | 8 + .../Parsing/ParsedCriticalResult.cs | 2 + .../Parsing/ParsedCriticalTable.cs | 2 + .../Parsing/StandardCriticalTableParser.cs | 470 ++--------------- .../VariantColumnCriticalTableParser.cs | 276 ++++++++++ 17 files changed, 1280 insertions(+), 474 deletions(-) create mode 100644 src/RolemasterDb.ImportTool/Parsing/CriticalTableParseResult.cs create mode 100644 src/RolemasterDb.ImportTool/Parsing/CriticalTableParserSupport.cs create mode 100644 src/RolemasterDb.ImportTool/Parsing/GroupedVariantCriticalTableParser.cs create mode 100644 src/RolemasterDb.ImportTool/Parsing/ParsedCriticalGroup.cs create mode 100644 src/RolemasterDb.ImportTool/Parsing/VariantColumnCriticalTableParser.cs diff --git a/docs/critical_import_tool.md b/docs/critical_import_tool.md index 5e481c9..cb746c0 100644 --- a/docs/critical_import_tool.md +++ b/docs/critical_import_tool.md @@ -30,8 +30,10 @@ The current implementation supports: - explicit CLI commands for reset, extraction, and import - manifest-driven source selection - `standard` critical tables with columns `A-E` +- `variant_column` critical tables with non-severity columns +- `grouped_variant` critical tables with a group axis plus variant columns - XML-based extraction using `pdftohtml -xml` -- geometry-based parsing across the currently enabled phase-3 tables: +- geometry-based parsing across the currently enabled table set: - `arcane-aether` - `arcane-nether` - `ballistic-shrapnel` @@ -42,22 +44,24 @@ The current implementation supports: - `heat` - `impact` - `krush` + - `large_creature_magic` + - `large_creature_weapon` - `ma-strikes` - `ma-sweeps` - `mana` - `puncture` - `slash` - `subdual` + - `super_large_creature_weapon` - `tiny` - `unbalance` - row-boundary repair for trailing affix leakage +- split row-label reconstruction for tables that render labels such as `99-` / `100` as two fragments - footer/page-number filtering during body parsing - transactional loading into SQLite The current implementation does not yet support: -- variant-column critical tables -- grouped variant tables - OCR/image-based PDFs such as `Void.pdf` - normalized `critical_branch` population - normalized `critical_effect` population @@ -246,9 +250,28 @@ Current phase-3 notes: ### Phase 4: Variant and Grouped Tables -- support `variant_column` tables such as `Large Creature - Weapon.pdf` -- support `grouped_variant` tables such as `Large Creature - Magic.pdf` -- add parser strategies for additional table families +Phase 4 extended the importer beyond `A-E` tables. + +The currently enabled phase-4 table set is: + +- `large_creature_weapon` + - `family`: `variant_column` + - columns: `NORMAL`, `MAGIC`, `MITHRIL`, `HOLY_ARMS`, `SLAYING` +- `super_large_creature_weapon` + - `family`: `variant_column` + - columns: `NORMAL`, `MAGIC`, `MITHRIL`, `HOLY_ARMS`, `SLAYING` +- `large_creature_magic` + - `family`: `grouped_variant` + - groups: `large`, `super_large` + - columns: `NORMAL`, `SLAYING` + +Phase-4 notes: + +- grouped results now populate `critical_group` during SQLite load +- parser dispatch is family-based instead of standard-table only +- left-margin row labels can be reconstructed from split fragments such as `151-` / `175` +- the grouped magic PDF is imported once as `large_creature_magic` + - `sources/Large Creature - Magic.pdf` and `sources/Super Large Creature - Magic.pdf` are duplicate files ### Phase 5: Conditional Branch Extraction @@ -335,10 +358,12 @@ Each entry declares: The manifest is intentionally the control point for enabling importer support one table at a time. -For the currently enabled phase-3 entries: +For the currently enabled entries: -- `family` is `standard` -- `extractionMethod` is `xml` +- standard tables use `family: standard` +- creature weapon tables use `family: variant_column` +- grouped creature magic uses `family: grouped_variant` +- all enabled entries currently use `extractionMethod: xml` ## Artifact Layout diff --git a/docs/critical_tables_db_model.md b/docs/critical_tables_db_model.md index e0ce75d..7746c23 100644 --- a/docs/critical_tables_db_model.md +++ b/docs/critical_tables_db_model.md @@ -19,11 +19,12 @@ The PDFs are not one uniform table shape. I found three families: - Example: `Large Creature - Magic.pdf` has: - group: `large`, `super_large` - column: `normal`, `slaying` + - In the current importer manifest, the grouped magic PDF is loaded once as `large_creature_magic` because the `Large Creature - Magic.pdf` and `Super Large Creature - Magic.pdf` source files are duplicates. - row: roll band There are also extraction constraints: -- Most PDFs are text extractable with `pdftotext -layout`. +- Most PDFs are text extractable with `pdftohtml -xml`. - `Void.pdf` appears image-based and will need OCR or manual transcription. - A single cell can contain: - base description text @@ -282,4 +283,3 @@ Recommended import flow: 6. Route image PDFs like `Void.pdf` through OCR before the same parser. The important design decision is: never throw away the original text. The prose is too irregular to rely on normalized fields alone. - diff --git a/sources/critical-import-manifest.json b/sources/critical-import-manifest.json index 0c1953e..9721b5a 100644 --- a/sources/critical-import-manifest.json +++ b/sources/critical-import-manifest.json @@ -80,6 +80,22 @@ "pdfPath": "sources/Krush.pdf", "enabled": true }, + { + "slug": "large_creature_magic", + "displayName": "Spells Against Creatures Critical Strike Table", + "family": "grouped_variant", + "extractionMethod": "xml", + "pdfPath": "sources/Large Creature - Magic.pdf", + "enabled": true + }, + { + "slug": "large_creature_weapon", + "displayName": "Large Creature Critical Strike Table", + "family": "variant_column", + "extractionMethod": "xml", + "pdfPath": "sources/Large Creature - Weapon.pdf", + "enabled": true + }, { "slug": "ma-strikes", "displayName": "Martial Arts Strikes Critical Strike Table", @@ -128,6 +144,14 @@ "pdfPath": "sources/Subdual.pdf", "enabled": true }, + { + "slug": "super_large_creature_weapon", + "displayName": "Super Large Creature Critical Strike Table", + "family": "variant_column", + "extractionMethod": "xml", + "pdfPath": "sources/Super Large Creature - Weapon.pdf", + "enabled": true + }, { "slug": "tiny", "displayName": "Tiny Critical Strike Table", diff --git a/src/RolemasterDb.App/rolemaster.db b/src/RolemasterDb.App/rolemaster.db index f9fa5328fc6b765397e1127c2f5b6f1df2d77c43..208d4c6332fada174b5815ec3ba1f7f68c1d8e06 100644 GIT binary patch literal 716800 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 JhR2h@Oe6p}k& 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®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 E0qVz{FaQ7m delta 182982 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

    XrM(Fglp3FM>DGah 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 fN7SiUtHy|Wch>AtQMNqnsw&?*;#+v^J|Bf7u diff --git a/src/RolemasterDb.ImportTool.Tests/StandardCriticalTableParserIntegrationTests.cs b/src/RolemasterDb.ImportTool.Tests/StandardCriticalTableParserIntegrationTests.cs index 3c44cfa..7f598f9 100644 --- a/src/RolemasterDb.ImportTool.Tests/StandardCriticalTableParserIntegrationTests.cs +++ b/src/RolemasterDb.ImportTool.Tests/StandardCriticalTableParserIntegrationTests.cs @@ -4,7 +4,7 @@ namespace RolemasterDb.ImportTool.Tests; public sealed class StandardCriticalTableParserIntegrationTests { - private static readonly string[] ExpectedPhase3Slugs = + private static readonly string[] ExpectedEnabledSlugs = [ "arcane-aether", "arcane-nether", @@ -16,20 +16,25 @@ public sealed class StandardCriticalTableParserIntegrationTests "heat", "impact", "krush", + "large_creature_magic", + "large_creature_weapon", "ma-strikes", "ma-sweeps", "mana", "puncture", "slash", "subdual", + "super_large_creature_weapon", "tiny", "unbalance" ]; private static readonly PdfXmlExtractor Extractor = new(); - private static readonly StandardCriticalTableParser Parser = new(); + private static readonly StandardCriticalTableParser StandardParser = new(); + private static readonly VariantColumnCriticalTableParser VariantColumnParser = new(); + private static readonly GroupedVariantCriticalTableParser GroupedVariantParser = new(); - public static IEnumerable EnabledStandardTables() => + public static IEnumerable EnabledTables() => LoadManifest().Tables .Where(item => item.Enabled) .OrderBy(item => item.Slug, StringComparer.Ordinal) @@ -37,18 +42,22 @@ public sealed class StandardCriticalTableParserIntegrationTests public static IEnumerable RepresentativeCells() { - yield return ["slash", "71-75", "A", "Blow falls on lower leg"]; - yield return ["puncture", "66", "C", "Strike shatters foe's knee"]; - yield return ["ballistic-shrapnel", "86-90", "E", "destroy his heart"]; - yield return ["arcane-aether", "96-99", "E", "smoking pulp"]; - yield return ["ma-strikes", "96-99", "E", "drives bone into brain"]; - yield return ["mana", "96-99", "E", "momentarily transformed"]; - yield return ["mana", "100", "E", "Mana consumes everything"]; - yield return ["tiny", "100", "E", "Vein and artery severed"]; + yield return new object[] { "slash", null!, "71-75", "A", "Blow falls on lower leg" }; + yield return new object[] { "puncture", null!, "66", "C", "Strike shatters foe's knee" }; + yield return new object[] { "ballistic-shrapnel", null!, "86-90", "E", "destroy his heart" }; + yield return new object[] { "arcane-aether", null!, "96-99", "E", "smoking pulp" }; + yield return new object[] { "ma-strikes", null!, "96-99", "E", "drives bone into brain" }; + yield return new object[] { "mana", null!, "96-99", "E", "momentarily transformed" }; + yield return new object[] { "mana", null!, "100", "E", "Mana consumes everything" }; + yield return new object[] { "tiny", null!, "100", "E", "Vein and artery severed" }; + yield return new object[] { "large_creature_weapon", null!, "01-05", "NORMAL", "Weapon shatters" }; + yield return new object[] { "super_large_creature_weapon", null!, "31-40", "SLAYING", "Boom! Solid without question" }; + yield return new object[] { "large_creature_magic", "large", "251+", "NORMAL", "Foe lowers his eyes within your reach" }; + yield return new object[] { "large_creature_magic", "super_large", "251+", "SLAYING", "Blast goes in through foe's eye" }; } [Fact] - public void Manifest_enables_the_phase_3_standard_table_set() + public void Manifest_enables_the_phase_4_table_set() { var manifest = LoadManifest(); var enabledTables = manifest.Tables @@ -56,25 +65,29 @@ public sealed class StandardCriticalTableParserIntegrationTests .OrderBy(item => item.Slug, StringComparer.Ordinal) .ToList(); - Assert.Equal(ExpectedPhase3Slugs, enabledTables.Select(item => item.Slug)); + Assert.Equal(ExpectedEnabledSlugs, enabledTables.Select(item => item.Slug)); Assert.All(enabledTables, entry => { - Assert.Equal("standard", entry.Family); Assert.Equal("xml", entry.ExtractionMethod); Assert.True(File.Exists(Path.Combine(GetRepositoryRoot(), entry.PdfPath)), $"Missing source PDF for '{entry.Slug}'."); }); + + Assert.Equal("variant_column", enabledTables.Single(item => item.Slug == "large_creature_weapon").Family); + Assert.Equal("variant_column", enabledTables.Single(item => item.Slug == "super_large_creature_weapon").Family); + Assert.Equal("grouped_variant", enabledTables.Single(item => item.Slug == "large_creature_magic").Family); } [Theory] - [MemberData(nameof(EnabledStandardTables))] - public async Task Enabled_standard_tables_extract_and_parse_successfully(CriticalImportManifestEntry entry) + [MemberData(nameof(EnabledTables))] + public async Task Enabled_tables_extract_and_parse_successfully(CriticalImportManifestEntry entry) { var parseResult = await LoadParseResultAsync(entry); + var expectedGroupCount = Math.Max(parseResult.Table.Groups.Count, 1); Assert.True(parseResult.ValidationReport.IsValid, string.Join(Environment.NewLine, parseResult.ValidationReport.Errors)); - Assert.Equal(5, parseResult.Table.Columns.Count); + Assert.NotEmpty(parseResult.Table.Columns); Assert.NotEmpty(parseResult.Table.RollBands); - Assert.Equal(parseResult.ValidationReport.RowCount * 5, parseResult.ValidationReport.CellCount); + Assert.Equal(parseResult.ValidationReport.RowCount * parseResult.Table.Columns.Count * expectedGroupCount, parseResult.ValidationReport.CellCount); Assert.Equal(parseResult.ValidationReport.CellCount, parseResult.Table.Results.Count); } @@ -82,6 +95,7 @@ public sealed class StandardCriticalTableParserIntegrationTests [MemberData(nameof(RepresentativeCells))] public async Task Representative_cells_keep_expected_descriptions( string slug, + string? groupKey, string rollBandLabel, string columnKey, string expectedSnippet) @@ -89,6 +103,7 @@ public sealed class StandardCriticalTableParserIntegrationTests var entry = LoadManifest().Tables.Single(item => string.Equals(item.Slug, slug, StringComparison.Ordinal)); var parseResult = await LoadParseResultAsync(entry); var result = parseResult.Table.Results.Single(item => + string.Equals(item.GroupKey, groupKey, StringComparison.Ordinal) && string.Equals(item.RollBandLabel, rollBandLabel, StringComparison.Ordinal) && string.Equals(item.ColumnKey, columnKey, StringComparison.Ordinal)); @@ -101,6 +116,7 @@ public sealed class StandardCriticalTableParserIntegrationTests var entry = LoadManifest().Tables.Single(item => string.Equals(item.Slug, "slash", StringComparison.Ordinal)); var parseResult = await LoadParseResultAsync(entry); var result = parseResult.Table.Results.Single(item => + item.GroupKey is null && string.Equals(item.RollBandLabel, "56-60", StringComparison.Ordinal) && string.Equals(item.ColumnKey, "A", StringComparison.Ordinal)); @@ -113,9 +129,11 @@ public sealed class StandardCriticalTableParserIntegrationTests var entry = LoadManifest().Tables.Single(item => string.Equals(item.Slug, "mana", StringComparison.Ordinal)); var parseResult = await LoadParseResultAsync(entry); var row96E = parseResult.Table.Results.Single(item => + item.GroupKey is null && string.Equals(item.RollBandLabel, "96-99", StringComparison.Ordinal) && string.Equals(item.ColumnKey, "E", StringComparison.Ordinal)); var row100E = parseResult.Table.Results.Single(item => + item.GroupKey is null && string.Equals(item.RollBandLabel, "100", StringComparison.Ordinal) && string.Equals(item.ColumnKey, "E", StringComparison.Ordinal)); @@ -130,6 +148,7 @@ public sealed class StandardCriticalTableParserIntegrationTests var entry = LoadManifest().Tables.Single(item => string.Equals(item.Slug, "mana", StringComparison.Ordinal)); var parseResult = await LoadParseResultAsync(entry); var row100C = parseResult.Table.Results.Single(item => + item.GroupKey is null && string.Equals(item.RollBandLabel, "100", StringComparison.Ordinal) && string.Equals(item.ColumnKey, "C", StringComparison.Ordinal)); @@ -143,9 +162,11 @@ public sealed class StandardCriticalTableParserIntegrationTests var entry = LoadManifest().Tables.Single(item => string.Equals(item.Slug, "mana", StringComparison.Ordinal)); var parseResult = await LoadParseResultAsync(entry); var row71A = parseResult.Table.Results.Single(item => + item.GroupKey is null && string.Equals(item.RollBandLabel, "71-75", StringComparison.Ordinal) && string.Equals(item.ColumnKey, "A", StringComparison.Ordinal)); var row71B = parseResult.Table.Results.Single(item => + item.GroupKey is null && string.Equals(item.RollBandLabel, "71-75", StringComparison.Ordinal) && string.Equals(item.ColumnKey, "B", StringComparison.Ordinal)); @@ -159,9 +180,11 @@ public sealed class StandardCriticalTableParserIntegrationTests var entry = LoadManifest().Tables.Single(item => string.Equals(item.Slug, "mana", StringComparison.Ordinal)); var parseResult = await LoadParseResultAsync(entry); var row71D = parseResult.Table.Results.Single(item => + item.GroupKey is null && string.Equals(item.RollBandLabel, "71-75", StringComparison.Ordinal) && string.Equals(item.ColumnKey, "D", StringComparison.Ordinal)); var row71E = parseResult.Table.Results.Single(item => + item.GroupKey is null && string.Equals(item.RollBandLabel, "71-75", StringComparison.Ordinal) && string.Equals(item.ColumnKey, "E", StringComparison.Ordinal)); @@ -175,9 +198,11 @@ public sealed class StandardCriticalTableParserIntegrationTests var entry = LoadManifest().Tables.Single(item => string.Equals(item.Slug, "mana", StringComparison.Ordinal)); var parseResult = await LoadParseResultAsync(entry); var row91B = parseResult.Table.Results.Single(item => + item.GroupKey is null && string.Equals(item.RollBandLabel, "91-95", StringComparison.Ordinal) && string.Equals(item.ColumnKey, "B", StringComparison.Ordinal)); var row91C = parseResult.Table.Results.Single(item => + item.GroupKey is null && string.Equals(item.RollBandLabel, "91-95", StringComparison.Ordinal) && string.Equals(item.ColumnKey, "C", StringComparison.Ordinal)); @@ -191,9 +216,11 @@ public sealed class StandardCriticalTableParserIntegrationTests var entry = LoadManifest().Tables.Single(item => string.Equals(item.Slug, "mana", StringComparison.Ordinal)); var parseResult = await LoadParseResultAsync(entry); var row86B = parseResult.Table.Results.Single(item => + item.GroupKey is null && string.Equals(item.RollBandLabel, "86-90", StringComparison.Ordinal) && string.Equals(item.ColumnKey, "B", StringComparison.Ordinal)); var row86C = parseResult.Table.Results.Single(item => + item.GroupKey is null && string.Equals(item.RollBandLabel, "86-90", StringComparison.Ordinal) && string.Equals(item.ColumnKey, "C", StringComparison.Ordinal)); @@ -201,7 +228,28 @@ public sealed class StandardCriticalTableParserIntegrationTests Assert.Contains("+16H - 8", row86C.RawAffixText, StringComparison.Ordinal); } - private static async Task LoadParseResultAsync(CriticalImportManifestEntry entry) + [Fact] + public async Task Grouped_magic_table_keeps_large_and_super_large_groups_distinct() + { + var entry = LoadManifest().Tables.Single(item => string.Equals(item.Slug, "large_creature_magic", StringComparison.Ordinal)); + var parseResult = await LoadParseResultAsync(entry); + + Assert.Equal(["large", "super_large"], parseResult.Table.Groups.Select(item => item.GroupKey)); + + var largeNormal = parseResult.Table.Results.Single(item => + string.Equals(item.GroupKey, "large", StringComparison.Ordinal) && + string.Equals(item.RollBandLabel, "251+", StringComparison.Ordinal) && + string.Equals(item.ColumnKey, "NORMAL", StringComparison.Ordinal)); + var superSlaying = parseResult.Table.Results.Single(item => + string.Equals(item.GroupKey, "super_large", StringComparison.Ordinal) && + string.Equals(item.RollBandLabel, "251+", StringComparison.Ordinal) && + string.Equals(item.ColumnKey, "SLAYING", StringComparison.Ordinal)); + + Assert.DoesNotContain("Blast goes in through foe's eye", largeNormal.DescriptionText, StringComparison.OrdinalIgnoreCase); + Assert.Contains("Blast goes in through foe's eye", superSlaying.DescriptionText, StringComparison.OrdinalIgnoreCase); + } + + private static async Task LoadParseResultAsync(CriticalImportManifestEntry entry) { var xmlPath = Path.Combine(GetArtifactCacheRoot(), $"{entry.Slug}.xml"); @@ -211,7 +259,13 @@ public sealed class StandardCriticalTableParserIntegrationTests } var xmlContent = await File.ReadAllTextAsync(xmlPath); - return Parser.Parse(entry, xmlContent); + return entry.Family switch + { + "standard" => StandardParser.Parse(entry, xmlContent), + "variant_column" => VariantColumnParser.Parse(entry, xmlContent), + "grouped_variant" => GroupedVariantParser.Parse(entry, xmlContent), + _ => throw new InvalidOperationException($"Unsupported manifest family '{entry.Family}'.") + }; } private static CriticalImportManifest LoadManifest() => diff --git a/src/RolemasterDb.ImportTool/CriticalImportCommandRunner.cs b/src/RolemasterDb.ImportTool/CriticalImportCommandRunner.cs index ba5b8e1..8810a17 100644 --- a/src/RolemasterDb.ImportTool/CriticalImportCommandRunner.cs +++ b/src/RolemasterDb.ImportTool/CriticalImportCommandRunner.cs @@ -8,6 +8,8 @@ public sealed class CriticalImportCommandRunner private readonly ImportArtifactWriter artifactWriter = new(); private readonly PdfXmlExtractor pdfXmlExtractor = new(); private readonly StandardCriticalTableParser standardParser = new(); + private readonly VariantColumnCriticalTableParser variantColumnParser = new(); + private readonly GroupedVariantCriticalTableParser groupedVariantParser = new(); public async Task RunAsync(ResetOptions options) { @@ -96,14 +98,24 @@ public sealed class CriticalImportCommandRunner ?? throw new InvalidOperationException($"No enabled manifest entry was found for '{tableSlug}'."); } - private StandardCriticalTableParseResult Parse(CriticalImportManifestEntry entry, string xmlContent) + private CriticalTableParseResult Parse(CriticalImportManifestEntry entry, string xmlContent) { - if (!string.Equals(entry.Family, "standard", StringComparison.OrdinalIgnoreCase)) + if (string.Equals(entry.Family, "standard", StringComparison.OrdinalIgnoreCase)) { - throw new InvalidOperationException($"Family '{entry.Family}' is not supported by phase 2."); + return standardParser.Parse(entry, xmlContent); } - return standardParser.Parse(entry, xmlContent); + if (string.Equals(entry.Family, "variant_column", StringComparison.OrdinalIgnoreCase)) + { + return variantColumnParser.Parse(entry, xmlContent); + } + + if (string.Equals(entry.Family, "grouped_variant", StringComparison.OrdinalIgnoreCase)) + { + return groupedVariantParser.Parse(entry, xmlContent); + } + + throw new InvalidOperationException($"Family '{entry.Family}' is not supported by the importer."); } private static ImportArtifactPaths CreateArtifactPaths(string slug) => diff --git a/src/RolemasterDb.ImportTool/CriticalImportLoader.cs b/src/RolemasterDb.ImportTool/CriticalImportLoader.cs index 080e0f6..f7a0417 100644 --- a/src/RolemasterDb.ImportTool/CriticalImportLoader.cs +++ b/src/RolemasterDb.ImportTool/CriticalImportLoader.cs @@ -43,6 +43,15 @@ public sealed class CriticalImportLoader(string databasePath) Notes = table.Notes }; + entity.Groups = table.Groups + .Select(item => new CriticalGroup + { + GroupKey = item.GroupKey, + Label = item.Label, + SortOrder = item.SortOrder + }) + .ToList(); + entity.Columns = table.Columns .Select(item => new CriticalColumn { @@ -63,12 +72,14 @@ public sealed class CriticalImportLoader(string databasePath) }) .ToList(); + var groupsByKey = entity.Groups.ToDictionary(item => item.GroupKey, StringComparer.OrdinalIgnoreCase); var columnsByKey = entity.Columns.ToDictionary(item => item.ColumnKey, StringComparer.OrdinalIgnoreCase); var rollBandsByLabel = entity.RollBands.ToDictionary(item => item.Label, StringComparer.OrdinalIgnoreCase); entity.Results = table.Results .Select(item => new CriticalResult { + CriticalGroup = item.GroupKey is null ? null : groupsByKey[item.GroupKey], CriticalColumn = columnsByKey[item.ColumnKey], CriticalRollBand = rollBandsByLabel[item.RollBandLabel], RawCellText = item.RawCellText, diff --git a/src/RolemasterDb.ImportTool/ImportArtifactWriter.cs b/src/RolemasterDb.ImportTool/ImportArtifactWriter.cs index 53c3cc4..c0c6c34 100644 --- a/src/RolemasterDb.ImportTool/ImportArtifactWriter.cs +++ b/src/RolemasterDb.ImportTool/ImportArtifactWriter.cs @@ -11,7 +11,7 @@ public sealed class ImportArtifactWriter WriteIndented = true }; - public async Task WriteAsync(ImportArtifactPaths artifactPaths, StandardCriticalTableParseResult parseResult, CancellationToken cancellationToken = default) + public async Task WriteAsync(ImportArtifactPaths artifactPaths, CriticalTableParseResult parseResult, CancellationToken cancellationToken = default) { Directory.CreateDirectory(artifactPaths.DirectoryPath); diff --git a/src/RolemasterDb.ImportTool/Parsing/CriticalTableParseResult.cs b/src/RolemasterDb.ImportTool/Parsing/CriticalTableParseResult.cs new file mode 100644 index 0000000..79bbdcb --- /dev/null +++ b/src/RolemasterDb.ImportTool/Parsing/CriticalTableParseResult.cs @@ -0,0 +1,13 @@ +namespace RolemasterDb.ImportTool.Parsing; + +public sealed class CriticalTableParseResult( + ParsedCriticalTable table, + IReadOnlyList fragments, + IReadOnlyList cells, + ImportValidationReport validationReport) +{ + public ParsedCriticalTable Table { get; } = table; + public IReadOnlyList Fragments { get; } = fragments; + public IReadOnlyList Cells { get; } = cells; + public ImportValidationReport ValidationReport { get; } = validationReport; +} diff --git a/src/RolemasterDb.ImportTool/Parsing/CriticalTableParserSupport.cs b/src/RolemasterDb.ImportTool/Parsing/CriticalTableParserSupport.cs new file mode 100644 index 0000000..983ff2e --- /dev/null +++ b/src/RolemasterDb.ImportTool/Parsing/CriticalTableParserSupport.cs @@ -0,0 +1,477 @@ +using System.Text.RegularExpressions; +using System.Xml; +using System.Xml.Linq; + +namespace RolemasterDb.ImportTool.Parsing; + +internal static class CriticalTableParserSupport +{ + internal const int HeaderToBodyMinimumGap = 20; + internal const int FooterLabelExclusionGap = 15; + internal const int FooterPageNumberExclusionGap = 80; + internal const int RowLabelDuplicateTolerance = 15; + internal const int TopGroupingTolerance = 2; + + private static readonly Regex MultiFragmentSplitRegex = new(@"\S(?:.*?\S)?(?=(?:\s{2,}|$))", RegexOptions.Compiled); + private static readonly Regex NumericAffixLineRegex = new(@"^\d+(?:H|∑|∏|π|∫|\s*[–-])", RegexOptions.Compiled); + private static readonly Regex StandaloneModifierAffixLineRegex = new(@"^(?:\d+)?\((?:\+|-|–)\d+\)$", RegexOptions.Compiled); + + internal static List LoadFragments(string xmlContent) + { + using var stringReader = new StringReader(xmlContent); + using var xmlReader = XmlReader.Create( + stringReader, + new XmlReaderSettings + { + DtdProcessing = DtdProcessing.Ignore + }); + + var document = XDocument.Load(xmlReader); + + return document.Descendants("page") + .SelectMany(page => + { + var pageNumber = int.Parse(page.Attribute("number")?.Value ?? "1"); + return page.Elements("text") + .Select(item => new XmlTextFragment( + pageNumber, + int.Parse(item.Attribute("top")?.Value ?? throw new InvalidOperationException("Missing text top attribute.")), + int.Parse(item.Attribute("left")?.Value ?? throw new InvalidOperationException("Missing text left attribute.")), + int.Parse(item.Attribute("width")?.Value ?? throw new InvalidOperationException("Missing text width attribute.")), + int.Parse(item.Attribute("height")?.Value ?? throw new InvalidOperationException("Missing text height attribute.")), + NormalizeText(string.Concat(item.DescendantNodes().OfType().Select(node => node.Value))))) + .Where(item => !string.IsNullOrWhiteSpace(item.Text)); + }) + .ToList(); + } + + internal static List FindRowLabelFragments( + IReadOnlyList fragments, + int leftCutoff, + int bodyStartTop, + int keyTop) + { + var candidates = fragments + .Where(item => + item.Left < leftCutoff && + item.Top >= bodyStartTop && + item.Top < keyTop - FooterLabelExclusionGap && + (IsRollBandLabel(item.Text) || LooksLikeSplitRollBandStart(item.Text))) + .OrderBy(item => item.Top) + .ThenBy(item => item.Left) + .ToList(); + + var merged = new List(); + + for (var index = 0; index < candidates.Count; index++) + { + var candidate = candidates[index]; + if (TryMergeSplitRollBand(candidates, index, out var mergedCandidate)) + { + merged.Add(mergedCandidate); + index++; + continue; + } + + if (IsRollBandLabel(candidate.Text)) + { + merged.Add(candidate); + } + } + + var deduped = new List(); + + foreach (var candidate in merged) + { + var previous = deduped.LastOrDefault(); + if (previous is not null && + string.Equals(NormalizeRollBandLabel(previous.Text), NormalizeRollBandLabel(candidate.Text), StringComparison.OrdinalIgnoreCase) && + Math.Abs(previous.Top - candidate.Top) <= RowLabelDuplicateTolerance) + { + continue; + } + + deduped.Add(candidate); + } + + return deduped; + } + + internal static bool IsRollBandLabel(string value) => + Regex.IsMatch(value.Trim(), @"^\d{2,3}(?:\s*-\s*\d{2,3})?$|^\d{2,3}\+$"); + + internal static bool IsPotentialRowLabelFragment(XmlTextFragment fragment, int leftCutoff) => + fragment.Left < leftCutoff && + (IsRollBandLabel(fragment.Text) || LooksLikeSplitRollBandStart(fragment.Text)); + + internal static string NormalizeRollBandLabel(string label) => + Regex.Replace(CollapseWhitespace(label), @"\s*-\s*", "-"); + + internal static ParsedCriticalRollBand CreateRollBand(string label, int sortOrder) + { + var normalizedLabel = NormalizeRollBandLabel(label); + if (normalizedLabel.EndsWith('+')) + { + return new ParsedCriticalRollBand(normalizedLabel, int.Parse(normalizedLabel[..^1]), null, sortOrder); + } + + var parts = normalizedLabel.Split('-', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + return parts.Length == 1 + ? new ParsedCriticalRollBand(normalizedLabel, int.Parse(parts[0]), int.Parse(parts[0]), sortOrder) + : new ParsedCriticalRollBand(normalizedLabel, int.Parse(parts[0]), int.Parse(parts[1]), sortOrder); + } + + internal static string ResolveColumn(double centerX, IReadOnlyList<(string Key, double CenterX)> columns) + { + for (var index = 0; index < columns.Count - 1; index++) + { + var boundary = (columns[index].CenterX + columns[index + 1].CenterX) / 2.0; + if (centerX < boundary) + { + return columns[index].Key; + } + } + + return columns[^1].Key; + } + + internal static IReadOnlyList BuildLines(IReadOnlyList fragments) + { + var lines = new List>(); + + foreach (var fragment in fragments.OrderBy(item => item.Top).ThenBy(item => item.Left)) + { + if (lines.Count == 0 || Math.Abs(lines[^1][0].Top - fragment.Top) > TopGroupingTolerance) + { + lines.Add([fragment]); + continue; + } + + lines[^1].Add(fragment); + } + + return lines + .Select(line => CollapseWhitespace(string.Join(' ', line.OrderBy(item => item.Left).Select(item => item.Text)))) + .Where(item => !string.IsNullOrWhiteSpace(item)) + .ToList(); + } + + internal static bool IsAffixLikeLine(string line, ISet affixLegendSymbols) + { + var value = line.Trim(); + if (value.Length == 0) + { + return false; + } + + if (value is "-" or "\u2013" or "\u2014") + { + return true; + } + + if (value.StartsWith("with ", StringComparison.OrdinalIgnoreCase) || + value.StartsWith("w/o ", StringComparison.OrdinalIgnoreCase) || + value.StartsWith("without ", StringComparison.OrdinalIgnoreCase) || + value.StartsWith("if ", StringComparison.OrdinalIgnoreCase) || + value.StartsWith("while ", StringComparison.OrdinalIgnoreCase) || + value.StartsWith("until ", StringComparison.OrdinalIgnoreCase) || + value.StartsWith("unless ", StringComparison.OrdinalIgnoreCase)) + { + return value.Contains(':', StringComparison.Ordinal); + } + + if (affixLegendSymbols.Count > 0 && + affixLegendSymbols.Any(symbol => value.Contains(symbol, StringComparison.Ordinal))) + { + if (value.Any(char.IsDigit)) + { + return true; + } + + var remainder = value; + foreach (var symbol in affixLegendSymbols.OrderByDescending(item => item.Length)) + { + remainder = remainder.Replace(symbol, string.Empty, StringComparison.Ordinal); + } + + remainder = remainder + .Replace("+", string.Empty, StringComparison.Ordinal) + .Replace("-", string.Empty, StringComparison.Ordinal) + .Replace("–", string.Empty, StringComparison.Ordinal) + .Replace("(", string.Empty, StringComparison.Ordinal) + .Replace(")", string.Empty, StringComparison.Ordinal) + .Replace("/", string.Empty, StringComparison.Ordinal); + + if (string.IsNullOrWhiteSpace(remainder)) + { + return true; + } + } + + return value.StartsWith("+", StringComparison.Ordinal) || + value.StartsWith("\u2211", StringComparison.Ordinal) || + value.StartsWith("\u220F", StringComparison.Ordinal) || + value.StartsWith("\u03C0", StringComparison.Ordinal) || + value.StartsWith("\u222B", StringComparison.Ordinal) || + StandaloneModifierAffixLineRegex.IsMatch(value) || + NumericAffixLineRegex.IsMatch(value) || + value.Contains(" - ", StringComparison.Ordinal) || + value.Contains(" – ", StringComparison.Ordinal); + } + + internal static int CountLineTypeSegments(IReadOnlyList lines, ISet affixLegendSymbols) + { + var segmentCount = 0; + bool? previousIsAffix = null; + + foreach (var line in lines) + { + var currentIsAffix = IsAffixLikeLine(line, affixLegendSymbols); + if (previousIsAffix == currentIsAffix) + { + continue; + } + + segmentCount++; + previousIsAffix = currentIsAffix; + } + + return segmentCount; + } + + internal static string CollapseWhitespace(string value) => + Regex.Replace(value.Trim(), @"\s+", " "); + + internal static string NormalizeText(string value) => + value + .Replace('\u00a0', ' ') + .Replace('\r', ' ') + .Replace('\n', ' ') + .Replace('’', '\'') + .Trim(); + + internal static HashSet DetectAffixLegendSymbols(IReadOnlyList fragments, int keyTop) + { + if (keyTop == int.MaxValue) + { + return []; + } + + var footerLines = GroupByTop(fragments + .Where(item => item.Top >= keyTop - TopGroupingTolerance) + .OrderBy(item => item.Top) + .ThenBy(item => item.Left) + .ToList()) + .Select(line => CollapseWhitespace(string.Join(' ', line.OrderBy(item => item.Left).Select(item => item.Text)))) + .ToList(); + + var symbols = new HashSet(StringComparer.Ordinal); + + foreach (var footerLine in footerLines) + { + AddLegendMatch(symbols, footerLine, @"must parry\s*=\s*(\S)"); + AddLegendMatch(symbols, footerLine, @"no parry\s*=\s*(\S)"); + AddLegendMatch(symbols, footerLine, @"stun(?:ned)?\s*=\s*(\S)"); + AddLegendMatch(symbols, footerLine, @"bleed\s*=\s*(\S)"); + AddLegendMatch(symbols, footerLine, @"powerpoint modification.*=\s*(\S)"); + } + + return symbols; + } + + internal static List SplitBoundaryCrossingAffixFragments( + IReadOnlyList bodyFragments, + IReadOnlyList<(string Key, double CenterX)> columnCenters, + ISet affixLegendSymbols) + { + var splitFragments = new List(bodyFragments.Count); + + foreach (var fragment in bodyFragments) + { + splitFragments.AddRange(SplitBoundaryCrossingAffixFragment(fragment, columnCenters, affixLegendSymbols)); + } + + return splitFragments; + } + + internal static List<(int Top, bool IsAffixLike)> BuildBodyLines( + IReadOnlyList bodyFragments, + IReadOnlyList<(string Key, double CenterX)> columnCenters, + ISet affixLegendSymbols) + { + var bodyLines = new List<(int Top, bool IsAffixLike)>(); + + foreach (var lineFragments in GroupByTop(bodyFragments.OrderBy(item => item.Top).ThenBy(item => item.Left).ToList())) + { + var columnTexts = lineFragments + .GroupBy(item => ResolveColumn(item.CenterX, columnCenters), StringComparer.OrdinalIgnoreCase) + .Select(group => CollapseWhitespace(string.Join(' ', group.OrderBy(item => item.Left).Select(item => item.Text)))) + .Where(item => !string.IsNullOrWhiteSpace(item)) + .ToList(); + + var isAffixLike = columnTexts.Count > 0 && + columnTexts.All(text => IsAffixLikeLine(text, affixLegendSymbols)); + + bodyLines.Add((lineFragments[0].Top, isAffixLike)); + } + + return bodyLines; + } + + internal static bool IsFooterPageNumberFragment(XmlTextFragment fragment, int keyTop) + { + if (keyTop == int.MaxValue) + { + return false; + } + + return fragment.Top >= keyTop - FooterPageNumberExclusionGap && + Regex.IsMatch(fragment.Text, @"^\d{2,3}$"); + } + + internal static IEnumerable> GroupByTop(IReadOnlyList fragments) + { + var groups = new List>(); + + foreach (var fragment in fragments) + { + if (groups.Count == 0 || Math.Abs(groups[^1][0].Top - fragment.Top) > TopGroupingTolerance) + { + groups.Add([fragment]); + continue; + } + + groups[^1].Add(fragment); + } + + return groups; + } + + private static bool LooksLikeSplitRollBandStart(string value) => + Regex.IsMatch(value.Trim(), @"^\d{2,3}\s*-$"); + + private static bool TryMergeSplitRollBand(IReadOnlyList candidates, int index, out XmlTextFragment mergedCandidate) + { + var current = candidates[index]; + if (!LooksLikeSplitRollBandStart(current.Text) || index + 1 >= candidates.Count) + { + mergedCandidate = null!; + return false; + } + + var next = candidates[index + 1]; + if (current.PageNumber != next.PageNumber || + !Regex.IsMatch(next.Text.Trim(), @"^\d{2,3}$") || + next.Top <= current.Top || + next.Top - current.Top > RowLabelDuplicateTolerance + 5 || + Math.Abs(next.Left - current.Left) > 20) + { + mergedCandidate = null!; + return false; + } + + var startDigits = Regex.Match(current.Text, @"\d{2,3}").Value; + var mergedLabel = $"{startDigits}-{next.Text.Trim()}"; + var right = Math.Max(current.Left + current.Width, next.Left + next.Width); + + mergedCandidate = new XmlTextFragment( + current.PageNumber, + current.Top, + Math.Min(current.Left, next.Left), + right - Math.Min(current.Left, next.Left), + Math.Max(current.Height, next.Height), + mergedLabel); + return true; + } + + private static IReadOnlyList SplitBoundaryCrossingAffixFragment( + XmlTextFragment fragment, + IReadOnlyList<(string Key, double CenterX)> columnCenters, + ISet affixLegendSymbols) + { + if (!LooksLikeBoundaryCrossingAffixFragment(fragment, columnCenters, affixLegendSymbols)) + { + return [fragment]; + } + + var matches = MultiFragmentSplitRegex.Matches(fragment.Text); + if (matches.Count < 2) + { + return [fragment]; + } + + var characterWidth = fragment.Width / (double)Math.Max(fragment.Text.Length, 1); + var splitFragments = new List(matches.Count); + + foreach (Match match in matches) + { + var segmentText = CollapseWhitespace(match.Value); + if (segmentText.Length == 0) + { + continue; + } + + var segmentLeft = fragment.Left + (int)Math.Round(characterWidth * match.Index); + var segmentWidth = Math.Max(1, (int)Math.Round(characterWidth * match.Length)); + + splitFragments.Add(new XmlTextFragment( + fragment.PageNumber, + fragment.Top, + segmentLeft, + segmentWidth, + fragment.Height, + segmentText)); + } + + if (splitFragments.Count < 2) + { + return [fragment]; + } + + var originalColumn = ResolveColumn(fragment.CenterX, columnCenters); + var distinctColumns = splitFragments + .Select(item => ResolveColumn(item.CenterX, columnCenters)) + .Distinct(StringComparer.OrdinalIgnoreCase) + .ToList(); + + return distinctColumns.Count > 1 || distinctColumns.Any(item => !string.Equals(item, originalColumn, StringComparison.OrdinalIgnoreCase)) + ? splitFragments + : [fragment]; + } + + private static bool LooksLikeBoundaryCrossingAffixFragment( + XmlTextFragment fragment, + IReadOnlyList<(string Key, double CenterX)> columnCenters, + ISet affixLegendSymbols) + { + if (!IsAffixLikeLine(fragment.Text, affixLegendSymbols) || + !fragment.Text.Contains(" ", StringComparison.Ordinal)) + { + return false; + } + + var fragmentRight = fragment.Left + fragment.Width; + + for (var index = 0; index < columnCenters.Count - 1; index++) + { + var boundary = (columnCenters[index].CenterX + columnCenters[index + 1].CenterX) / 2.0; + if (fragment.Left < boundary && fragmentRight > boundary) + { + return true; + } + } + + return false; + } + + private static void AddLegendMatch(HashSet symbols, string value, string pattern) + { + foreach (Match match in Regex.Matches(value, pattern, RegexOptions.IgnoreCase)) + { + if (match.Groups.Count > 1) + { + symbols.Add(match.Groups[1].Value); + } + } + } +} diff --git a/src/RolemasterDb.ImportTool/Parsing/GroupedVariantCriticalTableParser.cs b/src/RolemasterDb.ImportTool/Parsing/GroupedVariantCriticalTableParser.cs new file mode 100644 index 0000000..ed6c3e4 --- /dev/null +++ b/src/RolemasterDb.ImportTool/Parsing/GroupedVariantCriticalTableParser.cs @@ -0,0 +1,306 @@ +namespace RolemasterDb.ImportTool.Parsing; + +public sealed class GroupedVariantCriticalTableParser +{ + private static readonly ParsedCriticalGroup[] ExpectedGroups = + [ + new("large", "Large Creatures", 1), + new("super_large", "Super Large Creatures", 2) + ]; + + private static readonly ParsedCriticalColumn[] ExpectedColumns = + [ + new("NORMAL", "Normal", "variant", 1), + new("SLAYING", "Slaying", "variant", 2) + ]; + + public CriticalTableParseResult Parse(CriticalImportManifestEntry entry, string xmlContent) + { + var fragments = CriticalTableParserSupport.LoadFragments(xmlContent); + var groupHeaders = FindGroupHeaders(fragments); + var columnHeaders = FindColumnHeaders(fragments); + var validationErrors = new List(); + var validationWarnings = new List(); + + var combinedColumnAnchors = columnHeaders + .OrderBy(item => item.Left) + .Select((item, index) => + { + var group = ExpectedGroups[index / ExpectedColumns.Length]; + var column = ExpectedColumns[index % ExpectedColumns.Length]; + return (group.GroupKey, column.ColumnKey, CompositeKey: $"{group.GroupKey}:{column.ColumnKey}", item.CenterX); + }) + .ToList(); + + var bodyStartTop = Math.Max( + groupHeaders.Max(item => item.Top), + columnHeaders.Max(item => item.Top)) + + CriticalTableParserSupport.HeaderToBodyMinimumGap; + var keyTop = fragments + .Where(item => + string.Equals(item.Text, "Key:", StringComparison.OrdinalIgnoreCase) || + item.Text.Contains("must parry", StringComparison.OrdinalIgnoreCase) || + item.Text.Contains("attacker gets", StringComparison.OrdinalIgnoreCase)) + .Select(item => (int?)item.Top) + .Min() ?? int.MaxValue; + var affixLegendSymbols = CriticalTableParserSupport.DetectAffixLegendSymbols(fragments, keyTop); + var leftCutoff = columnHeaders.Min(item => item.Left) - 10; + var rowLabelFragments = CriticalTableParserSupport.FindRowLabelFragments( + fragments, + leftCutoff, + bodyStartTop, + keyTop); + + var rowAnchors = rowLabelFragments + .OrderBy(item => item.Top) + .Select((item, index) => new RowAnchor(CriticalTableParserSupport.NormalizeRollBandLabel(item.Text), item.Top, index + 1)) + .ToList(); + + if (rowAnchors.Count == 0) + { + validationErrors.Add("No roll-band labels were found in the XML artifact."); + } + + var columnCenters = combinedColumnAnchors + .Select(item => (item.CompositeKey, item.CenterX)) + .ToList(); + + var bodyFragments = fragments + .Where(item => + item.Top >= bodyStartTop && + item.Top < keyTop - CriticalTableParserSupport.TopGroupingTolerance && + !CriticalTableParserSupport.IsFooterPageNumberFragment(item, keyTop) && + !CriticalTableParserSupport.IsPotentialRowLabelFragment(item, leftCutoff) && + !rowAnchors.Any(anchor => anchor.Top == item.Top && string.Equals(anchor.Label, CriticalTableParserSupport.NormalizeRollBandLabel(item.Text), StringComparison.OrdinalIgnoreCase)) && + !groupHeaders.Contains(item) && + !columnHeaders.Contains(item)) + .ToList(); + bodyFragments = CriticalTableParserSupport.SplitBoundaryCrossingAffixFragments(bodyFragments, columnCenters, affixLegendSymbols); + var bodyLines = CriticalTableParserSupport.BuildBodyLines(bodyFragments, columnCenters, affixLegendSymbols); + + var parsedRollBands = rowAnchors + .Select(anchor => CriticalTableParserSupport.CreateRollBand(anchor.Label, anchor.SortOrder)) + .ToList(); + + var cellEntries = new List(); + + for (var rowIndex = 0; rowIndex < rowAnchors.Count; rowIndex++) + { + var rowStart = rowIndex == 0 + ? bodyStartTop + : ResolveRowBoundaryTop(rowAnchors[rowIndex - 1], rowAnchors[rowIndex], bodyLines); + + var rowEnd = rowIndex == rowAnchors.Count - 1 + ? keyTop - 1 + : ResolveRowBoundaryTop(rowAnchors[rowIndex], rowAnchors[rowIndex + 1], bodyLines); + + var rowFragments = bodyFragments + .Where(item => item.Top >= rowStart && item.Top < rowEnd) + .ToList(); + + foreach (var anchor in combinedColumnAnchors) + { + var cellFragments = rowFragments + .Where(item => CriticalTableParserSupport.ResolveColumn(item.CenterX, columnCenters) == anchor.CompositeKey) + .OrderBy(item => item.Top) + .ThenBy(item => item.Left) + .ToList(); + + if (cellFragments.Count == 0) + { + validationErrors.Add($"Missing content for roll band '{rowAnchors[rowIndex].Label}', group '{anchor.GroupKey}', column '{anchor.ColumnKey}'."); + continue; + } + + cellEntries.Add(new CellEntry( + anchor.GroupKey, + rowAnchors[rowIndex].Label, + rowIndex, + anchor.ColumnKey, + CriticalTableParserSupport.BuildLines(cellFragments).ToList())); + } + } + + RepairLeadingAffixLeakage(cellEntries, affixLegendSymbols); + + var parsedCells = new List(); + var parsedResults = new List(); + + foreach (var cellEntry in cellEntries + .OrderBy(item => item.RowIndex) + .ThenBy(item => item.GroupKey, StringComparer.Ordinal) + .ThenBy(item => item.ColumnKey, StringComparer.Ordinal)) + { + var segmentCount = CriticalTableParserSupport.CountLineTypeSegments(cellEntry.Lines, affixLegendSymbols); + if (segmentCount > 2) + { + validationErrors.Add($"Cell '{cellEntry.RollBandLabel}/{cellEntry.GroupKey}/{cellEntry.ColumnKey}' interleaves prose and affix lines."); + } + + var rawAffixLines = cellEntry.Lines.Where(line => CriticalTableParserSupport.IsAffixLikeLine(line, affixLegendSymbols)).ToList(); + var descriptionLines = cellEntry.Lines.Where(line => !CriticalTableParserSupport.IsAffixLikeLine(line, affixLegendSymbols)).ToList(); + var rawCellText = string.Join(Environment.NewLine, cellEntry.Lines); + var descriptionText = CriticalTableParserSupport.CollapseWhitespace(string.Join(' ', descriptionLines)); + var rawAffixText = rawAffixLines.Count == 0 ? null : string.Join(Environment.NewLine, rawAffixLines); + + parsedCells.Add(new ParsedCriticalCellArtifact( + cellEntry.GroupKey, + cellEntry.RollBandLabel, + cellEntry.ColumnKey, + cellEntry.Lines, + rawCellText, + descriptionText, + rawAffixText)); + + parsedResults.Add(new ParsedCriticalResult( + cellEntry.GroupKey, + cellEntry.ColumnKey, + cellEntry.RollBandLabel, + rawCellText, + descriptionText, + rawAffixText)); + } + + var expectedCellCount = rowAnchors.Count * ExpectedGroups.Length * ExpectedColumns.Length; + if (parsedCells.Count != expectedCellCount) + { + validationErrors.Add($"Expected {expectedCellCount} parsed cells but produced {parsedCells.Count}."); + } + + var validationReport = new ImportValidationReport( + validationErrors.Count == 0, + validationErrors, + validationWarnings, + rowAnchors.Count, + parsedCells.Count); + + var table = new ParsedCriticalTable( + entry.Slug, + entry.DisplayName, + entry.Family, + Path.GetFileName(entry.PdfPath), + "Imported from PDF XML extraction.", + ExpectedGroups, + ExpectedColumns, + parsedRollBands, + parsedResults); + + return new CriticalTableParseResult(table, fragments, parsedCells, validationReport); + } + + private static List FindGroupHeaders(IReadOnlyList fragments) + { + var expectedLabels = ExpectedGroups.Select(item => item.Label).ToList(); + var headerCandidates = fragments + .Where(item => expectedLabels.Contains(item.Text.Trim(), StringComparer.OrdinalIgnoreCase)) + .OrderBy(item => item.Top) + .ThenBy(item => item.Left) + .ToList(); + + foreach (var group in CriticalTableParserSupport.GroupByTop(headerCandidates)) + { + var ordered = group.OrderBy(item => item.Left).ToList(); + var labels = ordered.Select(item => item.Text.Trim()).ToList(); + if (labels.SequenceEqual(expectedLabels, StringComparer.OrdinalIgnoreCase)) + { + return ordered; + } + } + + throw new InvalidOperationException("Could not find the grouped-variant section headers in the XML artifact."); + } + + private static List FindColumnHeaders(IReadOnlyList fragments) + { + var expectedLabels = new[] { "normal", "slaying", "normal", "slaying" }; + var headerCandidates = fragments + .Where(item => + { + var normalized = item.Text.Trim().ToLowerInvariant(); + return normalized is "normal" or "slaying"; + }) + .OrderBy(item => item.Top) + .ThenBy(item => item.Left) + .ToList(); + + foreach (var group in CriticalTableParserSupport.GroupByTop(headerCandidates)) + { + var ordered = group.OrderBy(item => item.Left).ToList(); + var labels = ordered.Select(item => item.Text.Trim().ToLowerInvariant()).ToList(); + if (labels.SequenceEqual(expectedLabels)) + { + return ordered; + } + } + + throw new InvalidOperationException("Could not find the grouped-variant column header row in the XML artifact."); + } + + private static void RepairLeadingAffixLeakage(List cellEntries, ISet affixLegendSymbols) + { + var maxRowIndex = cellEntries.Count == 0 ? -1 : cellEntries.Max(item => item.RowIndex); + var axes = cellEntries + .Select(item => (item.GroupKey, item.ColumnKey)) + .Distinct() + .ToList(); + + for (var rowIndex = 0; rowIndex < maxRowIndex; rowIndex++) + { + foreach (var (groupKey, columnKey) in axes) + { + var current = cellEntries.SingleOrDefault(item => item.RowIndex == rowIndex && item.GroupKey == groupKey && item.ColumnKey == columnKey); + var next = cellEntries.SingleOrDefault(item => item.RowIndex == rowIndex + 1 && item.GroupKey == groupKey && item.ColumnKey == columnKey); + if (current is null || next is null) + { + continue; + } + + var leadingAffixCount = 0; + while (leadingAffixCount < next.Lines.Count && CriticalTableParserSupport.IsAffixLikeLine(next.Lines[leadingAffixCount], affixLegendSymbols)) + { + leadingAffixCount++; + } + + if (leadingAffixCount == 0 || leadingAffixCount == next.Lines.Count) + { + continue; + } + + current.Lines.AddRange(next.Lines.Take(leadingAffixCount)); + next.Lines.RemoveRange(0, leadingAffixCount); + } + } + } + + private static int ResolveRowBoundaryTop( + RowAnchor current, + RowAnchor next, + IReadOnlyList<(int Top, bool IsAffixLike)> bodyLines) + { + var linesBetweenLabels = bodyLines + .Where(item => item.Top >= current.Top && item.Top < next.Top) + .OrderBy(item => item.Top) + .ToList(); + + for (var index = linesBetweenLabels.Count - 2; index >= 0; index--) + { + if (linesBetweenLabels[index].IsAffixLike && !linesBetweenLabels[index + 1].IsAffixLike) + { + return (int)Math.Floor((linesBetweenLabels[index].Top + linesBetweenLabels[index + 1].Top) / 2.0) + 1; + } + } + + return (int)Math.Floor((current.Top + next.Top) / 2.0) + 1; + } + + private sealed record RowAnchor(string Label, int Top, int SortOrder); + + private sealed class CellEntry(string groupKey, string rollBandLabel, int rowIndex, string columnKey, List lines) + { + public string GroupKey { get; } = groupKey; + public string RollBandLabel { get; } = rollBandLabel; + public int RowIndex { get; } = rowIndex; + public string ColumnKey { get; } = columnKey; + public List Lines { get; } = lines; + } +} diff --git a/src/RolemasterDb.ImportTool/Parsing/ParsedCriticalCellArtifact.cs b/src/RolemasterDb.ImportTool/Parsing/ParsedCriticalCellArtifact.cs index 76475a3..ecfdc19 100644 --- a/src/RolemasterDb.ImportTool/Parsing/ParsedCriticalCellArtifact.cs +++ b/src/RolemasterDb.ImportTool/Parsing/ParsedCriticalCellArtifact.cs @@ -1,6 +1,7 @@ namespace RolemasterDb.ImportTool.Parsing; public sealed class ParsedCriticalCellArtifact( + string? groupKey, string rollBandLabel, string columnKey, IReadOnlyList lines, @@ -8,6 +9,7 @@ public sealed class ParsedCriticalCellArtifact( string descriptionText, string? rawAffixText) { + public string? GroupKey { get; } = groupKey; public string RollBandLabel { get; } = rollBandLabel; public string ColumnKey { get; } = columnKey; public IReadOnlyList Lines { get; } = lines; diff --git a/src/RolemasterDb.ImportTool/Parsing/ParsedCriticalGroup.cs b/src/RolemasterDb.ImportTool/Parsing/ParsedCriticalGroup.cs new file mode 100644 index 0000000..d61bc3e --- /dev/null +++ b/src/RolemasterDb.ImportTool/Parsing/ParsedCriticalGroup.cs @@ -0,0 +1,8 @@ +namespace RolemasterDb.ImportTool.Parsing; + +public sealed class ParsedCriticalGroup(string groupKey, string label, int sortOrder) +{ + public string GroupKey { get; } = groupKey; + public string Label { get; } = label; + public int SortOrder { get; } = sortOrder; +} diff --git a/src/RolemasterDb.ImportTool/Parsing/ParsedCriticalResult.cs b/src/RolemasterDb.ImportTool/Parsing/ParsedCriticalResult.cs index a8dbb09..7d89774 100644 --- a/src/RolemasterDb.ImportTool/Parsing/ParsedCriticalResult.cs +++ b/src/RolemasterDb.ImportTool/Parsing/ParsedCriticalResult.cs @@ -1,12 +1,14 @@ namespace RolemasterDb.ImportTool.Parsing; public sealed class ParsedCriticalResult( + string? groupKey, string columnKey, string rollBandLabel, string rawCellText, string descriptionText, string? rawAffixText) { + public string? GroupKey { get; } = groupKey; public string ColumnKey { get; } = columnKey; public string RollBandLabel { get; } = rollBandLabel; public string RawCellText { get; } = rawCellText; diff --git a/src/RolemasterDb.ImportTool/Parsing/ParsedCriticalTable.cs b/src/RolemasterDb.ImportTool/Parsing/ParsedCriticalTable.cs index cf9d7f2..927eaad 100644 --- a/src/RolemasterDb.ImportTool/Parsing/ParsedCriticalTable.cs +++ b/src/RolemasterDb.ImportTool/Parsing/ParsedCriticalTable.cs @@ -6,6 +6,7 @@ public sealed class ParsedCriticalTable( string family, string sourceDocument, string? notes, + IReadOnlyList groups, IReadOnlyList columns, IReadOnlyList rollBands, IReadOnlyList results) @@ -15,6 +16,7 @@ public sealed class ParsedCriticalTable( public string Family { get; } = family; public string SourceDocument { get; } = sourceDocument; public string? Notes { get; } = notes; + public IReadOnlyList Groups { get; } = groups; public IReadOnlyList Columns { get; } = columns; public IReadOnlyList RollBands { get; } = rollBands; public IReadOnlyList Results { get; } = results; diff --git a/src/RolemasterDb.ImportTool/Parsing/StandardCriticalTableParser.cs b/src/RolemasterDb.ImportTool/Parsing/StandardCriticalTableParser.cs index 15db26e..c250495 100644 --- a/src/RolemasterDb.ImportTool/Parsing/StandardCriticalTableParser.cs +++ b/src/RolemasterDb.ImportTool/Parsing/StandardCriticalTableParser.cs @@ -1,33 +1,20 @@ -using System.Text.RegularExpressions; -using System.Xml; -using System.Xml.Linq; - namespace RolemasterDb.ImportTool.Parsing; public sealed class StandardCriticalTableParser { - private const int HeaderToBodyMinimumGap = 20; - private const int FooterLabelExclusionGap = 15; - private const int FooterPageNumberExclusionGap = 80; - private const int RowLabelDuplicateTolerance = 15; - private const int TopGroupingTolerance = 2; - private static readonly Regex MultiFragmentSplitRegex = new(@"\S(?:.*?\S)?(?=(?:\s{2,}|$))", RegexOptions.Compiled); - private static readonly Regex NumericAffixLineRegex = new(@"^\d+(?:H|∑|∏|π|∫|\s*[–-])", RegexOptions.Compiled); - private static readonly Regex StandaloneModifierAffixLineRegex = new(@"^(?:\d+)?\((?:\+|-)\d+\)$", RegexOptions.Compiled); - - public StandardCriticalTableParseResult Parse(CriticalImportManifestEntry entry, string xmlContent) + public CriticalTableParseResult Parse(CriticalImportManifestEntry entry, string xmlContent) { - var fragments = LoadFragments(xmlContent); + var fragments = CriticalTableParserSupport.LoadFragments(xmlContent); var headerFragments = FindHeaderFragments(fragments); var validationErrors = new List(); var validationWarnings = new List(); var columnCenters = headerFragments .OrderBy(item => item.Left) - .Select(item => new ColumnAnchor(item.Text.ToUpperInvariant(), item.CenterX)) + .Select(item => (Key: item.Text.ToUpperInvariant(), CenterX: item.CenterX)) .ToList(); - var bodyStartTop = headerFragments.Max(item => item.Top) + HeaderToBodyMinimumGap; + var bodyStartTop = headerFragments.Max(item => item.Top) + CriticalTableParserSupport.HeaderToBodyMinimumGap; var keyTop = fragments .Where(item => string.Equals(item.Text, "Key:", StringComparison.OrdinalIgnoreCase) || @@ -35,12 +22,17 @@ public sealed class StandardCriticalTableParser item.Text.Contains("attacker gets", StringComparison.OrdinalIgnoreCase)) .Select(item => (int?)item.Top) .Min() ?? int.MaxValue; - var affixLegendSymbols = DetectAffixLegendSymbols(fragments, keyTop); - var rowLabelFragments = FindRowLabelFragments(fragments, headerFragments, keyTop); + var affixLegendSymbols = CriticalTableParserSupport.DetectAffixLegendSymbols(fragments, keyTop); + var leftCutoff = headerFragments.Min(item => item.Left) - 10; + var rowLabelFragments = CriticalTableParserSupport.FindRowLabelFragments( + fragments, + leftCutoff, + bodyStartTop, + keyTop); var rowAnchors = rowLabelFragments .OrderBy(item => item.Top) - .Select((item, index) => new RowAnchor(item.Text, item.Top, index + 1)) + .Select((item, index) => new RowAnchor(CriticalTableParserSupport.NormalizeRollBandLabel(item.Text), item.Top, index + 1)) .ToList(); if (rowAnchors.Count == 0) @@ -51,16 +43,17 @@ public sealed class StandardCriticalTableParser var bodyFragments = fragments .Where(item => item.Top >= bodyStartTop && - item.Top < keyTop - TopGroupingTolerance && - !IsFooterPageNumberFragment(item, keyTop) && - !rowAnchors.Any(anchor => anchor.Top == item.Top && string.Equals(anchor.Label, item.Text, StringComparison.OrdinalIgnoreCase)) && + item.Top < keyTop - CriticalTableParserSupport.TopGroupingTolerance && + !CriticalTableParserSupport.IsFooterPageNumberFragment(item, keyTop) && + !CriticalTableParserSupport.IsPotentialRowLabelFragment(item, leftCutoff) && + !rowAnchors.Any(anchor => anchor.Top == item.Top && string.Equals(anchor.Label, CriticalTableParserSupport.NormalizeRollBandLabel(item.Text), StringComparison.OrdinalIgnoreCase)) && !headerFragments.Contains(item)) .ToList(); - bodyFragments = SplitBoundaryCrossingAffixFragments(bodyFragments, columnCenters, affixLegendSymbols); - var bodyLines = BuildBodyLines(bodyFragments, columnCenters, affixLegendSymbols); + bodyFragments = CriticalTableParserSupport.SplitBoundaryCrossingAffixFragments(bodyFragments, columnCenters, affixLegendSymbols); + var bodyLines = CriticalTableParserSupport.BuildBodyLines(bodyFragments, columnCenters, affixLegendSymbols); var parsedRollBands = rowAnchors - .Select(anchor => CreateRollBand(anchor.Label, anchor.SortOrder)) + .Select(anchor => CriticalTableParserSupport.CreateRollBand(anchor.Label, anchor.SortOrder)) .ToList(); var cellEntries = new List(); @@ -82,7 +75,7 @@ public sealed class StandardCriticalTableParser foreach (var columnAnchor in columnCenters) { var cellFragments = rowFragments - .Where(item => ResolveColumn(item.CenterX, columnCenters) == columnAnchor.Key) + .Where(item => CriticalTableParserSupport.ResolveColumn(item.CenterX, columnCenters) == columnAnchor.Key) .OrderBy(item => item.Top) .ThenBy(item => item.Left) .ToList(); @@ -97,7 +90,7 @@ public sealed class StandardCriticalTableParser rowAnchors[rowIndex].Label, rowIndex, columnAnchor.Key, - BuildLines(cellFragments).ToList())); + CriticalTableParserSupport.BuildLines(cellFragments).ToList())); } } @@ -108,7 +101,7 @@ public sealed class StandardCriticalTableParser foreach (var cellEntry in cellEntries.OrderBy(item => item.RowIndex).ThenBy(item => item.ColumnKey)) { - var segmentCount = CountLineTypeSegments(cellEntry.Lines, affixLegendSymbols); + var segmentCount = CriticalTableParserSupport.CountLineTypeSegments(cellEntry.Lines, affixLegendSymbols); if (segmentCount > 2) { @@ -116,13 +109,14 @@ public sealed class StandardCriticalTableParser $"Cell '{cellEntry.RollBandLabel}/{cellEntry.ColumnKey}' interleaves prose and affix lines."); } - var rawAffixLines = cellEntry.Lines.Where(line => IsAffixLikeLine(line, affixLegendSymbols)).ToList(); - var descriptionLines = cellEntry.Lines.Where(line => !IsAffixLikeLine(line, affixLegendSymbols)).ToList(); + var rawAffixLines = cellEntry.Lines.Where(line => CriticalTableParserSupport.IsAffixLikeLine(line, affixLegendSymbols)).ToList(); + var descriptionLines = cellEntry.Lines.Where(line => !CriticalTableParserSupport.IsAffixLikeLine(line, affixLegendSymbols)).ToList(); var rawCellText = string.Join(Environment.NewLine, cellEntry.Lines); - var descriptionText = CollapseWhitespace(string.Join(' ', descriptionLines)); + var descriptionText = CriticalTableParserSupport.CollapseWhitespace(string.Join(' ', descriptionLines)); var rawAffixText = rawAffixLines.Count == 0 ? null : string.Join(Environment.NewLine, rawAffixLines); parsedCells.Add(new ParsedCriticalCellArtifact( + null, cellEntry.RollBandLabel, cellEntry.ColumnKey, cellEntry.Lines, @@ -131,6 +125,7 @@ public sealed class StandardCriticalTableParser rawAffixText)); parsedResults.Add(new ParsedCriticalResult( + null, cellEntry.ColumnKey, cellEntry.RollBandLabel, rawCellText, @@ -162,40 +157,12 @@ public sealed class StandardCriticalTableParser entry.Family, Path.GetFileName(entry.PdfPath), "Imported from PDF XML extraction.", + [], columnCenters.Select((item, index) => new ParsedCriticalColumn(item.Key, item.Key, "severity", index + 1)).ToList(), parsedRollBands, parsedResults); - return new StandardCriticalTableParseResult(table, fragments, parsedCells, validationReport); - } - - private static List LoadFragments(string xmlContent) - { - using var stringReader = new StringReader(xmlContent); - using var xmlReader = XmlReader.Create( - stringReader, - new XmlReaderSettings - { - DtdProcessing = DtdProcessing.Ignore - }); - - var document = XDocument.Load(xmlReader); - - return document.Descendants("page") - .SelectMany(page => - { - var pageNumber = int.Parse(page.Attribute("number")?.Value ?? "1"); - return page.Elements("text") - .Select(item => new XmlTextFragment( - pageNumber, - int.Parse(item.Attribute("top")?.Value ?? throw new InvalidOperationException("Missing text top attribute.")), - int.Parse(item.Attribute("left")?.Value ?? throw new InvalidOperationException("Missing text left attribute.")), - int.Parse(item.Attribute("width")?.Value ?? throw new InvalidOperationException("Missing text width attribute.")), - int.Parse(item.Attribute("height")?.Value ?? throw new InvalidOperationException("Missing text height attribute.")), - NormalizeText(string.Concat(item.DescendantNodes().OfType().Select(node => node.Value))))) - .Where(item => !string.IsNullOrWhiteSpace(item.Text)); - }) - .ToList(); + return new CriticalTableParseResult(table, fragments, parsedCells, validationReport); } private static List FindHeaderFragments(IReadOnlyList fragments) @@ -206,7 +173,7 @@ public sealed class StandardCriticalTableParser .ThenBy(item => item.Left) .ToList(); - foreach (var group in GroupByTop(headerCandidates)) + foreach (var group in CriticalTableParserSupport.GroupByTop(headerCandidates)) { var ordered = group.OrderBy(item => item.Left).ToList(); var labels = ordered.Select(item => item.Text.ToUpperInvariant()).ToList(); @@ -219,156 +186,6 @@ public sealed class StandardCriticalTableParser throw new InvalidOperationException("Could not find the standard-table A-E header row in the XML artifact."); } - private static List FindRowLabelFragments( - IReadOnlyList fragments, - IReadOnlyList headerFragments, - int keyTop) - { - var leftCutoff = headerFragments.Min(item => item.Left) - 10; - var bodyStartTop = headerFragments.Max(item => item.Top) + HeaderToBodyMinimumGap; - - var candidates = fragments - .Where(item => - item.Left < leftCutoff && - item.Top >= bodyStartTop && - item.Top < keyTop - FooterLabelExclusionGap && - IsRollBandLabel(item.Text)) - .OrderBy(item => item.Top) - .ToList(); - - var deduped = new List(); - - foreach (var candidate in candidates) - { - var previous = deduped.LastOrDefault(); - if (previous is not null && - string.Equals(previous.Text, candidate.Text, StringComparison.OrdinalIgnoreCase) && - Math.Abs(previous.Top - candidate.Top) <= RowLabelDuplicateTolerance) - { - continue; - } - - deduped.Add(candidate); - } - - return deduped; - } - - private static bool IsRollBandLabel(string value) => - Regex.IsMatch(value.Trim(), @"^\d{2,3}(?:-\d{2,3})?$|^\d{2,3}\+$"); - - private static ParsedCriticalRollBand CreateRollBand(string label, int sortOrder) - { - if (label.EndsWith('+')) - { - return new ParsedCriticalRollBand(label, int.Parse(label[..^1]), null, sortOrder); - } - - var parts = label.Split('-', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); - return parts.Length == 1 - ? new ParsedCriticalRollBand(label, int.Parse(parts[0]), int.Parse(parts[0]), sortOrder) - : new ParsedCriticalRollBand(label, int.Parse(parts[0]), int.Parse(parts[1]), sortOrder); - } - - private static string ResolveColumn(double centerX, IReadOnlyList columns) - { - for (var index = 0; index < columns.Count - 1; index++) - { - var boundary = (columns[index].CenterX + columns[index + 1].CenterX) / 2.0; - if (centerX < boundary) - { - return columns[index].Key; - } - } - - return columns[^1].Key; - } - - private static IReadOnlyList BuildLines(IReadOnlyList fragments) - { - var lines = new List>(); - - foreach (var fragment in fragments.OrderBy(item => item.Top).ThenBy(item => item.Left)) - { - if (lines.Count == 0 || Math.Abs(lines[^1][0].Top - fragment.Top) > TopGroupingTolerance) - { - lines.Add([fragment]); - continue; - } - - lines[^1].Add(fragment); - } - - return lines - .Select(line => CollapseWhitespace(string.Join(' ', line.OrderBy(item => item.Left).Select(item => item.Text)))) - .Where(item => !string.IsNullOrWhiteSpace(item)) - .ToList(); - } - - private static bool IsAffixLikeLine(string line, ISet affixLegendSymbols) - { - var value = line.Trim(); - if (value.Length == 0) - { - return false; - } - - if (value == "-" || value == "\u2013" || value == "\u2014") - { - return true; - } - - if (value.StartsWith("with ", StringComparison.OrdinalIgnoreCase) || - value.StartsWith("w/o ", StringComparison.OrdinalIgnoreCase) || - value.StartsWith("without ", StringComparison.OrdinalIgnoreCase) || - value.StartsWith("if ", StringComparison.OrdinalIgnoreCase) || - value.StartsWith("while ", StringComparison.OrdinalIgnoreCase) || - value.StartsWith("until ", StringComparison.OrdinalIgnoreCase) || - value.StartsWith("unless ", StringComparison.OrdinalIgnoreCase)) - { - return value.Contains(':', StringComparison.Ordinal); - } - - if (affixLegendSymbols.Count > 0 && - affixLegendSymbols.Any(symbol => value.Contains(symbol, StringComparison.Ordinal))) - { - if (value.Any(char.IsDigit)) - { - return true; - } - - var remainder = value; - foreach (var symbol in affixLegendSymbols.OrderByDescending(item => item.Length)) - { - remainder = remainder.Replace(symbol, string.Empty, StringComparison.Ordinal); - } - - remainder = remainder - .Replace("+", string.Empty, StringComparison.Ordinal) - .Replace("-", string.Empty, StringComparison.Ordinal) - .Replace("(", string.Empty, StringComparison.Ordinal) - .Replace(")", string.Empty, StringComparison.Ordinal) - .Replace("/", string.Empty, StringComparison.Ordinal); - - if (string.IsNullOrWhiteSpace(remainder)) - { - return true; - } - } - - return value.StartsWith("+", StringComparison.Ordinal) || - value.StartsWith("\u2211", StringComparison.Ordinal) || - value.StartsWith("\u220F", StringComparison.Ordinal) || - value.StartsWith("\u03C0", StringComparison.Ordinal) || - value.StartsWith("\u222B", StringComparison.Ordinal) || - StandaloneModifierAffixLineRegex.IsMatch(value) || - NumericAffixLineRegex.IsMatch(value) || - value.Contains(" - ", StringComparison.Ordinal); - } - - private static void RepairLeadingAffixLeakage(List cellEntries) - => RepairLeadingAffixLeakage(cellEntries, new HashSet(StringComparer.Ordinal)); - private static void RepairLeadingAffixLeakage(List cellEntries, ISet affixLegendSymbols) { var maxRowIndex = cellEntries.Count == 0 ? -1 : cellEntries.Max(item => item.RowIndex); @@ -380,14 +197,13 @@ public sealed class StandardCriticalTableParser { var current = cellEntries.SingleOrDefault(item => item.RowIndex == rowIndex && item.ColumnKey == columnKey); var next = cellEntries.SingleOrDefault(item => item.RowIndex == rowIndex + 1 && item.ColumnKey == columnKey); - if (current is null || next is null) { continue; } var leadingAffixCount = 0; - while (leadingAffixCount < next.Lines.Count && IsAffixLikeLine(next.Lines[leadingAffixCount], affixLegendSymbols)) + while (leadingAffixCount < next.Lines.Count && CriticalTableParserSupport.IsAffixLikeLine(next.Lines[leadingAffixCount], affixLegendSymbols)) { leadingAffixCount++; } @@ -403,199 +219,10 @@ public sealed class StandardCriticalTableParser } } - private static string CollapseWhitespace(string value) => - Regex.Replace(value.Trim(), @"\s+", " "); - - private static string NormalizeText(string value) => - value - .Replace('\u00a0', ' ') - .Replace('\r', ' ') - .Replace('\n', ' ') - .Trim(); - - private static int CountLineTypeSegments(IReadOnlyList lines, ISet affixLegendSymbols) - { - var segmentCount = 0; - bool? previousIsAffix = null; - - foreach (var line in lines) - { - var currentIsAffix = IsAffixLikeLine(line, affixLegendSymbols); - if (previousIsAffix == currentIsAffix) - { - continue; - } - - segmentCount++; - previousIsAffix = currentIsAffix; - } - - return segmentCount; - } - - private static HashSet DetectAffixLegendSymbols(IReadOnlyList fragments, int keyTop) - { - if (keyTop == int.MaxValue) - { - return []; - } - - var footerLines = GroupByTop(fragments - .Where(item => item.Top >= keyTop - TopGroupingTolerance) - .OrderBy(item => item.Top) - .ThenBy(item => item.Left) - .ToList()) - .Select(line => CollapseWhitespace(string.Join(' ', line.OrderBy(item => item.Left).Select(item => item.Text)))) - .ToList(); - - var symbols = new HashSet(StringComparer.Ordinal); - - foreach (var footerLine in footerLines) - { - AddLegendMatch(symbols, footerLine, @"must parry\s*=\s*(\S)"); - AddLegendMatch(symbols, footerLine, @"no parry\s*=\s*(\S)"); - AddLegendMatch(symbols, footerLine, @"stun(?:ned)?\s*=\s*(\S)"); - AddLegendMatch(symbols, footerLine, @"bleed\s*=\s*(\S)"); - AddLegendMatch(symbols, footerLine, @"powerpoint modification.*=\s*(\S)"); - } - - return symbols; - } - - private static List SplitBoundaryCrossingAffixFragments( - IReadOnlyList bodyFragments, - IReadOnlyList columnCenters, - ISet affixLegendSymbols) - { - var splitFragments = new List(bodyFragments.Count); - - foreach (var fragment in bodyFragments) - { - splitFragments.AddRange(SplitBoundaryCrossingAffixFragment(fragment, columnCenters, affixLegendSymbols)); - } - - return splitFragments; - } - - private static IReadOnlyList SplitBoundaryCrossingAffixFragment( - XmlTextFragment fragment, - IReadOnlyList columnCenters, - ISet affixLegendSymbols) - { - if (!LooksLikeBoundaryCrossingAffixFragment(fragment, columnCenters, affixLegendSymbols)) - { - return [fragment]; - } - - var matches = MultiFragmentSplitRegex.Matches(fragment.Text); - if (matches.Count < 2) - { - return [fragment]; - } - - var characterWidth = fragment.Width / (double)Math.Max(fragment.Text.Length, 1); - var splitFragments = new List(matches.Count); - - foreach (Match match in matches) - { - var segmentText = CollapseWhitespace(match.Value); - if (segmentText.Length == 0) - { - continue; - } - - var segmentLeft = fragment.Left + (int)Math.Round(characterWidth * match.Index); - var segmentWidth = Math.Max(1, (int)Math.Round(characterWidth * match.Length)); - - splitFragments.Add(new XmlTextFragment( - fragment.PageNumber, - fragment.Top, - segmentLeft, - segmentWidth, - fragment.Height, - segmentText)); - } - - if (splitFragments.Count < 2) - { - return [fragment]; - } - - var originalColumn = ResolveColumn(fragment.CenterX, columnCenters); - var distinctColumns = splitFragments - .Select(item => ResolveColumn(item.CenterX, columnCenters)) - .Distinct(StringComparer.OrdinalIgnoreCase) - .ToList(); - - return distinctColumns.Count > 1 || distinctColumns.Any(item => !string.Equals(item, originalColumn, StringComparison.OrdinalIgnoreCase)) - ? splitFragments - : [fragment]; - } - - private static bool LooksLikeBoundaryCrossingAffixFragment( - XmlTextFragment fragment, - IReadOnlyList columnCenters, - ISet affixLegendSymbols) - { - if (!IsAffixLikeLine(fragment.Text, affixLegendSymbols) || - !fragment.Text.Contains(" ", StringComparison.Ordinal)) - { - return false; - } - - var fragmentRight = fragment.Left + fragment.Width; - - for (var index = 0; index < columnCenters.Count - 1; index++) - { - var boundary = (columnCenters[index].CenterX + columnCenters[index + 1].CenterX) / 2.0; - if (fragment.Left < boundary && fragmentRight > boundary) - { - return true; - } - } - - return false; - } - - private static void AddLegendMatch(HashSet symbols, string value, string pattern) - { - foreach (Match match in Regex.Matches(value, pattern, RegexOptions.IgnoreCase)) - { - if (match.Groups.Count > 1) - { - symbols.Add(match.Groups[1].Value); - } - } - } - - private static List BuildBodyLines( - IReadOnlyList bodyFragments, - IReadOnlyList columnCenters, - ISet affixLegendSymbols) - { - var bodyLines = new List(); - - foreach (var lineFragments in GroupByTop(bodyFragments.OrderBy(item => item.Top).ThenBy(item => item.Left).ToList())) - { - var columnTexts = lineFragments - .GroupBy(item => ResolveColumn(item.CenterX, columnCenters), StringComparer.OrdinalIgnoreCase) - .Select(group => CollapseWhitespace(string.Join(' ', group.OrderBy(item => item.Left).Select(item => item.Text)))) - .Where(item => !string.IsNullOrWhiteSpace(item)) - .ToList(); - - var isAffixLike = columnTexts.Count > 0 && - columnTexts.All(text => IsAffixLikeLine(text, affixLegendSymbols)); - - bodyLines.Add(new BodyLine(lineFragments[0].Top, isAffixLike)); - } - - return bodyLines; - } - private static int ResolveRowBoundaryTop( RowAnchor current, RowAnchor next, - IReadOnlyList bodyLines) + IReadOnlyList<(int Top, bool IsAffixLike)> bodyLines) { var linesBetweenLabels = bodyLines .Where(item => item.Top >= current.Top && item.Top < next.Top) @@ -613,41 +240,8 @@ public sealed class StandardCriticalTableParser return (int)Math.Floor((current.Top + next.Top) / 2.0) + 1; } - private static bool IsFooterPageNumberFragment(XmlTextFragment fragment, int keyTop) - { - if (keyTop == int.MaxValue) - { - return false; - } - - return fragment.Top >= keyTop - FooterPageNumberExclusionGap && - Regex.IsMatch(fragment.Text, @"^\d{2,3}$"); - } - - private static IEnumerable> GroupByTop(IReadOnlyList fragments) - { - var groups = new List>(); - - foreach (var fragment in fragments) - { - if (groups.Count == 0 || Math.Abs(groups[^1][0].Top - fragment.Top) > TopGroupingTolerance) - { - groups.Add([fragment]); - continue; - } - - groups[^1].Add(fragment); - } - - return groups; - } - - private sealed record ColumnAnchor(string Key, double CenterX); - private sealed record RowAnchor(string Label, int Top, int SortOrder); - private sealed record BodyLine(int Top, bool IsAffixLike); - private sealed class CellEntry(string rollBandLabel, int rowIndex, string columnKey, List lines) { public string RollBandLabel { get; } = rollBandLabel; diff --git a/src/RolemasterDb.ImportTool/Parsing/VariantColumnCriticalTableParser.cs b/src/RolemasterDb.ImportTool/Parsing/VariantColumnCriticalTableParser.cs new file mode 100644 index 0000000..5e1a716 --- /dev/null +++ b/src/RolemasterDb.ImportTool/Parsing/VariantColumnCriticalTableParser.cs @@ -0,0 +1,276 @@ +namespace RolemasterDb.ImportTool.Parsing; + +public sealed class VariantColumnCriticalTableParser +{ + private static readonly ColumnDefinition[] ExpectedColumns = + [ + new("NORMAL", "Normal"), + new("MAGIC", "Magic"), + new("MITHRIL", "Mithril"), + new("HOLY_ARMS", "Holy Arms"), + new("SLAYING", "Slaying") + ]; + + public CriticalTableParseResult Parse(CriticalImportManifestEntry entry, string xmlContent) + { + var fragments = CriticalTableParserSupport.LoadFragments(xmlContent); + var headerFragments = FindHeaderFragments(fragments); + var validationErrors = new List(); + var validationWarnings = new List(); + + var columnAnchors = headerFragments + .OrderBy(item => item.Left) + .Select(item => + { + var definition = ResolveColumnDefinition(item.Text); + return (definition.Key, definition.Label, item.CenterX); + }) + .ToList(); + + var bodyStartTop = headerFragments.Max(item => item.Top) + CriticalTableParserSupport.HeaderToBodyMinimumGap; + var keyTop = fragments + .Where(item => + string.Equals(item.Text, "Key:", StringComparison.OrdinalIgnoreCase) || + item.Text.Contains("must parry", StringComparison.OrdinalIgnoreCase) || + item.Text.Contains("attacker gets", StringComparison.OrdinalIgnoreCase)) + .Select(item => (int?)item.Top) + .Min() ?? int.MaxValue; + var affixLegendSymbols = CriticalTableParserSupport.DetectAffixLegendSymbols(fragments, keyTop); + var leftCutoff = headerFragments.Min(item => item.Left) - 10; + var rowLabelFragments = CriticalTableParserSupport.FindRowLabelFragments( + fragments, + leftCutoff, + bodyStartTop, + keyTop); + + var rowAnchors = rowLabelFragments + .OrderBy(item => item.Top) + .Select((item, index) => new RowAnchor(CriticalTableParserSupport.NormalizeRollBandLabel(item.Text), item.Top, index + 1)) + .ToList(); + + if (rowAnchors.Count == 0) + { + validationErrors.Add("No roll-band labels were found in the XML artifact."); + } + + var columnCenters = columnAnchors + .Select(item => (item.Key, item.CenterX)) + .ToList(); + + var bodyFragments = fragments + .Where(item => + item.Top >= bodyStartTop && + item.Top < keyTop - CriticalTableParserSupport.TopGroupingTolerance && + !CriticalTableParserSupport.IsFooterPageNumberFragment(item, keyTop) && + !CriticalTableParserSupport.IsPotentialRowLabelFragment(item, leftCutoff) && + !rowAnchors.Any(anchor => anchor.Top == item.Top && string.Equals(anchor.Label, CriticalTableParserSupport.NormalizeRollBandLabel(item.Text), StringComparison.OrdinalIgnoreCase)) && + !headerFragments.Contains(item)) + .ToList(); + bodyFragments = CriticalTableParserSupport.SplitBoundaryCrossingAffixFragments(bodyFragments, columnCenters, affixLegendSymbols); + var bodyLines = CriticalTableParserSupport.BuildBodyLines(bodyFragments, columnCenters, affixLegendSymbols); + + var parsedRollBands = rowAnchors + .Select(anchor => CriticalTableParserSupport.CreateRollBand(anchor.Label, anchor.SortOrder)) + .ToList(); + + var cellEntries = new List(); + + for (var rowIndex = 0; rowIndex < rowAnchors.Count; rowIndex++) + { + var rowStart = rowIndex == 0 + ? bodyStartTop + : ResolveRowBoundaryTop(rowAnchors[rowIndex - 1], rowAnchors[rowIndex], bodyLines); + + var rowEnd = rowIndex == rowAnchors.Count - 1 + ? keyTop - 1 + : ResolveRowBoundaryTop(rowAnchors[rowIndex], rowAnchors[rowIndex + 1], bodyLines); + + var rowFragments = bodyFragments + .Where(item => item.Top >= rowStart && item.Top < rowEnd) + .ToList(); + + foreach (var columnAnchor in columnAnchors) + { + var cellFragments = rowFragments + .Where(item => CriticalTableParserSupport.ResolveColumn(item.CenterX, columnCenters) == columnAnchor.Key) + .OrderBy(item => item.Top) + .ThenBy(item => item.Left) + .ToList(); + + if (cellFragments.Count == 0) + { + validationErrors.Add($"Missing content for roll band '{rowAnchors[rowIndex].Label}', column '{columnAnchor.Key}'."); + continue; + } + + cellEntries.Add(new CellEntry( + rowAnchors[rowIndex].Label, + rowIndex, + columnAnchor.Key, + CriticalTableParserSupport.BuildLines(cellFragments).ToList())); + } + } + + RepairLeadingAffixLeakage(cellEntries, affixLegendSymbols); + + var parsedCells = new List(); + var parsedResults = new List(); + + foreach (var cellEntry in cellEntries.OrderBy(item => item.RowIndex).ThenBy(item => item.ColumnKey, StringComparer.Ordinal)) + { + var segmentCount = CriticalTableParserSupport.CountLineTypeSegments(cellEntry.Lines, affixLegendSymbols); + if (segmentCount > 2) + { + validationErrors.Add($"Cell '{cellEntry.RollBandLabel}/{cellEntry.ColumnKey}' interleaves prose and affix lines."); + } + + var rawAffixLines = cellEntry.Lines.Where(line => CriticalTableParserSupport.IsAffixLikeLine(line, affixLegendSymbols)).ToList(); + var descriptionLines = cellEntry.Lines.Where(line => !CriticalTableParserSupport.IsAffixLikeLine(line, affixLegendSymbols)).ToList(); + var rawCellText = string.Join(Environment.NewLine, cellEntry.Lines); + var descriptionText = CriticalTableParserSupport.CollapseWhitespace(string.Join(' ', descriptionLines)); + var rawAffixText = rawAffixLines.Count == 0 ? null : string.Join(Environment.NewLine, rawAffixLines); + + parsedCells.Add(new ParsedCriticalCellArtifact( + null, + cellEntry.RollBandLabel, + cellEntry.ColumnKey, + cellEntry.Lines, + rawCellText, + descriptionText, + rawAffixText)); + + parsedResults.Add(new ParsedCriticalResult( + null, + cellEntry.ColumnKey, + cellEntry.RollBandLabel, + rawCellText, + descriptionText, + rawAffixText)); + } + + if (columnAnchors.Count != ExpectedColumns.Length) + { + validationErrors.Add($"Expected {ExpectedColumns.Length} variant columns but found {columnAnchors.Count}."); + } + + if (parsedCells.Count != rowAnchors.Count * columnAnchors.Count) + { + validationErrors.Add($"Expected {rowAnchors.Count * columnAnchors.Count} parsed cells but produced {parsedCells.Count}."); + } + + var validationReport = new ImportValidationReport( + validationErrors.Count == 0, + validationErrors, + validationWarnings, + rowAnchors.Count, + parsedCells.Count); + + var table = new ParsedCriticalTable( + entry.Slug, + entry.DisplayName, + entry.Family, + Path.GetFileName(entry.PdfPath), + "Imported from PDF XML extraction.", + [], + ExpectedColumns.Select((item, index) => new ParsedCriticalColumn(item.Key, item.Label, "variant", index + 1)).ToList(), + parsedRollBands, + parsedResults); + + return new CriticalTableParseResult(table, fragments, parsedCells, validationReport); + } + + private static List FindHeaderFragments(IReadOnlyList fragments) + { + var expectedLabels = ExpectedColumns + .Select(item => item.Label.ToLowerInvariant()) + .ToList(); + + var headerCandidates = fragments + .Where(item => expectedLabels.Contains(item.Text.Trim().ToLowerInvariant(), StringComparer.Ordinal)) + .OrderBy(item => item.Top) + .ThenBy(item => item.Left) + .ToList(); + + foreach (var group in CriticalTableParserSupport.GroupByTop(headerCandidates)) + { + var ordered = group.OrderBy(item => item.Left).ToList(); + var labels = ordered.Select(item => item.Text.Trim().ToLowerInvariant()).ToList(); + if (labels.SequenceEqual(expectedLabels)) + { + return ordered; + } + } + + throw new InvalidOperationException("Could not find the variant-column header row in the XML artifact."); + } + + private static ColumnDefinition ResolveColumnDefinition(string value) => + ExpectedColumns.SingleOrDefault(item => string.Equals(item.Label, value.Trim(), StringComparison.OrdinalIgnoreCase)) + ?? throw new InvalidOperationException($"Unsupported variant column label '{value}'."); + + private static void RepairLeadingAffixLeakage(List cellEntries, ISet affixLegendSymbols) + { + var maxRowIndex = cellEntries.Count == 0 ? -1 : cellEntries.Max(item => item.RowIndex); + var columnKeys = cellEntries.Select(item => item.ColumnKey).Distinct(StringComparer.OrdinalIgnoreCase).ToList(); + + for (var rowIndex = 0; rowIndex < maxRowIndex; rowIndex++) + { + foreach (var columnKey in columnKeys) + { + var current = cellEntries.SingleOrDefault(item => item.RowIndex == rowIndex && item.ColumnKey == columnKey); + var next = cellEntries.SingleOrDefault(item => item.RowIndex == rowIndex + 1 && item.ColumnKey == columnKey); + if (current is null || next is null) + { + continue; + } + + var leadingAffixCount = 0; + while (leadingAffixCount < next.Lines.Count && CriticalTableParserSupport.IsAffixLikeLine(next.Lines[leadingAffixCount], affixLegendSymbols)) + { + leadingAffixCount++; + } + + if (leadingAffixCount == 0 || leadingAffixCount == next.Lines.Count) + { + continue; + } + + current.Lines.AddRange(next.Lines.Take(leadingAffixCount)); + next.Lines.RemoveRange(0, leadingAffixCount); + } + } + } + + private static int ResolveRowBoundaryTop( + RowAnchor current, + RowAnchor next, + IReadOnlyList<(int Top, bool IsAffixLike)> bodyLines) + { + var linesBetweenLabels = bodyLines + .Where(item => item.Top >= current.Top && item.Top < next.Top) + .OrderBy(item => item.Top) + .ToList(); + + for (var index = linesBetweenLabels.Count - 2; index >= 0; index--) + { + if (linesBetweenLabels[index].IsAffixLike && !linesBetweenLabels[index + 1].IsAffixLike) + { + return (int)Math.Floor((linesBetweenLabels[index].Top + linesBetweenLabels[index + 1].Top) / 2.0) + 1; + } + } + + return (int)Math.Floor((current.Top + next.Top) / 2.0) + 1; + } + + private sealed record ColumnDefinition(string Key, string Label); + + private sealed record RowAnchor(string Label, int Top, int SortOrder); + + private sealed class CellEntry(string rollBandLabel, int rowIndex, string columnKey, List lines) + { + public string RollBandLabel { get; } = rollBandLabel; + public int RowIndex { get; } = rowIndex; + public string ColumnKey { get; } = columnKey; + public List Lines { get; } = lines; + } +}