File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -435,6 +435,13 @@ public static IEnumerable<ParserReference> GetParserReferences(this ParseTreeNod
435435 range . LocationString = node . Print ( ) ;
436436 list . Add ( range ) ;
437437 }
438+ else if ( IsTableReference ( rangeStart ) && IsTableReference ( rangeEnd ) && rangeStart . First ( ) . Name == rangeEnd . First ( ) . Name && rangeStart . First ( ) . TableColumns . Length == 1 && rangeEnd . First ( ) . TableColumns . Length == 1 )
439+ {
440+ ParserReference range = rangeStart . First ( ) ;
441+ range . TableColumns = rangeStart . First ( ) . TableColumns . Concat ( rangeEnd . First ( ) . TableColumns ) . ToArray ( ) ;
442+ range . TableSpecifiers = rangeStart . First ( ) . TableSpecifiers . SequenceEqual ( rangeEnd . First ( ) . TableSpecifiers ) ? range . TableSpecifiers : new string [ 0 ] ;
443+ list . Add ( range ) ;
444+ }
438445 else
439446 {
440447 list . AddRange ( rangeStart ) ;
@@ -455,13 +462,17 @@ private static bool IsCellReference(IList<ParserReference> references)
455462 return references . Count == 1 && references . First ( ) . ReferenceType == ReferenceType . Cell ;
456463 }
457464
465+ private static bool IsTableReference ( IList < ParserReference > references )
466+ {
467+ return references . Count == 1 && references . First ( ) . ReferenceType == ReferenceType . Table ;
468+ }
469+
458470 /// <summary>
459471 /// Whether or not this node represents a range
460472 /// </summary>
461473 public static bool IsRange ( this ParseTreeNode input )
462474 {
463- return input . IsBinaryReferenceOperation ( ) &&
464- input . ChildNodes [ 1 ] . Is ( ":" ) ;
475+ return input . IsBinaryReferenceOperation ( ) && input . ChildNodes [ 1 ] . Is ( ":" ) ;
465476 }
466477
467478 /// <summary>
You can’t perform that action at this time.
0 commit comments