2222import glob
2323import argparse
2424
25+
2526class MatchCompiler :
2627 def __init__ (self , verify_mode = False ):
2728 self ._verifyMode = verify_mode
@@ -105,7 +106,7 @@ def _compileCmd(self, tok):
105106 return 'tok->isName()'
106107 elif tok == '%varid%' :
107108 return '(tok->isName() && tok->varId()==varid)'
108- elif (len (tok )> 2 ) and (tok [0 ]== "%" ):
109+ elif (len (tok ) > 2 ) and (tok [0 ] == "%" ):
109110 print ("unhandled:" + tok )
110111
111112 return '(tok->str()==' + self ._insertMatchStr (tok ) + ')/* ' + tok + ' */'
@@ -136,7 +137,7 @@ def _compilePattern(self, pattern, nr, varid, isFindMatch=False):
136137 gotoNextToken = ' tok = tok->next();\n '
137138
138139 # if varid is provided, check that it's non-zero on first use
139- if varid and tok .find ('%varid%' ) != - 1 and checked_varid == False :
140+ if varid and tok .find ('%varid%' ) != - 1 and checked_varid is False :
140141 ret += ' if (varid==0U)\n '
141142 ret += ' throw InternalError(tok, "Internal error. Token::Match called with varid 0. Please report this to Cppcheck developers");\n '
142143 checked_varid = True
@@ -313,7 +314,7 @@ def _replaceSpecificTokenMatch(self, is_simplematch, line, start_pos, end_pos, p
313314 # Compile function or use previously compiled one
314315 patternNumber = self ._lookupMatchFunctionId (pattern , None , varId , False )
315316
316- if patternNumber == None :
317+ if patternNumber is None :
317318 patternNumber = len (self ._rawMatchFunctions ) + 1
318319 self ._insertMatchFunctionId (patternNumber , pattern , None , varId , False )
319320 self ._rawMatchFunctions .append (self ._compilePattern (pattern , patternNumber , varId ))
@@ -340,10 +341,10 @@ def _replaceTokenMatch(self, line):
340341 break
341342
342343 res = self .parseMatch (line , pos1 )
343- if res == None :
344+ if res is None :
344345 break
345346
346- assert (len (res )== 3 or len (res )== 4 ) # assert that Token::Match has either 2 or 3 arguments
347+ assert (len (res ) == 3 or len (res ) == 4 ) # assert that Token::Match has either 2 or 3 arguments
347348
348349 end_pos = len (res [0 ])
349350 tok = res [1 ]
@@ -353,7 +354,7 @@ def _replaceTokenMatch(self, line):
353354 varId = res [3 ]
354355
355356 res = re .match (r'\s*"([^"]*)"\s*$' , raw_pattern )
356- if res == None :
357+ if res is None :
357358 break # Non-const pattern - bailout
358359
359360 pattern = res .group (1 )
@@ -410,7 +411,7 @@ def _replaceSpecificFindTokenMatch(self, is_findsimplematch, line, start_pos, en
410411 # Compile function or use previously compiled one
411412 findMatchNumber = self ._lookupMatchFunctionId (pattern , endToken , varId , True )
412413
413- if findMatchNumber == None :
414+ if findMatchNumber is None :
414415 findMatchNumber = len (self ._rawMatchFunctions ) + 1
415416 self ._insertMatchFunctionId (findMatchNumber , pattern , endToken , varId , True )
416417 self ._rawMatchFunctions .append (self ._compileFindPattern (pattern , findMatchNumber , endToken , varId ))
@@ -438,10 +439,10 @@ def _replaceTokenFindMatch(self, line):
438439 break
439440
440441 res = self .parseMatch (line , pos1 )
441- if res == None :
442+ if res is None :
442443 break
443444
444- assert (len (res )>= 3 or len (res ) < 6 ) # assert that Token::find(simple)match has either 2, 3 or four arguments
445+ assert (len (res ) >= 3 or len (res ) < 6 ) # assert that Token::find(simple)match has either 2, 3 or four arguments
445446
446447 g0 = res [0 ]
447448 tok = res [1 ]
@@ -462,16 +463,16 @@ def _replaceTokenFindMatch(self, line):
462463 # Token *findmatch(const Token *tok, const char pattern[], unsigned int varId = 0);
463464 # Token *findmatch(const Token *tok, const char pattern[], const Token *end, unsigned int varId = 0);
464465 endToken = None
465- if is_findsimplematch == True and len (res ) == 4 :
466+ if is_findsimplematch is True and len (res ) == 4 :
466467 endToken = res [3 ]
467- elif is_findsimplematch == False :
468+ elif is_findsimplematch is False :
468469 if varId and len (res ) == 5 :
469470 endToken = res [3 ]
470- elif varId == None and len (res ) == 4 :
471+ elif varId is None and len (res ) == 4 :
471472 endToken = res [3 ]
472473
473474 res = re .match (r'\s*"([^"]*)"\s*$' , pattern )
474- if res == None :
475+ if res is None :
475476 break # Non-const pattern - bailout
476477
477478 pattern = res .group (1 )
@@ -488,7 +489,7 @@ def _replaceCStrings(self, line):
488489 break
489490
490491 res = self ._parseStringComparison (line , match .start ())
491- if res == None :
492+ if res is None :
492493 break
493494
494495 startPos = res [0 ]
@@ -538,6 +539,7 @@ def convertFile(self, srcname, destname):
538539 fout .write (header + stringList + strFunctions + code )
539540 fout .close ()
540541
542+
541543def main ():
542544 # Main program
543545 build_dir = 'build'
@@ -556,7 +558,7 @@ def main():
556558 # Argument handling
557559 parser = argparse .ArgumentParser (description = 'Compile Token::Match() calls into native C++ code' )
558560 parser .add_argument ('--verify' , action = 'store_true' , default = False ,
559- help = 'verify compiled matches against on-the-fly parser. Slow!' )
561+ help = 'verify compiled matches against on-the-fly parser. Slow!' )
560562 args = parser .parse_args ()
561563
562564 mc = MatchCompiler (verify_mode = args .verify )
0 commit comments