From 8564439356f4bcc3e21b19738eb87b4c0722c623 Mon Sep 17 00:00:00 2001 From: Ruben Beltran del Rio Date: Fri, 11 Jul 2025 09:27:49 +0200 Subject: Add missing vertex detection --- Map/Business/WmapParser/Parser.swift | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'Map/Business/WmapParser') diff --git a/Map/Business/WmapParser/Parser.swift b/Map/Business/WmapParser/Parser.swift index 9418263..86c36ef 100644 --- a/Map/Business/WmapParser/Parser.swift +++ b/Map/Business/WmapParser/Parser.swift @@ -15,6 +15,12 @@ import Foundation extension Wmap { + + struct ParsedMap { + let entities: [Entity] + let vertexLabels: Set + } + class Parser { private let lexer: Lexer private var currentToken: Token @@ -25,8 +31,9 @@ extension Wmap { self.currentToken = lexer.nextToken() } - func parse() -> [Entity] { + func parse() -> ParsedMap { var entities: [Entity] = [] + var vertexLabels: Set = Set() while currentToken.type != .eof { if currentToken.type == .newline { @@ -37,6 +44,12 @@ extension Wmap { do { let entity = try parseEntity() entities.append(entity) + switch entity { + case .vertex(let vertex): + vertexLabels.insert(vertex.label) + default: + break + } if currentToken.type == .newline { advance() @@ -48,7 +61,7 @@ extension Wmap { } } - return entities + return ParsedMap(entities: entities, vertexLabels: vertexLabels) } private func parseEntity() throws -> Entity { -- cgit