Files
codeql/cpp/ql/test/library-tests
copilot-swe-agent[bot] cebddbdd42 Commit 7: Implement POSIX collating symbol and equivalence class support
Add posixCollatingSymbol([.x.]) and posixEquivalenceClass([=x=]) predicates
to ParseRegExp.qll, enabling correct tokenization of all three POSIX bracket
atom types inside character classes:
  - [:name:]  — already handled, unchanged
  - [.x.]     — new: posixCollatingSymbol predicate
  - [=x=]     — new: posixEquivalenceClass predicate

Refactored:
- charSetDelimiter: use inAnyPosixBracket helper (covers all three types)
- charSet closing: use inAnyPosixBracket helper
- inPosixBracket: updated to cover all three types
- simpleCharacter: updated to exclude all three types
- namedCharacterProperty: includes posixCollatingSymbol and posixEquivalenceClass
- inAnyPosixBracket: new private helper; uses pos in [x..y-1] for QL binding

Before this commit (commit 6):
  [[.a.]] → RegExpCharacterClass([[.a.]) + stray ]   (WRONG)
  [[=a=]] → RegExpCharacterClass([[=a=]) + stray ]   (WRONG)

After this commit:
  [[.a.]] → RegExpCharacterClass containing RegExpNamedCharacterProperty [.a.]
  [[=a=]] → RegExpCharacterClass containing RegExpNamedCharacterProperty [=a=]

Regenerated parse.expected and regexp.expected via codeql test run --learn
(CodeQL 2.26.1); all 2 tests pass.
2026-07-21 10:22:50 +00:00
..
2020-03-19 09:18:32 -04:00
2019-09-09 11:25:53 +02:00
2025-11-26 13:42:43 +01:00
2019-09-09 11:25:53 +02:00
2020-10-07 13:14:54 -04:00
2024-12-20 13:53:35 +01:00
2024-04-09 15:15:41 +02:00
2019-09-09 11:25:53 +02:00
2025-04-23 16:56:56 +02:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2024-11-12 09:49:10 +00:00
2025-06-27 14:42:08 +02:00
2025-06-11 11:41:50 +02:00
2019-09-09 11:25:53 +02:00
2020-01-20 15:00:09 +00:00
2020-01-29 13:11:50 +01:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2024-10-16 11:33:18 +02:00
2022-08-25 20:52:27 +02:00
2019-09-09 11:25:53 +02:00
2022-10-21 18:36:12 +01:00
2020-11-03 13:39:33 -05:00
2019-09-09 11:25:53 +02:00
2022-08-25 20:52:27 +02:00
2020-06-30 17:46:08 +01:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2025-06-13 09:44:03 +02:00
2024-01-29 14:11:07 +00:00
2019-09-09 11:25:53 +02:00
2025-11-18 20:03:24 +00:00
2025-08-03 12:17:34 +01:00