From c70e4632f75b452c8be4ad4de6cd75d5197f02ff Mon Sep 17 00:00:00 2001 From: Isaac Gutekunst Date: Thu, 7 Feb 2013 21:49:53 -0500 Subject: [PATCH] Updated to work with python 3 --- preprocessor.py | 26 +++++++++++++------------- test.py | 6 +++--- tpypp.py | 4 ++-- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/preprocessor.py b/preprocessor.py index 16a843d..6ffc793 100644 --- a/preprocessor.py +++ b/preprocessor.py @@ -21,13 +21,13 @@ def parseFunctionText(s): def parseFunction(s, linenumber): parsed = re.search(functionRegex, s) name, args, text = parsed.group(1), parsed.group(2).split(","), parsed.group(3) - if verbose: print ' parsed function ' + name + ' -> ' + str(args) + if verbose: print(' parsed function ' + name + ' -> ' + str(args)) functions[name] = args, parseFunctionText(text) def parseDefinition(s, linenumber): parsed = re.search(definitionRegex, s) name, value = parsed.group(1), parsed.group(2) - if verbose: print ' parsed definition ' + name + ' -> ' + value + if verbose: print(' parsed definition ' + name + ' -> ' + value) definitions[name] = value def parseFunctionCall(s): @@ -64,21 +64,21 @@ def transformFile(inputFilename, flagVerbose = False): def preprocessLine(s, linenumber): # if, else, endif block - global preprocessorState + global preprocessorState, verbose modified = preprocessorState if re.match(ifDefRegex, s) != None: if preprocessorState != 'initial': - print str(linenumber) + ': nested #ifdef is not supported!' + print(str(linenumber) + ': nested #ifdef is not supported!') sys.exit(-1) keyword = re.search(ifDefRegex, s).group(1) if keyword in definitions: preprocessorState = 'ifdef_true' else: preprocessorState = 'ifdef_false' - elif re.match(ifNDefReges, s) != None: + elif re.match(ifNDefRegex, s) != None: if preprocessorState != 'initial': - print str(linenumber) + ": nested #ifndef is not supported!" - keyword = re.search(ifNdefReges, s).group(1) + print(str(linenumber) + ": nested #ifndef is not supported!") + keyword = re.search(ifNdefRegex, s).group(1) if keyword not in definitions: preprocessorState = "ifdef_true" else: @@ -89,17 +89,17 @@ def preprocessLine(s, linenumber): elif preprocessorState == 'ifdef_true': preprocessorState = 'else_false' else: - print str(linenumber) + ': invalid #else statement' + print(str(linenumber) + ': invalid #else statement') sys.exit(-1) return None elif re.match(endifDefRegex, s) != None: if preprocessorState == 'initial': - print 'invalid #endif statement at line ' + str(linenumber) + print('invalid #endif statement at line ' + str(linenumber)) sys.exit(-1) preprocessorState = 'initial' if preprocessorState != modified: - if verbose: print ' ' + preprocessorState + ': \t' + s.rstrip() + if verbose: print(' ' + preprocessorState + ': \t' + s.rstrip()) return None if re.match(includeRegex, s) != None: @@ -112,7 +112,7 @@ def preprocessLine(s, linenumber): return None # definition expansion - for name, value in definitions.items(): + for name, value in list(definitions.items()): if name in s: s = s.replace(name, value) @@ -121,10 +121,10 @@ def preprocessLine(s, linenumber): linename, lineargs = parseFunctionCall(s) verbose = True if linename in functions: - if verbose: print ' matched ' + linename + str(lineargs) + if verbose: print(' matched ' + linename + str(lineargs)) args, text = functions[linename] if len(args) != len(lineargs): - print 'error: call to ' + linename + ' needs ' + str(len(args)) + ' arguments' + print('error: call to ' + linename + ' needs ' + str(len(args)) + ' arguments') sys.exit(-1) for i, a in enumerate(args): text = text.replace(a, lineargs[i]) diff --git a/test.py b/test.py index 0182215..1148b40 100755 --- a/test.py +++ b/test.py @@ -16,16 +16,16 @@ def checkFile(A, B): files = [x for x in os.listdir(subdirectory) if not x.endswith(expectedSuffix)] if len(files) == 0: - print 'no tests found' + print('no tests found') for i, filename in enumerate(files): pair = (subdirectory + filename, subdirectory + filename + outputSuffix) preprocessor.preprocessFile(*pair) checkPair = (subdirectory + filename + outputSuffix, subdirectory + filename + expectedSuffix) if checkFile(*checkPair) != True: - print 'check failed for ' + str(checkPair) + print('check failed for ' + str(checkPair)) sys.exit(-1) - print 'checked ' + str(i + 1) + ' of ' + str(len(files)) + ': ' + str(pair[0]) + print('checked ' + str(i + 1) + ' of ' + str(len(files)) + ': ' + str(pair[0])) for p in [x for x in os.listdir(subdirectory) if x.endswith('.p')]: os.remove(subdirectory + p) diff --git a/tpypp.py b/tpypp.py index 54c3e06..c6f02c6 100755 --- a/tpypp.py +++ b/tpypp.py @@ -20,10 +20,10 @@ pass_verbose = False if not 2 <= len(sys.argv) <= 4: - print helpstring + print(helpstring) sys.exit(-1) if len(sys.argv) == 3 and sys.argv[1] == sys.argv[2]: - print 'input file cannot be same as output file' + print('input file cannot be same as output file') sys.exit(-1) if (len(sys.argv) == 3 and sys.argv[2] == '--v') or (len(sys.argv) == 4 and sys.argv[3] == '--v'): pass_verbose = True