diff --git a/javascript/extractor/src/com/semmle/js/extractor/RegExpExtractor.java b/javascript/extractor/src/com/semmle/js/extractor/RegExpExtractor.java index eb1d6006be9..0bfb2e2a4d5 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/RegExpExtractor.java +++ b/javascript/extractor/src/com/semmle/js/extractor/RegExpExtractor.java @@ -243,7 +243,7 @@ public class RegExpExtractor { if (nd.isGreedy()) trapwriter.addTuple("is_greedy", lbl); long lo = nd.getLowerBound(); - if (inRange(lo)) trapwriter.addTuple("rangeQuantifierLowerBound", lbl, lo); + if (inRange(lo)) trapwriter.addTuple("range_quantifier_lower_bound", lbl, lo); if (nd.hasUpperBound()) { long hi = nd.getUpperBound(); diff --git a/javascript/extractor/tests/exprs/output/trap/regexp.js.trap b/javascript/extractor/tests/exprs/output/trap/regexp.js.trap index 6949536aca5..92c8f750d2e 100644 --- a/javascript/extractor/tests/exprs/output/trap/regexp.js.trap +++ b/javascript/extractor/tests/exprs/output/trap/regexp.js.trap @@ -1087,7 +1087,7 @@ regexpterm(#20375,11,#20374,0,"a{1}") locations_default(#20376,#10000,15,2,15,5) hasLocation(#20375,#20376) is_greedy(#20375) -rangeQuantifierLowerBound(#20375,1) +range_quantifier_lower_bound(#20375,1) rangeQuantifierUpperBound(#20375,1) #20377=* regexpterm(#20377,14,#20375,0,"a") @@ -1111,7 +1111,7 @@ regexpterm(#20381,11,#20380,0,"a{1,}") locations_default(#20382,#10000,16,2,16,6) hasLocation(#20381,#20382) is_greedy(#20381) -rangeQuantifierLowerBound(#20381,1) +range_quantifier_lower_bound(#20381,1) #20383=* regexpterm(#20383,14,#20381,0,"a") #20384=@"loc,{#10000},16,2,16,2" @@ -1134,7 +1134,7 @@ regexpterm(#20387,11,#20386,0,"a{1,2}") locations_default(#20388,#10000,17,2,17,7) hasLocation(#20387,#20388) is_greedy(#20387) -rangeQuantifierLowerBound(#20387,1) +range_quantifier_lower_bound(#20387,1) rangeQuantifierUpperBound(#20387,2) #20389=* regexpterm(#20389,14,#20387,0,"a") @@ -1157,7 +1157,7 @@ regexpterm(#20393,11,#20392,0,"a{1}?") #20394=@"loc,{#10000},18,2,18,6" locations_default(#20394,#10000,18,2,18,6) hasLocation(#20393,#20394) -rangeQuantifierLowerBound(#20393,1) +range_quantifier_lower_bound(#20393,1) rangeQuantifierUpperBound(#20393,1) #20395=* regexpterm(#20395,14,#20393,0,"a") @@ -1180,7 +1180,7 @@ regexpterm(#20399,11,#20398,0,"a{1,}?") #20400=@"loc,{#10000},19,2,19,7" locations_default(#20400,#10000,19,2,19,7) hasLocation(#20399,#20400) -rangeQuantifierLowerBound(#20399,1) +range_quantifier_lower_bound(#20399,1) #20401=* regexpterm(#20401,14,#20399,0,"a") #20402=@"loc,{#10000},19,2,19,2" @@ -1202,7 +1202,7 @@ regexpterm(#20405,11,#20404,0,"a{1,2}?") #20406=@"loc,{#10000},20,2,20,8" locations_default(#20406,#10000,20,2,20,8) hasLocation(#20405,#20406) -rangeQuantifierLowerBound(#20405,1) +range_quantifier_lower_bound(#20405,1) rangeQuantifierUpperBound(#20405,2) #20407=* regexpterm(#20407,14,#20405,0,"a") @@ -1671,7 +1671,7 @@ regexpterm(#20542,11,#20541,0,"a{") locations_default(#20543,#10000,37,2,37,3) hasLocation(#20542,#20543) is_greedy(#20542) -rangeQuantifierLowerBound(#20542,0) +range_quantifier_lower_bound(#20542,0) rangeQuantifierUpperBound(#20542,0) #20544=* regexpterm(#20544,14,#20542,0,"a") @@ -1710,7 +1710,7 @@ regexpterm(#20554,11,#20552,0,"a{") locations_default(#20555,#10000,38,2,38,3) hasLocation(#20554,#20555) is_greedy(#20554) -rangeQuantifierLowerBound(#20554,0) +range_quantifier_lower_bound(#20554,0) rangeQuantifierUpperBound(#20554,0) #20556=* regexpterm(#20556,14,#20554,0,"a") @@ -1757,7 +1757,7 @@ regexpterm(#20568,11,#20567,0,"a{2") locations_default(#20569,#10000,39,2,39,4) hasLocation(#20568,#20569) is_greedy(#20568) -rangeQuantifierLowerBound(#20568,2) +range_quantifier_lower_bound(#20568,2) rangeQuantifierUpperBound(#20568,2) #20570=* regexpterm(#20570,14,#20568,0,"a") diff --git a/javascript/ql/src/semmle/javascript/Aliases.qll b/javascript/ql/src/semmle/javascript/Aliases.qll index 662bafef9b5..429fdb80e04 100644 --- a/javascript/ql/src/semmle/javascript/Aliases.qll +++ b/javascript/ql/src/semmle/javascript/Aliases.qll @@ -230,3 +230,8 @@ deprecated predicate regexpParseErrors(RegExpParseError id, RegExpTerm regexp, s * Use `RegExpQuantifier#isGreedy` instead. */ deprecated predicate isGreedy(RegExpQuantifier id) { is_greedy(id) } +/** + * Alias for the predicate `range_quantifier_lower_bound` defined in the .dbscheme. + * Use `RegExpRange#getLowerBound()` instead. + */ +deprecated predicate rangeQuantifierLowerBound(RegExpRange id, int lo) { range_quantifier_lower_bound(id, lo) } diff --git a/javascript/ql/src/semmle/javascript/Regexp.qll b/javascript/ql/src/semmle/javascript/Regexp.qll index e7460b61129..dea6375971a 100644 --- a/javascript/ql/src/semmle/javascript/Regexp.qll +++ b/javascript/ql/src/semmle/javascript/Regexp.qll @@ -522,7 +522,7 @@ class RegExpOpt extends RegExpQuantifier, @regexp_opt { */ class RegExpRange extends RegExpQuantifier, @regexp_range { /** Gets the lower bound of the range. */ - int getLowerBound() { rangeQuantifierLowerBound(this, result) } + int getLowerBound() { range_quantifier_lower_bound(this, result) } /** * Gets the upper bound of the range, if any. diff --git a/javascript/ql/src/semmlecode.javascript.dbscheme b/javascript/ql/src/semmlecode.javascript.dbscheme index fdbad10119f..c732738a7ae 100644 --- a/javascript/ql/src/semmlecode.javascript.dbscheme +++ b/javascript/ql/src/semmlecode.javascript.dbscheme @@ -878,7 +878,7 @@ regexp_parse_errors (unique int id: @regexp_parse_error, @regexp_anchor = @regexp_dollar | @regexp_caret; is_greedy (int id: @regexp_quantifier ref); -rangeQuantifierLowerBound (unique int id: @regexp_range ref, int lo: int ref); +range_quantifier_lower_bound (unique int id: @regexp_range ref, int lo: int ref); rangeQuantifierUpperBound (unique int id: @regexp_range ref, int hi: int ref); isCapture (unique int id: @regexp_group ref, int number: int ref); isNamedCapture (unique int id: @regexp_group ref, string name: string ref); diff --git a/javascript/ql/src/semmlecode.javascript.dbscheme.stats b/javascript/ql/src/semmlecode.javascript.dbscheme.stats index c717c1045f5..1cc1c108fbe 100644 --- a/javascript/ql/src/semmlecode.javascript.dbscheme.stats +++ b/javascript/ql/src/semmlecode.javascript.dbscheme.stats @@ -20084,7 +20084,7 @@ -rangeQuantifierLowerBound +range_quantifier_lower_bound 146 diff --git a/javascript/upgrades/c73fbfca57f3d593b9ff50c6aa3a886d6888efec/upgrade.properties b/javascript/upgrades/c73fbfca57f3d593b9ff50c6aa3a886d6888efec/upgrade.properties index 8f7483853b9..08da77b8a8b 100644 --- a/javascript/upgrades/c73fbfca57f3d593b9ff50c6aa3a886d6888efec/upgrade.properties +++ b/javascript/upgrades/c73fbfca57f3d593b9ff50c6aa3a886d6888efec/upgrade.properties @@ -66,3 +66,5 @@ regexp_parse_errors.rel: reorder regexpParseErrors.rel(int id, int regexp, strin regexpParseErrors.rel: delete is_greedy.rel: reorder isGreedy.rel(int id) id isGreedy.rel: delete +range_quantifier_lower_bound.rel: reorder rangeQuantifierLowerBound.rel(int id, int lo) id lo +rangeQuantifierLowerBound.rel: delete