public void UpdateFromReduction(ExpressionPath expression, string varName) { if (expression.Dots == Dots) { if (Equals(expression)) { Parts = new ICodeSource1[] { new SimpleCodeSource(varName) } } ; return; } if (Dots < expression.Dots) { return; } var begin = new ExpressionPath(Parts.Take(expression.Parts.Length).ToArray()); if (begin.Equals(expression)) { var l = new List <ICodeSource1>(); l.Add(new SimpleCodeSource(varName)); l.AddRange(Parts.Skip(expression.Parts.Length)); Parts = l.ToArray(); } }
public static ExpressionPath From(ICodeSource1 x) { if (x is null) { return(null); } return(new ExpressionPath(x)); }