diff --git a/SabreTools.Core/Filter/FilterGroup.cs b/SabreTools.Core/Filter/FilterGroup.cs
index 4f29b159..3c22a0d1 100644
--- a/SabreTools.Core/Filter/FilterGroup.cs
+++ b/SabreTools.Core/Filter/FilterGroup.cs
@@ -147,7 +147,30 @@ namespace SabreTools.Core.Filter
}
///
- /// Tokenize an input string to parse into a filter group
+ /// Parse an input string into a filter group
+ ///
+ private static void Parse(string? input)
+ {
+ // Tokenize the string
+ string[] tokens = Tokenize(input);
+ if (tokens.Length == 0)
+ return;
+
+ // Loop through the tokens and parse
+ for (int i = 0; i < tokens.Length; i++)
+ {
+ // TODO: Implement parsing
+ // - Opening parenthesis means a new group
+ // - Closing parenthesis means finalize group and return it
+ // - Current starting and ending with a parenthesis strips them off
+ // - Unbalanced parenthesis can only be found on parse
+ // - Failed parsing of FilterObjects(?)
+ // - Invalid FilterObjects(?)
+ }
+ }
+
+ ///
+ /// Tokenize an input string for parsing
///
private static string[] Tokenize(string? input)
{
@@ -156,7 +179,7 @@ namespace SabreTools.Core.Filter
return [];
// Split the string into parseable pieces
- return Regex.Split(input, @"(\(|[a-zA-Z._:!&|""]+|\))");
+ return Regex.Split(input, @"(\(|\S+|\))");
}
#endregion