namespace ParadoxSaveParser.Lib; /// "(a|b)" — matches if any alternative does. internal sealed class MultipleMatchExpression(List subExprs) : ISearchExpression { public bool DoesMatch(MatchCandidate candidate, out ISearchExpression? nextSearchExpression) { // the first matching alternative wins foreach (var e in subExprs) if (e.DoesMatch(candidate, out nextSearchExpression)) return true; nextSearchExpression = null; return false; } public void ReEncode(Encoding encoding) { foreach (var e in subExprs) e.ReEncode(encoding); } }