diff options
author | Guido van Rossum <guido@python.org> | 2007-05-07 22:24:25 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2007-05-07 22:24:25 (GMT) |
commit | 805365ee39298f93e433e19ae0dd87c6f782145b (patch) | |
tree | ae8f8a3c315b49cfb2e7926d4b7e56f64c68b21c /Parser/asdl.py | |
parent | 598d98a7e8981e650e803e41e884ffc905b2311e (diff) | |
download | cpython-805365ee39298f93e433e19ae0dd87c6f782145b.zip cpython-805365ee39298f93e433e19ae0dd87c6f782145b.tar.gz cpython-805365ee39298f93e433e19ae0dd87c6f782145b.tar.bz2 |
Merged revisions 55007-55179 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
........
r55077 | guido.van.rossum | 2007-05-02 11:54:37 -0700 (Wed, 02 May 2007) | 2 lines
Use the new print syntax, at least.
........
r55142 | fred.drake | 2007-05-04 21:27:30 -0700 (Fri, 04 May 2007) | 1 line
remove old cruftiness
........
r55143 | fred.drake | 2007-05-04 21:52:16 -0700 (Fri, 04 May 2007) | 1 line
make this work with the new Python
........
r55162 | neal.norwitz | 2007-05-06 22:29:18 -0700 (Sun, 06 May 2007) | 1 line
Get asdl code gen working with Python 2.3. Should continue to work with 3.0
........
r55164 | neal.norwitz | 2007-05-07 00:00:38 -0700 (Mon, 07 May 2007) | 1 line
Verify checkins to p3yk (sic) branch go to 3000 list.
........
r55166 | neal.norwitz | 2007-05-07 00:12:35 -0700 (Mon, 07 May 2007) | 1 line
Fix this test so it runs again by importing warnings_test properly.
........
r55167 | neal.norwitz | 2007-05-07 01:03:22 -0700 (Mon, 07 May 2007) | 8 lines
So long xrange. range() now supports values that are outside
-sys.maxint to sys.maxint. floats raise a TypeError.
This has been sitting for a long time. It probably has some problems and
needs cleanup. Objects/rangeobject.c now uses 4-space indents since
it is almost completely new.
........
r55171 | guido.van.rossum | 2007-05-07 10:21:26 -0700 (Mon, 07 May 2007) | 4 lines
Fix two tests that were previously depending on significant spaces
at the end of a line (and before that on Python 2.x print behavior
that has no exact equivalent in 3.0).
........
Diffstat (limited to 'Parser/asdl.py')
-rw-r--r-- | Parser/asdl.py | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/Parser/asdl.py b/Parser/asdl.py index 08dc848..b1afd0f 100644 --- a/Parser/asdl.py +++ b/Parser/asdl.py @@ -13,10 +13,15 @@ Changes for Python: Add support for module versions #__metaclass__ = type import os +import sys import traceback import spark +def output(string): + sys.stdout.write(string + "\n") + + class Token: # spark seems to dispatch in the parser based on a token's # type attribute @@ -45,7 +50,7 @@ class String(Token): self.value = value self.lineno = lineno -class ASDLSyntaxError: +class ASDLSyntaxError(Exception): def __init__(self, lineno, token=None, msg=None): self.lineno = lineno @@ -128,7 +133,7 @@ class ASDLParser(spark.GenericParser, object): "version ::= Id String" if version.value != "version": raise ASDLSyntaxError(version.lineno, - msg="expected 'version', found %" % version) + msg="expected 'version', found %" % version) return V def p_definition_0(self, (definition,)): @@ -306,9 +311,9 @@ class VisitorBase(object): return try: meth(object, *args) - except Exception, err: - print "Error visiting", repr(object) - print err + except Exception: + output("Error visiting", repr(object)) + output(sys.exc_info()[1]) traceback.print_exc() # XXX hack if hasattr(self, 'file'): @@ -353,8 +358,8 @@ class Check(VisitorBase): if conflict is None: self.cons[key] = name else: - print "Redefinition of constructor %s" % key - print "Defined in %s and %s" % (conflict, name) + output("Redefinition of constructor %s" % key) + output("Defined in %s and %s" % (conflict, name)) self.errors += 1 for f in cons.fields: self.visit(f, key) @@ -376,7 +381,7 @@ def check(mod): if t not in mod.types and not t in builtin_types: v.errors += 1 uses = ", ".join(v.types[t]) - print "Undefined type %s, used in %s" % (t, uses) + output("Undefined type %s, used in %s" % (t, uses)) return not v.errors @@ -388,10 +393,10 @@ def parse(file): tokens = scanner.tokenize(buf) try: return parser.parse(tokens) - except ASDLSyntaxError, err: - print err + except ASDLSyntaxError: + output(sys.exc_info()[1]) lines = buf.split("\n") - print lines[err.lineno - 1] # lines starts at 0, files at 1 + output(lines[err.lineno - 1]) # lines starts at 0, files at 1 if __name__ == "__main__": import glob @@ -404,12 +409,12 @@ if __name__ == "__main__": files = glob.glob(testdir + "/*.asdl") for file in files: - print file + output(file) mod = parse(file) - print "module", mod.name - print len(mod.dfns), "definitions" + output("module", mod.name) + output(len(mod.dfns), "definitions") if not check(mod): - print "Check failed" + output("Check failed") else: for dfn in mod.dfns: - print dfn.type + output(dfn.type) |