BSPGenerationTools.CopyJob.ParseCondition C# (CSharp) Метод

ParseCondition() приватный Метод

private ParseCondition ( string rawCond ) : System.Condition
rawCond string
Результат System.Condition
        private Condition ParseCondition(string rawCond)
        {
            int idx = rawCond.IndexOf("&&");
            if (idx != -1)
                return new Condition.And { Arguments = new Condition[] { ParseCondition(rawCond.Substring(0, idx).Trim()), ParseCondition(rawCond.Substring(idx + 2).Trim()) } };

            if (rawCond.StartsWith("fw:"))
                return new Condition.ReferencesFramework { FrameworkID = rawCond.Substring(3).Trim() };

            idx = rawCond.IndexOf("==");
            if (idx != -1)
                return new Condition.Equals { Expression = rawCond.Substring(0, idx).Trim(), ExpectedValue = rawCond.Substring(idx + 2).Trim() };
            else if ((idx = rawCond.IndexOf("=~")) != -1)
                return new Condition.MatchesRegex { Expression = rawCond.Substring(0, idx).Trim(), Regex = rawCond.Substring(idx + 2).Trim() };
            else if ((idx = rawCond.IndexOf("!=")) != -1)
                return new Condition.Not { Argument = new Condition.Equals { Expression = rawCond.Substring(0, idx).Trim(), ExpectedValue = rawCond.Substring(idx + 2).Trim() } };
            else
                throw new Exception("Cannot parse simple condition");
        }