annotate Tools/compiler/compile.py @ 79675:c0a2294de787 2.7

Issue #16199: Backport 2to3 typo fix from 3.2.
author Chris Jerdonek <chris.jerdonek@gmail.com>
date Thu, 11 Oct 2012 16:15:46 -0700
parents c3a096bfbd6b
children 6b18a095c2e7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11929
9d8f47f8447f compiler command-line interface moved here from compiler.pycodegen
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
1 import sys
9d8f47f8447f compiler command-line interface moved here from compiler.pycodegen
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
2 import getopt
9d8f47f8447f compiler command-line interface moved here from compiler.pycodegen
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
3
19947
3f1922990903 Track changes to compiler API
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 19941
diff changeset
4 from compiler import compileFile, visitor
11929
9d8f47f8447f compiler command-line interface moved here from compiler.pycodegen
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
5
19941
0d535c86be5f Add -p option to invoke Python profiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 19505
diff changeset
6 import profile
19505
fefe95319f24 Add -c option to continue if one file has a SyntaxError
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 15206
diff changeset
7
11929
9d8f47f8447f compiler command-line interface moved here from compiler.pycodegen
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
8 def main():
9d8f47f8447f compiler command-line interface moved here from compiler.pycodegen
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
9 VERBOSE = 0
15206
c94f1c776153 add -d option that dumps entire AST before compiling
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 12562
diff changeset
10 DISPLAY = 0
19941
0d535c86be5f Add -p option to invoke Python profiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 19505
diff changeset
11 PROFILE = 0
19505
fefe95319f24 Add -c option to continue if one file has a SyntaxError
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 15206
diff changeset
12 CONTINUE = 0
19941
0d535c86be5f Add -p option to invoke Python profiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 19505
diff changeset
13 opts, args = getopt.getopt(sys.argv[1:], 'vqdcp')
11929
9d8f47f8447f compiler command-line interface moved here from compiler.pycodegen
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
14 for k, v in opts:
9d8f47f8447f compiler command-line interface moved here from compiler.pycodegen
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
15 if k == '-v':
9d8f47f8447f compiler command-line interface moved here from compiler.pycodegen
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
16 VERBOSE = 1
9d8f47f8447f compiler command-line interface moved here from compiler.pycodegen
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
17 visitor.ASTVisitor.VERBOSE = visitor.ASTVisitor.VERBOSE + 1
9d8f47f8447f compiler command-line interface moved here from compiler.pycodegen
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
18 if k == '-q':
12562
7b0e0b5867e2 patches from Mark Hammond
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 11929
diff changeset
19 if sys.platform[:3]=="win":
7b0e0b5867e2 patches from Mark Hammond
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 11929
diff changeset
20 f = open('nul', 'wb') # /dev/null fails on Windows...
7b0e0b5867e2 patches from Mark Hammond
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 11929
diff changeset
21 else:
7b0e0b5867e2 patches from Mark Hammond
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 11929
diff changeset
22 f = open('/dev/null', 'wb')
11929
9d8f47f8447f compiler command-line interface moved here from compiler.pycodegen
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
23 sys.stdout = f
15206
c94f1c776153 add -d option that dumps entire AST before compiling
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 12562
diff changeset
24 if k == '-d':
c94f1c776153 add -d option that dumps entire AST before compiling
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 12562
diff changeset
25 DISPLAY = 1
19505
fefe95319f24 Add -c option to continue if one file has a SyntaxError
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 15206
diff changeset
26 if k == '-c':
fefe95319f24 Add -c option to continue if one file has a SyntaxError
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 15206
diff changeset
27 CONTINUE = 1
19941
0d535c86be5f Add -p option to invoke Python profiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 19505
diff changeset
28 if k == '-p':
0d535c86be5f Add -p option to invoke Python profiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 19505
diff changeset
29 PROFILE = 1
11929
9d8f47f8447f compiler command-line interface moved here from compiler.pycodegen
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
30 if not args:
9d8f47f8447f compiler command-line interface moved here from compiler.pycodegen
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
31 print "no files to compile"
9d8f47f8447f compiler command-line interface moved here from compiler.pycodegen
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
32 else:
9d8f47f8447f compiler command-line interface moved here from compiler.pycodegen
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
33 for filename in args:
9d8f47f8447f compiler command-line interface moved here from compiler.pycodegen
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
34 if VERBOSE:
9d8f47f8447f compiler command-line interface moved here from compiler.pycodegen
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
35 print filename
19505
fefe95319f24 Add -c option to continue if one file has a SyntaxError
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 15206
diff changeset
36 try:
19941
0d535c86be5f Add -p option to invoke Python profiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 19505
diff changeset
37 if PROFILE:
31515
71a294bd7950 Replace backticks with repr() or "%r"
Walter Dörwald <walter@livinglogic.de>
parents: 19947
diff changeset
38 profile.run('compileFile(%r, %r)' % (filename, DISPLAY),
19941
0d535c86be5f Add -p option to invoke Python profiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 19505
diff changeset
39 filename + ".prof")
0d535c86be5f Add -p option to invoke Python profiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 19505
diff changeset
40 else:
19947
3f1922990903 Track changes to compiler API
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 19941
diff changeset
41 compileFile(filename, DISPLAY)
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 31515
diff changeset
42
19505
fefe95319f24 Add -c option to continue if one file has a SyntaxError
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 15206
diff changeset
43 except SyntaxError, err:
fefe95319f24 Add -c option to continue if one file has a SyntaxError
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 15206
diff changeset
44 print err
19947
3f1922990903 Track changes to compiler API
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 19941
diff changeset
45 if err.lineno is not None:
3f1922990903 Track changes to compiler API
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 19941
diff changeset
46 print err.lineno
19505
fefe95319f24 Add -c option to continue if one file has a SyntaxError
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 15206
diff changeset
47 if not CONTINUE:
fefe95319f24 Add -c option to continue if one file has a SyntaxError
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 15206
diff changeset
48 sys.exit(-1)
11929
9d8f47f8447f compiler command-line interface moved here from compiler.pycodegen
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
49
9d8f47f8447f compiler command-line interface moved here from compiler.pycodegen
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
50 if __name__ == "__main__":
9d8f47f8447f compiler command-line interface moved here from compiler.pycodegen
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
51 main()