File tree Expand file tree Collapse file tree
cpp/ql/lib/semmle/code/cpp/regex Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1163,6 +1163,27 @@ private module Impl implements RegexTreeViewSig {
11631163 string getSymbol ( ) { result = re .getCharacterPropertySymbol ( start , end ) }
11641164 }
11651165
1166+ /**
1167+ * A named POSIX character class. For example, `[:digit:]`.
1168+ */
1169+ additional class RegExpNamedCharacterClass extends RegExpNamedCharacterProperty {
1170+ RegExpNamedCharacterClass ( ) { ":" = re .getCharacterPropertySymbol ( start , end ) }
1171+ }
1172+
1173+ /**
1174+ * A named POSIX collating element. For example, `[.tilde.]`.
1175+ */
1176+ additional class RegExpNamedCollatingElement extends RegExpNamedCharacterProperty {
1177+ RegExpNamedCollatingElement ( ) { "." = re .getCharacterPropertySymbol ( start , end ) }
1178+ }
1179+
1180+ /**
1181+ * A POSIX character equivalence class. For example, `[=a=]`.
1182+ */
1183+ additional class RegExpCharacterEquivalenceClass extends RegExpNamedCharacterProperty {
1184+ RegExpCharacterEquivalenceClass ( ) { "=" = re .getCharacterPropertySymbol ( start , end ) }
1185+ }
1186+
11661187 class Top = RegExpParent ;
11671188
11681189 /**
@@ -1173,7 +1194,7 @@ private module Impl implements RegexTreeViewSig {
11731194 exists ( RegExpCharacterClassEscape escape | term = escape | escape .getValue ( ) = clazz )
11741195 or
11751196 // TODO: expand to cover more properties
1176- exists ( RegExpNamedCharacterProperty escape | term = escape |
1197+ exists ( RegExpNamedCharacterClass escape | term = escape |
11771198 escape .getName ( ) .toLowerCase ( ) = "digit" and
11781199 clazz = "d"
11791200 or
You can’t perform that action at this time.
0 commit comments