Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Kitware
GitHub Repository: Kitware/CMake
Path: blob/master/Utilities/ast-grep/rules/cmstrcat-to-char-literal.yaml
3152 views
1
---
2
id: cmstrcat-to-char-literal
3
language: Cpp
4
severity: warning
5
message: "`cmStrCat` string literal arguments which can be char literals should be"
6
rule:
7
kind: string_literal
8
pattern: $ARG
9
follows:
10
regex: '(,|[(])'
11
precedes:
12
regex: '(,|[)])'
13
inside:
14
matches: cmstrcat-call
15
stopBy:
16
kind: call_expression
17
constraints:
18
ARG:
19
regex: '^"(.|\\.)"$'
20
transform:
21
ARG_CHANGE_QUOTE:
22
replace:
23
source: $ARG
24
replace: '(^"|"$)'
25
by: "'"
26
ARG_ESCAPE_SINGLE_QUOTE:
27
replace:
28
source: $ARG_CHANGE_QUOTE
29
replace: "'''"
30
by: "'\\''"
31
ARG_OUT:
32
replace:
33
source: $ARG_ESCAPE_SINGLE_QUOTE
34
replace: '\\"'
35
by: '"'
36
fix: $ARG_OUT
37
38