Пример #1
0
 /// <summary>
 /// Replace one subtree with another
 /// </summary>
 public ContextNode Replace(ContextNode search, ContextNode replace)
 {
     return(new ContextNode(Ctx, Replace(Node, search.Node, replace.Node, Ctx, search.Ctx, replace.Ctx)));
 }
Пример #2
0
 public int GetHashCode(ParseTreeNode obj)
 {
     return(ContextNode.GetHashCode(Ctx, obj));
 }
Пример #3
0
 public bool Equals(ParseTreeNode x, ParseTreeNode y)
 {
     return(ContextNode.Equals(x, y, Ctx, Ctx));
 }
Пример #4
0
 public bool Contains(ContextNode search)
 {
     return(Contains(Node, search.Node, Ctx, search.Ctx));
 }
Пример #5
0
 private static IEnumerable <ParseTreeNode> CellContainedInRanges(ParseTreeNode fqcellref, ContextNode formula)
 {
     if (!fqcellref.Is(GrammarNames.Reference) || !fqcellref.ChildNodes[1].Is(GrammarNames.Cell))
     {
         throw new ArgumentException("Must be a reference to a single cell", nameof(fqcellref));
     }
     return(CellContainedInRanges(fqcellref, formula.Node, formula.Ctx));
 }
Пример #6
0
        /// <summary>
        /// Return all ranges used in a specific formula this cell is contained in
        /// </summary>
        public IEnumerable <ParseTreeNode> CellContainedInRanges(ContextNode formula)
        {
            var node = Node.SkipToRelevant(false);

            return(CellContainedInRanges(Ctx.Qualify(node), formula));
        }