]> granicus.if.org Git - python/commit
compiler.transformer: correct lineno attribute when possible
authorJeremy Hylton <jeremy@alum.mit.edu>
Tue, 7 Sep 2004 15:28:01 +0000 (15:28 +0000)
committerJeremy Hylton <jeremy@alum.mit.edu>
Tue, 7 Sep 2004 15:28:01 +0000 (15:28 +0000)
commit566d934745378df72fbbf7d3f834e7d08f7e42d1
tree495591bd3b0dfcc198f36c5a904dae9cac617036
parent2ad68e69b975b1714d3da1cd5e419c8294a5f2c1
compiler.transformer: correct lineno attribute when possible
SF patch #1015989

The basic idea of this patch is to compute lineno attributes for all AST nodes.  The actual
implementation lead to a lot of restructing and code cleanup.

The generated AST nodes now have an optional lineno argument to constructor.  Remove the
top-level asList(), since it didn't seem to serve any purpose.  Add an __iter__ to ast nodes.
Use isinstance() instead of explicit type tests.

Change transformer to use the new lineno attribute, which replaces three lines of code with one.
Use universal newlines so that we can get rid of special-case code for line endings.  Use
lookup_node() in a few more frequently called, but simple com_xxx methods().  Change string
exception to class exception.
Lib/compiler/ast.py
Lib/compiler/transformer.py
Lib/test/test_compiler.py
Lib/test/test_transformer.py
Misc/ACKS
Tools/compiler/astgen.py