From 6926feead1a7fadb7f5f974996bef8c30b3bfdbe Mon Sep 17 00:00:00 2001 From: Ruben Beltran del Rio Date: Wed, 9 Jul 2025 01:55:50 +0200 Subject: Use AST based text editor --- Map/Business/WmapParser/Syntax.swift | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 Map/Business/WmapParser/Syntax.swift (limited to 'Map/Business/WmapParser/Syntax.swift') diff --git a/Map/Business/WmapParser/Syntax.swift b/Map/Business/WmapParser/Syntax.swift new file mode 100644 index 0000000..551ebcd --- /dev/null +++ b/Map/Business/WmapParser/Syntax.swift @@ -0,0 +1,32 @@ +// Copyright (C) 2024 Rubén Beltrán del Río + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see https://map.tranquil.systems. +extension Wmap { + struct SyntaxElement { + let type: SyntaxType + let range: SourceRange + let value: String + } + + enum SyntaxType { + case keyword // [Note], [Group], etc. + case vertexLabel // vertex names + case number // coordinates, values + case symbol // ->, --, +, - + case shape // [square], [circle] + case text // note text + case punctuation // (, ), [, ], , + case stageNumber // i, ii, iii, iv + } +} -- cgit