The only Python 3 errors here were the use of print. The rest of the changes make it so we can check this file with flake8.
Signed-off-by: Russell Bryant <russ...@ovn.org> --- Makefile.am | 2 +- build-aux/check-structs | 30 ++++++++++++++++++++++++------ 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/Makefile.am b/Makefile.am index 4ca5e9c..d53353d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -142,7 +142,7 @@ SUFFIXES = check_DATA = check_SCRIPTS = pkgconfig_DATA = -FLAKE8_PYFILES = +FLAKE8_PYFILES = build-aux/check-structs scriptsdir = $(pkgdatadir)/scripts completiondir = $(sysconfdir)/bash_completion.d diff --git a/build-aux/check-structs b/build-aux/check-structs index f79f235..217f738 100755 --- a/build-aux/check-structs +++ b/build-aux/check-structs @@ -1,5 +1,7 @@ #! /usr/bin/python +from __future__ import print_function + import os.path import sys import re @@ -26,6 +28,8 @@ includePath = '' inComment = False inDirective = False inputStack = [] + + def getToken(): global token global line @@ -78,37 +82,45 @@ def getToken(): if inputStack: fileName, inputFile, lineNumber = inputStack.pop() continue - if token == None: + if token is None: fatal("unexpected end of input") token = None return False break - + + def fatal(msg): - sys.stderr.write("%s:%d: error at \"%s\": %s\n" % (fileName, lineNumber, token, msg)) + sys.stderr.write("%s:%d: error at \"%s\": %s\n" % + (fileName, lineNumber, token, msg)) sys.exit(1) - + + def warn(msg): global anyWarnings anyWarnings = True sys.stderr.write("%s:%d: warning: %s\n" % (fileName, lineNumber, msg)) + def skipDirective(): getToken() while token != '$': getToken() + def isId(s): return re.match(idRe + "$", s) != None + def forceId(): if not isId(token): fatal("identifier expected") + def forceInteger(): if not re.match('[0-9]+$', token): fatal("integer expected") + def match(t): if token == t: getToken() @@ -116,10 +128,12 @@ def match(t): else: return False + def forceMatch(t): if not match(t): fatal("%s expected" % t) + def parseTaggedName(): assert token in ('struct', 'union') name = token @@ -129,6 +143,7 @@ def parseTaggedName(): getToken() return name + def parseTypeName(): if token in ('struct', 'union'): name = parseTaggedName() @@ -143,6 +158,7 @@ def parseTypeName(): else: fatal("unknown type \"%s\"" % name) + def parseStruct(): isStruct = token == 'struct' structName = parseTaggedName() @@ -203,6 +219,7 @@ def parseStruct(): types[structName] = {"size": size, "alignment": alignment} return structName + def checkStructs(): if len(sys.argv) < 2: sys.stderr.write("at least one non-option argument required; " @@ -211,7 +228,7 @@ def checkStructs(): if '--help' in sys.argv: argv0 = os.path.basename(sys.argv[0]) - print '''\ + print('''\ %(argv0)s, for checking struct and struct member alignment usage: %(argv0)s -Ipath HEADER [HEADER]... @@ -226,7 +243,7 @@ assertions using OFP_ASSERT. This program is specialized for reading Open vSwitch's OpenFlow header files. It will not work on arbitrary header files without extensions.\ -''' % {"argv0": argv0} +''' % {"argv0": argv0}) sys.exit(0) global fileName @@ -287,5 +304,6 @@ files. It will not work on arbitrary header files without extensions.\ if anyWarnings: sys.exit(1) + if __name__ == '__main__': checkStructs() -- 2.5.0 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev