misc.py: fixed FP
This commit is contained in:
parent
2a657cfd08
commit
9579b12be9
|
@ -28,27 +28,33 @@ def simpleMatch(token, pattern):
|
|||
token = token.next
|
||||
return True
|
||||
|
||||
def isStringLiteral(tokenString):
|
||||
return tokenString.startswith('"')
|
||||
|
||||
# check data
|
||||
def check(data):
|
||||
arrayInit = False
|
||||
for i in range(len(data.rawTokens)):
|
||||
rawTokens = data.rawTokens
|
||||
for i in range(len(rawTokens)):
|
||||
if i < 2:
|
||||
continue
|
||||
tok1 = data.rawTokens[i-2].str
|
||||
tok2 = data.rawTokens[i-1].str
|
||||
tok3 = data.rawTokens[i-0].str
|
||||
tok1 = rawTokens[i-2].str
|
||||
tok2 = rawTokens[i-1].str
|
||||
tok3 = rawTokens[i-0].str
|
||||
if tok3 == '}':
|
||||
arrayInit = False
|
||||
elif tok1 == ']' and tok2 == '=' and tok3 == '{':
|
||||
arrayInit = True
|
||||
elif arrayInit and (tok1 in [',', '{']) and tok2.startswith('"') and tok3.startswith('"'):
|
||||
elif arrayInit and (tok1 in [',', '{']) and isStringLiteral(tok2) and isStringLiteral(tok3):
|
||||
if tok1 == '{':
|
||||
i2 = i + 1
|
||||
while i2 < len(data.rawTokens) and data.rawTokens[i2].str not in [',', '}']:
|
||||
while i2 < len(rawTokens) and rawTokens[i2].str not in [',', '}']:
|
||||
i2 = i2 + 1
|
||||
if i2 >= len(data.rawTokens) or data.rawTokens[i2].str != ',':
|
||||
if i2 >= len(rawTokens) or rawTokens[i2].str != ',':
|
||||
continue
|
||||
reportError(data.rawTokens[i], 'style', 'string concatenation', 'stringConcatInArrayInit')
|
||||
if i + 2 < len(rawTokens) and isStringLiteral(rawTokens[i+1].str) and isStringLiteral(rawTokens[i+2].str):
|
||||
continue
|
||||
reportError(rawTokens[i], 'style', 'string concatenation', 'stringConcatInArrayInit')
|
||||
|
||||
for arg in sys.argv[1:]:
|
||||
if arg == '-verify':
|
||||
|
|
|
@ -3,3 +3,16 @@
|
|||
|
||||
const char *a[] = {"a" "b"};
|
||||
const char *b[] = {"a","b" "c"}; // stringConcatInArrayInit
|
||||
const char *c[] = {
|
||||
"a\n"
|
||||
"a\n"
|
||||
"a\n"
|
||||
"a\n"
|
||||
"a\n"
|
||||
,
|
||||
"b\n"
|
||||
"b\n"
|
||||
"b\n"
|
||||
"b\n"
|
||||
"b\n"
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue