summaryrefslogtreecommitdiff
path: root/ADSBDecoderFramework/ADSBRegEx.swift
diff options
context:
space:
mode:
authorArturs Artamonovs <arturs.artamonovs@protonmail.com>2026-09-24 11:02:35 +0100
committerArturs Artamonovs <arturs.artamonovs@protonmail.com>2026-09-24 11:02:35 +0100
commit505b23afc68ecbb63b8f0a7d44c0b0ad063d5cfd (patch)
treed38b29a0cf23041571eb08fd79f49fdad8deb85f /ADSBDecoderFramework/ADSBRegEx.swift
parent056ee0c3355db995d7ea571e0635ebe8b09bf8ee (diff)
downloadADSBDecoder-505b23afc68ecbb63b8f0a7d44c0b0ad063d5cfd.tar.gz
ADSBDecoder-505b23afc68ecbb63b8f0a7d44c0b0ad063d5cfd.zip
rearrange source, move common parts to framework
Diffstat (limited to 'ADSBDecoderFramework/ADSBRegEx.swift')
-rw-r--r--ADSBDecoderFramework/ADSBRegEx.swift87
1 files changed, 87 insertions, 0 deletions
diff --git a/ADSBDecoderFramework/ADSBRegEx.swift b/ADSBDecoderFramework/ADSBRegEx.swift
new file mode 100644
index 0000000..2841467
--- /dev/null
+++ b/ADSBDecoderFramework/ADSBRegEx.swift
@@ -0,0 +1,87 @@
+//
+// ADSBRegEx.swift
+// ADSBDecoder
+//
+// Created by Jacky Jack on 30/06/2024.
+//
+
+import Foundation
+import RegexBuilder
+/*
+let matchADSBLong = Regex {
+ Anchor.startOfLine
+ "*"
+
+ Repeat(
+ CharacterClass(
+ ("a"..."f"),
+ ("0"..."9")
+ )
+ ,count:28)
+
+ ";"
+}*/
+class MatchADSBLong {
+ let matchADSBLong = Regex {
+ Anchor.startOfLine
+ "*"
+
+ Repeat(
+ CharacterClass(
+ ("a"..."f"),
+ ("0"..."9")
+ )
+ ,count:28)
+
+ ";"
+ }
+
+ func prefixMatch(_ line: String) -> Regex<Regex<Substring>.RegexOutput>.Match? {
+ do {
+ if let match = try matchADSBLong.prefixMatch(in: line) {
+ return match
+ }
+ } catch {
+ return nil
+ }
+ return nil
+ }
+}
+
+/*
+let matchADSBShort = Regex {
+ Anchor.startOfLine
+ "*"
+ Repeat(
+ CharacterClass(
+ ("a"..."f"),
+ ("0"..."9")
+ )
+ ,count:14)
+ ";"
+}*/
+
+class MatchADSBShort {
+ let matchADSBShort = Regex {
+ Anchor.startOfLine
+ "*"
+ Repeat(
+ CharacterClass(
+ ("a"..."f"),
+ ("0"..."9")
+ )
+ ,count:14)
+ ";"
+ }
+
+ func prefixMatch(_ line: String) -> Regex<Regex<Substring>.RegexOutput>.Match? {
+ do {
+ if let match = try matchADSBShort.prefixMatch(in: line) {
+ return match
+ }
+ } catch {
+ return nil
+ }
+ return nil
+ }
+}