Skip to content

Commit 53ea488

Browse files
authored
C++: Verify [\b] is backspace inside character classes
1 parent 85d46d5 commit 53ea488

3 files changed

Lines changed: 9 additions & 0 deletions

File tree

cpp/ql/test/library-tests/regex/parse.expected

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,8 @@
128128

129129
#-----| [RegExpConstant, RegExpNormalChar] A-F]
130130

131+
#-----| [RegExpConstant, RegExpEscape] \b
132+
131133
#-----| [RegExpConstant, RegExpNormalChar] |
132134

133135
#-----| [RegExpConstant, RegExpNormalChar] -
@@ -378,6 +380,9 @@
378380
#-----| 0 -> [RegExpConstant, RegExpNormalChar] [
379381
#-----| 1 -> [RegExpCharacterRange] a-f
380382

383+
#-----| [RegExpCharacterClass] [\b]
384+
#-----| 0 -> [RegExpConstant, RegExpEscape] \b
385+
381386
#-----| [RegExpCharacterClass] [|]
382387
#-----| 0 -> [RegExpConstant, RegExpNormalChar] |
383388

cpp/ql/test/library-tests/regex/regexp.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ std::regex r_cc7("[]]"); // MRI gives a warning, but accepts this as matching
3737
std::regex r_cc8("[^]]"); // MRI gives a warning, but accepts this as matching anything except ']'
3838
std::regex r_cc9("[^-]");
3939
std::regex r_cc10("[|]");
40+
std::regex r_cc11("[\\b]");
4041

4142
// Nested character classes (BAD - not parsed correctly)
4243
std::regex r_nested("[[a-f]A-F]");

cpp/ql/test/library-tests/regex/regexp.expected

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ term
6767
| file://:0:0:0:0 | [[a-f] | RegExpCharacterClass |
6868
| file://:0:0:0:0 | [[a-f]A-F] | RegExpSequence |
6969
| file://:0:0:0:0 | [\\0] | RegExpCharacterClass |
70+
| file://:0:0:0:0 | [\\b] | RegExpCharacterClass |
7071
| file://:0:0:0:0 | [\\cZ] | RegExpCharacterClass |
7172
| file://:0:0:0:0 | [\\w] | RegExpCharacterClass |
7273
| file://:0:0:0:0 | [\\w]+ | RegExpPlus |
@@ -87,6 +88,7 @@ term
8788
| file://:0:0:0:0 | \\[ | RegExpConstant,RegExpEscape |
8889
| file://:0:0:0:0 | \\[\\][123] | RegExpSequence |
8990
| file://:0:0:0:0 | \\] | RegExpConstant,RegExpEscape |
91+
| file://:0:0:0:0 | \\b | RegExpConstant,RegExpEscape |
9092
| file://:0:0:0:0 | \\b | RegExpSpecialChar |
9193
| file://:0:0:0:0 | \\b!a\\B | RegExpSequence |
9294
| file://:0:0:0:0 | \\cA | RegExpConstant,RegExpEscape |
@@ -216,6 +218,7 @@ regExpNormalCharValue
216218
| file://:0:0:0:0 | \\W | W |
217219
| file://:0:0:0:0 | \\[ | [ |
218220
| file://:0:0:0:0 | \\] | ] |
221+
| file://:0:0:0:0 | \\b | b |
219222
| file://:0:0:0:0 | \\cA | cA |
220223
| file://:0:0:0:0 | \\cZ | cZ |
221224
| file://:0:0:0:0 | \\d | d |

0 commit comments

Comments
 (0)