@@ -246,9 +246,7 @@ class RegExpQuantifier extends RegExpTerm, TRegExpQuantifier {
246246
247247 override RegExpTerm getChild ( int i ) {
248248 i = 0 and
249- result .getRegex ( ) = re and
250- result .getStart ( ) = start and
251- result .getEnd ( ) = part_end
249+ result .occursInRegex ( re , start , part_end )
252250 }
253251
254252 /** Holds if this term may match an unlimited number of times. */
@@ -396,9 +394,9 @@ private RegExpTerm seqChild(Regex re, int start, int end, int i) {
396394 )
397395 or
398396 i > 0 and
399- exists ( int itemStart | itemStart = seqChildEnd ( re , start , end , i - 1 ) |
400- re .item ( itemStart , result . getEnd ( ) ) and
401- result .occursInRegex ( re , itemStart , _ )
397+ exists ( int itemStart , int itemEnd | itemStart = seqChildEnd ( re , start , end , i - 1 ) |
398+ re .item ( itemStart , itemEnd ) and
399+ result .occursInRegex ( re , itemStart , itemEnd )
402400 )
403401 )
404402}
@@ -417,20 +415,17 @@ class RegExpAlt extends RegExpTerm, TRegExpAlt {
417415
418416 override RegExpTerm getChild ( int i ) {
419417 i = 0 and
420- result .getRegex ( ) = re and
421- result .getStart ( ) = start and
422418 exists ( int part_end |
423419 re .alternationOption ( start , end , start , part_end ) and
424- result .getEnd ( ) = part_end
420+ result .occursInRegex ( re , start , part_end )
425421 )
426422 or
427423 i > 0 and
428- result .getRegex ( ) = re and
429- exists ( int part_start |
424+ exists ( int part_start , int part_end |
430425 part_start = this .getChild ( i - 1 ) .getEnd ( ) + 1 // allow for the |
431426 |
432- result . getStart ( ) = part_start and
433- re . alternationOption ( start , end , part_start , result . getEnd ( ) )
427+ re . alternationOption ( start , end , part_start , part_end ) and
428+ result . occursInRegex ( re , part_start , part_end )
434429 )
435430 }
436431
@@ -651,9 +646,9 @@ class RegExpCharacterClass extends RegExpTerm, TRegExpCharacterClass {
651646 )
652647 or
653648 i > 0 and
654- exists ( int itemStart | itemStart = this .getChild ( i - 1 ) .getEnd ( ) |
655- result .occursInRegex ( re , itemStart , _ ) and
656- re .charSetChild ( start , itemStart , result . getEnd ( ) )
649+ exists ( int itemStart , int itemEnd | itemStart = this .getChild ( i - 1 ) .getEnd ( ) |
650+ result .occursInRegex ( re , itemStart , itemEnd ) and
651+ re .charSetChild ( start , itemStart , itemEnd )
657652 )
658653 }
659654
@@ -686,14 +681,10 @@ class RegExpCharacterRange extends RegExpTerm, TRegExpCharacterRange {
686681
687682 override RegExpTerm getChild ( int i ) {
688683 i = 0 and
689- result .getRegex ( ) = re and
690- result .getStart ( ) = start and
691- result .getEnd ( ) = lower_end
684+ result .occursInRegex ( re , start , lower_end )
692685 or
693686 i = 1 and
694- result .getRegex ( ) = re and
695- result .getStart ( ) = upper_start and
696- result .getEnd ( ) = end
687+ result .occursInRegex ( re , upper_start , end )
697688 }
698689
699690 override string getPrimaryQLClass ( ) { result = "RegExpCharacterRange" }
@@ -816,9 +807,10 @@ class RegExpGroup extends RegExpTerm, TRegExpGroup {
816807 string getName ( ) { result = re .getGroupName ( start , end ) }
817808
818809 override RegExpTerm getChild ( int i ) {
819- result .getRegex ( ) = re and
820810 i = 0 and
821- re .groupContents ( start , end , result .getStart ( ) , result .getEnd ( ) )
811+ exists ( int in_start , int in_end | re .groupContents ( start , end , in_start , in_end ) |
812+ result .occursInRegex ( re , in_start , in_end )
813+ )
822814 }
823815
824816 override string getPrimaryQLClass ( ) { result = "RegExpGroup" }
@@ -946,9 +938,7 @@ class RegExpSubPattern extends RegExpZeroWidthMatch {
946938 /** Gets the lookahead term. */
947939 RegExpTerm getOperand ( ) {
948940 exists ( int in_start , int in_end | re .groupContents ( start , end , in_start , in_end ) |
949- result .getRegex ( ) = re and
950- result .getStart ( ) = in_start and
951- result .getEnd ( ) = in_end
941+ result .occursInRegex ( re , in_start , in_end )
952942 )
953943 }
954944}
0 commit comments