diff options
| author | Ruben Beltran del Rio <git@r.bdr.sh> | 2025-07-09 01:55:50 +0200 |
|---|---|---|
| committer | Ruben Beltran del Rio <git@r.bdr.sh> | 2025-07-09 01:55:50 +0200 |
| commit | 6926feead1a7fadb7f5f974996bef8c30b3bfdbe (patch) | |
| tree | 5a16e64f70bea3b9f33220cce5ca524e686dbedf /Map/Business/WmapParser/SourcePosition.swift | |
| parent | c21a68c807dcb84b4ce910ee0f73238a8019ffe9 (diff) | |
Use AST based text editor
Diffstat (limited to 'Map/Business/WmapParser/SourcePosition.swift')
| -rw-r--r-- | Map/Business/WmapParser/SourcePosition.swift | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/Map/Business/WmapParser/SourcePosition.swift b/Map/Business/WmapParser/SourcePosition.swift new file mode 100644 index 0000000..e83c07a --- /dev/null +++ b/Map/Business/WmapParser/SourcePosition.swift @@ -0,0 +1,35 @@ +// 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 SourcePosition: Equatable { + let line: Int + let column: Int + let stringIndex: String.Index + + static func == (lhs: SourcePosition, rhs: SourcePosition) -> Bool { + return lhs.line == rhs.line && lhs.column == rhs.column && lhs.stringIndex == rhs.stringIndex + } + } + + struct SourceRange: Equatable { + let start: SourcePosition + let end: SourcePosition + let stringRange: Range<String.Index> + + static func == (lhs: SourceRange, rhs: SourceRange) -> Bool { + return lhs.start == rhs.start && lhs.end == rhs.end && lhs.stringRange == rhs.stringRange + } + } +} |