コード例 #1
0
        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();
            }
        }
コード例 #2
0
 public static ExpressionPath From(ICodeSource1 x)
 {
     if (x is null)
     {
         return(null);
     }
     return(new ExpressionPath(x));
 }