Mercurial > cpython-lru_cache-weakref
annotate Tools/parser/unparse.py @ 81343:3a7cd8efc19f
#16852: merge with 3.3.
| author | Ezio Melotti <ezio.melotti@gmail.com> |
|---|---|
| date | Thu, 10 Jan 2013 03:29:45 +0200 |
| parents | 03f92a9f0875 |
| children | 7c5c678e4164 |
| rev | line source |
|---|---|
|
36723
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
1 "Usage: unparse.py <path to source file>" |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
2 import sys |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
3 import ast |
|
62621
a4e1c56be532
unparse.py: respect coding cookie in input files
Mark Dickinson <dickinsm@gmail.com>
parents:
62614
diff
changeset
|
4 import tokenize |
|
42304
7d16b42fcdbd
Run 2to3 over the Demo/ directory to shut up parse errors from 2to3 about lingering print statements.
Collin Winter <collinw@gmail.com>
parents:
41554
diff
changeset
|
5 import io |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
6 import os |
|
36723
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
7 |
|
62651
043ef04f64d2
Unparse infinite imaginary literals correctly. Add some more numeric tests.
Mark Dickinson <dickinsm@gmail.com>
parents:
62650
diff
changeset
|
8 # Large float and imaginary literals get turned into infinities in the AST. |
|
043ef04f64d2
Unparse infinite imaginary literals correctly. Add some more numeric tests.
Mark Dickinson <dickinsm@gmail.com>
parents:
62650
diff
changeset
|
9 # We unparse those infinities to INFSTR. |
|
043ef04f64d2
Unparse infinite imaginary literals correctly. Add some more numeric tests.
Mark Dickinson <dickinsm@gmail.com>
parents:
62650
diff
changeset
|
10 INFSTR = "1e" + repr(sys.float_info.max_10_exp + 1) |
|
043ef04f64d2
Unparse infinite imaginary literals correctly. Add some more numeric tests.
Mark Dickinson <dickinsm@gmail.com>
parents:
62650
diff
changeset
|
11 |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
12 def interleave(inter, f, seq): |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
13 """Call f on each item in seq, calling inter() in between. |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
14 """ |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
15 seq = iter(seq) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
16 try: |
|
42304
7d16b42fcdbd
Run 2to3 over the Demo/ directory to shut up parse errors from 2to3 about lingering print statements.
Collin Winter <collinw@gmail.com>
parents:
41554
diff
changeset
|
17 f(next(seq)) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
18 except StopIteration: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
19 pass |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
20 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
21 for x in seq: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
22 inter() |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
23 f(x) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
24 |
|
36723
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
25 class Unparser: |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
26 """Methods in this class recursively traverse an AST and |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
27 output source code for the abstract syntax; original formatting |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
28 is disregarded. """ |
|
36723
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
29 |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
30 def __init__(self, tree, file = sys.stdout): |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
31 """Unparser(tree, file=sys.stdout) -> None. |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
32 Print the source for tree to file.""" |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
33 self.f = file |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
34 self._indent = 0 |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
35 self.dispatch(tree) |
|
42304
7d16b42fcdbd
Run 2to3 over the Demo/ directory to shut up parse errors from 2to3 about lingering print statements.
Collin Winter <collinw@gmail.com>
parents:
41554
diff
changeset
|
36 print("", file=self.f) |
|
36723
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
37 self.f.flush() |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
38 |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
39 def fill(self, text = ""): |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
40 "Indent a piece of text, according to the current indentation level" |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
41 self.f.write("\n"+" "*self._indent + text) |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
42 |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
43 def write(self, text): |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
44 "Append a piece of text to the current line." |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
45 self.f.write(text) |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
46 |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
47 def enter(self): |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
48 "Print ':', and increase the indentation." |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
49 self.write(":") |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
50 self._indent += 1 |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
51 |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
52 def leave(self): |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
53 "Decrease the indentation level." |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
54 self._indent -= 1 |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
55 |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
56 def dispatch(self, tree): |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
57 "Dispatcher function, dispatching tree type T to method _T." |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
58 if isinstance(tree, list): |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
59 for t in tree: |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
60 self.dispatch(t) |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
61 return |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
62 meth = getattr(self, "_"+tree.__class__.__name__) |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
63 meth(tree) |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
64 |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
65 |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
66 ############### Unparsing methods ###################### |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
67 # There should be one method per concrete grammar type # |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
68 # Constructors should be grouped by sum type. Ideally, # |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
69 # this would follow the order in the grammar, but # |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
70 # currently doesn't. # |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
71 ######################################################## |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
72 |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
73 def _Module(self, tree): |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
74 for stmt in tree.body: |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
75 self.dispatch(stmt) |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
76 |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
77 # stmt |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
78 def _Expr(self, tree): |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
79 self.fill() |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
80 self.dispatch(tree.value) |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
81 |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
82 def _Import(self, t): |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
83 self.fill("import ") |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
84 interleave(lambda: self.write(", "), self.dispatch, t.names) |
|
36723
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
85 |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
86 def _ImportFrom(self, t): |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
87 self.fill("from ") |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
88 self.write("." * t.level) |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
89 if t.module: |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
90 self.write(t.module) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
91 self.write(" import ") |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
92 interleave(lambda: self.write(", "), self.dispatch, t.names) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
93 |
|
36723
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
94 def _Assign(self, t): |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
95 self.fill() |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
96 for target in t.targets: |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
97 self.dispatch(target) |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
98 self.write(" = ") |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
99 self.dispatch(t.value) |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
100 |
|
36736
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
101 def _AugAssign(self, t): |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
102 self.fill() |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
103 self.dispatch(t.target) |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
104 self.write(" "+self.binop[t.op.__class__.__name__]+"= ") |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
105 self.dispatch(t.value) |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
106 |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
107 def _Return(self, t): |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
108 self.fill("return") |
|
36736
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
109 if t.value: |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
110 self.write(" ") |
|
36736
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
111 self.dispatch(t.value) |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
112 |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
113 def _Pass(self, t): |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
114 self.fill("pass") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
115 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
116 def _Break(self, t): |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
117 self.fill("break") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
118 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
119 def _Continue(self, t): |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
120 self.fill("continue") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
121 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
122 def _Delete(self, t): |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
123 self.fill("del ") |
|
62609
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
48771
diff
changeset
|
124 interleave(lambda: self.write(", "), self.dispatch, t.targets) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
125 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
126 def _Assert(self, t): |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
127 self.fill("assert ") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
128 self.dispatch(t.test) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
129 if t.msg: |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
130 self.write(", ") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
131 self.dispatch(t.msg) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
132 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
133 def _Global(self, t): |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
134 self.fill("global ") |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
135 interleave(lambda: self.write(", "), self.write, t.names) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
136 |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
137 def _Nonlocal(self, t): |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
138 self.fill("nonlocal ") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
139 interleave(lambda: self.write(", "), self.write, t.names) |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
140 |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
141 def _Yield(self, t): |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
142 self.write("(") |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
143 self.write("yield") |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
144 if t.value: |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
145 self.write(" ") |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
146 self.dispatch(t.value) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
147 self.write(")") |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
148 |
|
76803
89e928048903
Issue #14965: Bring Tools/parser/unparse.py up to date with the Python 3.3. Grammar.
Mark Dickinson <mdickinson@enthought.com>
parents:
76802
diff
changeset
|
149 def _YieldFrom(self, t): |
|
89e928048903
Issue #14965: Bring Tools/parser/unparse.py up to date with the Python 3.3. Grammar.
Mark Dickinson <mdickinson@enthought.com>
parents:
76802
diff
changeset
|
150 self.write("(") |
|
89e928048903
Issue #14965: Bring Tools/parser/unparse.py up to date with the Python 3.3. Grammar.
Mark Dickinson <mdickinson@enthought.com>
parents:
76802
diff
changeset
|
151 self.write("yield from") |
|
89e928048903
Issue #14965: Bring Tools/parser/unparse.py up to date with the Python 3.3. Grammar.
Mark Dickinson <mdickinson@enthought.com>
parents:
76802
diff
changeset
|
152 if t.value: |
|
89e928048903
Issue #14965: Bring Tools/parser/unparse.py up to date with the Python 3.3. Grammar.
Mark Dickinson <mdickinson@enthought.com>
parents:
76802
diff
changeset
|
153 self.write(" ") |
|
89e928048903
Issue #14965: Bring Tools/parser/unparse.py up to date with the Python 3.3. Grammar.
Mark Dickinson <mdickinson@enthought.com>
parents:
76802
diff
changeset
|
154 self.dispatch(t.value) |
|
89e928048903
Issue #14965: Bring Tools/parser/unparse.py up to date with the Python 3.3. Grammar.
Mark Dickinson <mdickinson@enthought.com>
parents:
76802
diff
changeset
|
155 self.write(")") |
|
89e928048903
Issue #14965: Bring Tools/parser/unparse.py up to date with the Python 3.3. Grammar.
Mark Dickinson <mdickinson@enthought.com>
parents:
76802
diff
changeset
|
156 |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
157 def _Raise(self, t): |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
158 self.fill("raise") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
159 if not t.exc: |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
160 assert not t.cause |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
161 return |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
162 self.write(" ") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
163 self.dispatch(t.exc) |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
164 if t.cause: |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
165 self.write(" from ") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
166 self.dispatch(t.cause) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
167 |
|
76803
89e928048903
Issue #14965: Bring Tools/parser/unparse.py up to date with the Python 3.3. Grammar.
Mark Dickinson <mdickinson@enthought.com>
parents:
76802
diff
changeset
|
168 def _Try(self, t): |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
169 self.fill("try") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
170 self.enter() |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
171 self.dispatch(t.body) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
172 self.leave() |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
173 for ex in t.handlers: |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
174 self.dispatch(ex) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
175 if t.orelse: |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
176 self.fill("else") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
177 self.enter() |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
178 self.dispatch(t.orelse) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
179 self.leave() |
|
76803
89e928048903
Issue #14965: Bring Tools/parser/unparse.py up to date with the Python 3.3. Grammar.
Mark Dickinson <mdickinson@enthought.com>
parents:
76802
diff
changeset
|
180 if t.finalbody: |
|
89e928048903
Issue #14965: Bring Tools/parser/unparse.py up to date with the Python 3.3. Grammar.
Mark Dickinson <mdickinson@enthought.com>
parents:
76802
diff
changeset
|
181 self.fill("finally") |
|
62644
e6bb990ac9f6
Output try-except-finally statements where appropriate.
Mark Dickinson <dickinsm@gmail.com>
parents:
62643
diff
changeset
|
182 self.enter() |
|
76803
89e928048903
Issue #14965: Bring Tools/parser/unparse.py up to date with the Python 3.3. Grammar.
Mark Dickinson <mdickinson@enthought.com>
parents:
76802
diff
changeset
|
183 self.dispatch(t.finalbody) |
|
62644
e6bb990ac9f6
Output try-except-finally statements where appropriate.
Mark Dickinson <dickinsm@gmail.com>
parents:
62643
diff
changeset
|
184 self.leave() |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
185 |
|
48771
ea3d13cd7c1e
Merged revisions 65780,65782,65785,65809,65812,65834,65846,65859,65861 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
42304
diff
changeset
|
186 def _ExceptHandler(self, t): |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
187 self.fill("except") |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
188 if t.type: |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
189 self.write(" ") |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
190 self.dispatch(t.type) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
191 if t.name: |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
192 self.write(" as ") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
193 self.write(t.name) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
194 self.enter() |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
195 self.dispatch(t.body) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
196 self.leave() |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
197 |
|
36723
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
198 def _ClassDef(self, t): |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
199 self.write("\n") |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
200 for deco in t.decorator_list: |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
201 self.fill("@") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
202 self.dispatch(deco) |
|
36723
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
203 self.fill("class "+t.name) |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
204 self.write("(") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
205 comma = False |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
206 for e in t.bases: |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
207 if comma: self.write(", ") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
208 else: comma = True |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
209 self.dispatch(e) |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
210 for e in t.keywords: |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
211 if comma: self.write(", ") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
212 else: comma = True |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
213 self.dispatch(e) |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
214 if t.starargs: |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
215 if comma: self.write(", ") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
216 else: comma = True |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
217 self.write("*") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
218 self.dispatch(t.starargs) |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
219 if t.kwargs: |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
220 if comma: self.write(", ") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
221 else: comma = True |
|
62637
158166ef6f06
Fix typo in unparsing of a class definition.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
222 self.write("**") |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
223 self.dispatch(t.kwargs) |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
224 self.write(")") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
225 |
|
36723
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
226 self.enter() |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
227 self.dispatch(t.body) |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
228 self.leave() |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
229 |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
230 def _FunctionDef(self, t): |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
231 self.write("\n") |
|
48771
ea3d13cd7c1e
Merged revisions 65780,65782,65785,65809,65812,65834,65846,65859,65861 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
42304
diff
changeset
|
232 for deco in t.decorator_list: |
|
40450
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
233 self.fill("@") |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
234 self.dispatch(deco) |
|
36723
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
235 self.fill("def "+t.name + "(") |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
236 self.dispatch(t.args) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
237 self.write(")") |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
238 if t.returns: |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
239 self.write(" -> ") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
240 self.dispatch(t.returns) |
|
36723
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
241 self.enter() |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
242 self.dispatch(t.body) |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
243 self.leave() |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
244 |
|
36736
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
245 def _For(self, t): |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
246 self.fill("for ") |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
247 self.dispatch(t.target) |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
248 self.write(" in ") |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
249 self.dispatch(t.iter) |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
250 self.enter() |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
251 self.dispatch(t.body) |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
252 self.leave() |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
253 if t.orelse: |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
254 self.fill("else") |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
255 self.enter() |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
256 self.dispatch(t.orelse) |
|
62609
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
48771
diff
changeset
|
257 self.leave() |
|
36736
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
258 |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
259 def _If(self, t): |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
260 self.fill("if ") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
261 self.dispatch(t.test) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
262 self.enter() |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
263 self.dispatch(t.body) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
264 self.leave() |
|
62643
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
265 # collapse nested ifs into equivalent elifs. |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
266 while (t.orelse and len(t.orelse) == 1 and |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
267 isinstance(t.orelse[0], ast.If)): |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
268 t = t.orelse[0] |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
269 self.fill("elif ") |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
270 self.dispatch(t.test) |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
271 self.enter() |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
272 self.dispatch(t.body) |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
273 self.leave() |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
274 # final else |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
275 if t.orelse: |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
276 self.fill("else") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
277 self.enter() |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
278 self.dispatch(t.orelse) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
279 self.leave() |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
280 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
281 def _While(self, t): |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
282 self.fill("while ") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
283 self.dispatch(t.test) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
284 self.enter() |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
285 self.dispatch(t.body) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
286 self.leave() |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
287 if t.orelse: |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
288 self.fill("else") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
289 self.enter() |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
290 self.dispatch(t.orelse) |
|
62609
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
48771
diff
changeset
|
291 self.leave() |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
292 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
293 def _With(self, t): |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
294 self.fill("with ") |
|
76803
89e928048903
Issue #14965: Bring Tools/parser/unparse.py up to date with the Python 3.3. Grammar.
Mark Dickinson <mdickinson@enthought.com>
parents:
76802
diff
changeset
|
295 interleave(lambda: self.write(", "), self.dispatch, t.items) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
296 self.enter() |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
297 self.dispatch(t.body) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
298 self.leave() |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
299 |
|
36723
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
300 # expr |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
301 def _Bytes(self, t): |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
302 self.write(repr(t.s)) |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
303 |
|
36723
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
304 def _Str(self, tree): |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
305 self.write(repr(tree.s)) |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
306 |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
307 def _Name(self, t): |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
308 self.write(t.id) |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
309 |
|
80738
03f92a9f0875
create NameConstant AST class for None, True, and False literals (closes #16619)
Benjamin Peterson <benjamin@python.org>
parents:
77976
diff
changeset
|
310 def _NameConstant(self, t): |
|
03f92a9f0875
create NameConstant AST class for None, True, and False literals (closes #16619)
Benjamin Peterson <benjamin@python.org>
parents:
77976
diff
changeset
|
311 self.write(repr(t.value)) |
|
03f92a9f0875
create NameConstant AST class for None, True, and False literals (closes #16619)
Benjamin Peterson <benjamin@python.org>
parents:
77976
diff
changeset
|
312 |
|
36736
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
313 def _Num(self, t): |
|
62651
043ef04f64d2
Unparse infinite imaginary literals correctly. Add some more numeric tests.
Mark Dickinson <dickinsm@gmail.com>
parents:
62650
diff
changeset
|
314 # Substitute overflowing decimal literal for AST infinities. |
|
043ef04f64d2
Unparse infinite imaginary literals correctly. Add some more numeric tests.
Mark Dickinson <dickinsm@gmail.com>
parents:
62650
diff
changeset
|
315 self.write(repr(t.n).replace("inf", INFSTR)) |
|
36736
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
316 |
|
36723
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
317 def _List(self, t): |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
318 self.write("[") |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
319 interleave(lambda: self.write(", "), self.dispatch, t.elts) |
|
36723
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
320 self.write("]") |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
321 |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
322 def _ListComp(self, t): |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
323 self.write("[") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
324 self.dispatch(t.elt) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
325 for gen in t.generators: |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
326 self.dispatch(gen) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
327 self.write("]") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
328 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
329 def _GeneratorExp(self, t): |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
330 self.write("(") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
331 self.dispatch(t.elt) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
332 for gen in t.generators: |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
333 self.dispatch(gen) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
334 self.write(")") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
335 |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
336 def _SetComp(self, t): |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
337 self.write("{") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
338 self.dispatch(t.elt) |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
339 for gen in t.generators: |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
340 self.dispatch(gen) |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
341 self.write("}") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
342 |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
343 def _DictComp(self, t): |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
344 self.write("{") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
345 self.dispatch(t.key) |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
346 self.write(": ") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
347 self.dispatch(t.value) |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
348 for gen in t.generators: |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
349 self.dispatch(gen) |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
350 self.write("}") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
351 |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
352 def _comprehension(self, t): |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
353 self.write(" for ") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
354 self.dispatch(t.target) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
355 self.write(" in ") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
356 self.dispatch(t.iter) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
357 for if_clause in t.ifs: |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
358 self.write(" if ") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
359 self.dispatch(if_clause) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
360 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
361 def _IfExp(self, t): |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
362 self.write("(") |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
363 self.dispatch(t.body) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
364 self.write(" if ") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
365 self.dispatch(t.test) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
366 self.write(" else ") |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
367 self.dispatch(t.orelse) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
368 self.write(")") |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
369 |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
370 def _Set(self, t): |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
371 assert(t.elts) # should be at least one element |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
372 self.write("{") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
373 interleave(lambda: self.write(", "), self.dispatch, t.elts) |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
374 self.write("}") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
375 |
|
36736
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
376 def _Dict(self, t): |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
377 self.write("{") |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
378 def write_pair(pair): |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
379 (k, v) = pair |
|
36736
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
380 self.dispatch(k) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
381 self.write(": ") |
|
36736
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
382 self.dispatch(v) |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
383 interleave(lambda: self.write(", "), write_pair, zip(t.keys, t.values)) |
|
36736
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
384 self.write("}") |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
385 |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
386 def _Tuple(self, t): |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
387 self.write("(") |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
388 if len(t.elts) == 1: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
389 (elt,) = t.elts |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
390 self.dispatch(elt) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
391 self.write(",") |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
392 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
393 interleave(lambda: self.write(", "), self.dispatch, t.elts) |
|
36736
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
394 self.write(")") |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
395 |
|
36723
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
396 unop = {"Invert":"~", "Not": "not", "UAdd":"+", "USub":"-"} |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
397 def _UnaryOp(self, t): |
|
62609
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
48771
diff
changeset
|
398 self.write("(") |
|
36723
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
399 self.write(self.unop[t.op.__class__.__name__]) |
|
62609
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
48771
diff
changeset
|
400 self.write(" ") |
|
36723
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
401 self.dispatch(t.operand) |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
402 self.write(")") |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
403 |
|
36736
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
404 binop = { "Add":"+", "Sub":"-", "Mult":"*", "Div":"/", "Mod":"%", |
|
62609
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
48771
diff
changeset
|
405 "LShift":"<<", "RShift":">>", "BitOr":"|", "BitXor":"^", "BitAnd":"&", |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
406 "FloorDiv":"//", "Pow": "**"} |
|
36736
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
407 def _BinOp(self, t): |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
408 self.write("(") |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
409 self.dispatch(t.left) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
410 self.write(" " + self.binop[t.op.__class__.__name__] + " ") |
|
36736
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
411 self.dispatch(t.right) |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
412 self.write(")") |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
413 |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
414 cmpops = {"Eq":"==", "NotEq":"!=", "Lt":"<", "LtE":"<=", "Gt":">", "GtE":">=", |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
415 "Is":"is", "IsNot":"is not", "In":"in", "NotIn":"not in"} |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
416 def _Compare(self, t): |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
417 self.write("(") |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
418 self.dispatch(t.left) |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
419 for o, e in zip(t.ops, t.comparators): |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
420 self.write(" " + self.cmpops[o.__class__.__name__] + " ") |
|
36736
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
421 self.dispatch(e) |
|
62612
69f6d2130281
Merged revisions 82345 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
62609
diff
changeset
|
422 self.write(")") |
|
36736
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
423 |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
424 boolops = {ast.And: 'and', ast.Or: 'or'} |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
425 def _BoolOp(self, t): |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
426 self.write("(") |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
427 s = " %s " % self.boolops[t.op.__class__] |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
428 interleave(lambda: self.write(s), self.dispatch, t.values) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
429 self.write(")") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
430 |
|
36736
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
431 def _Attribute(self,t): |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
432 self.dispatch(t.value) |
|
62645
4fce25abfdd8
Better solution for attribute access on integer literals.
Mark Dickinson <dickinsm@gmail.com>
parents:
62644
diff
changeset
|
433 # Special case: 3.__abs__() is a syntax error, so if t.value |
|
4fce25abfdd8
Better solution for attribute access on integer literals.
Mark Dickinson <dickinsm@gmail.com>
parents:
62644
diff
changeset
|
434 # is an integer literal then we need to either parenthesize |
|
4fce25abfdd8
Better solution for attribute access on integer literals.
Mark Dickinson <dickinsm@gmail.com>
parents:
62644
diff
changeset
|
435 # it or add an extra space to get 3 .__abs__(). |
|
4fce25abfdd8
Better solution for attribute access on integer literals.
Mark Dickinson <dickinsm@gmail.com>
parents:
62644
diff
changeset
|
436 if isinstance(t.value, ast.Num) and isinstance(t.value.n, int): |
|
4fce25abfdd8
Better solution for attribute access on integer literals.
Mark Dickinson <dickinsm@gmail.com>
parents:
62644
diff
changeset
|
437 self.write(" ") |
|
36736
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
438 self.write(".") |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
439 self.write(t.attr) |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
440 |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
441 def _Call(self, t): |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
442 self.dispatch(t.func) |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
443 self.write("(") |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
444 comma = False |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
445 for e in t.args: |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
446 if comma: self.write(", ") |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
447 else: comma = True |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
448 self.dispatch(e) |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
449 for e in t.keywords: |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
450 if comma: self.write(", ") |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
451 else: comma = True |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
452 self.dispatch(e) |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
453 if t.starargs: |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
454 if comma: self.write(", ") |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
455 else: comma = True |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
456 self.write("*") |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
457 self.dispatch(t.starargs) |
|
36736
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
458 if t.kwargs: |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
459 if comma: self.write(", ") |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
460 else: comma = True |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
461 self.write("**") |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
462 self.dispatch(t.kwargs) |
|
36736
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
463 self.write(")") |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
464 |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
465 def _Subscript(self, t): |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
466 self.dispatch(t.value) |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
467 self.write("[") |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
468 self.dispatch(t.slice) |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
469 self.write("]") |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
470 |
|
76802
c80576303892
Issue #14965: Fix missing support for starred assignments in Tools/parser/unparse.py.
Mark Dickinson <mdickinson@enthought.com>
parents:
67221
diff
changeset
|
471 def _Starred(self, t): |
|
c80576303892
Issue #14965: Fix missing support for starred assignments in Tools/parser/unparse.py.
Mark Dickinson <mdickinson@enthought.com>
parents:
67221
diff
changeset
|
472 self.write("*") |
|
c80576303892
Issue #14965: Fix missing support for starred assignments in Tools/parser/unparse.py.
Mark Dickinson <mdickinson@enthought.com>
parents:
67221
diff
changeset
|
473 self.dispatch(t.value) |
|
c80576303892
Issue #14965: Fix missing support for starred assignments in Tools/parser/unparse.py.
Mark Dickinson <mdickinson@enthought.com>
parents:
67221
diff
changeset
|
474 |
|
36736
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
475 # slice |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
476 def _Ellipsis(self, t): |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
477 self.write("...") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
478 |
|
36736
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
479 def _Index(self, t): |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
480 self.dispatch(t.value) |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
481 |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
482 def _Slice(self, t): |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
483 if t.lower: |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
484 self.dispatch(t.lower) |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
485 self.write(":") |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
486 if t.upper: |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
487 self.dispatch(t.upper) |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
488 if t.step: |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
489 self.write(":") |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
490 self.dispatch(t.step) |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
491 |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
492 def _ExtSlice(self, t): |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
493 interleave(lambda: self.write(', '), self.dispatch, t.dims) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
494 |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
495 # argument |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
496 def _arg(self, t): |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
497 self.write(t.arg) |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
498 if t.annotation: |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
499 self.write(": ") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
500 self.dispatch(t.annotation) |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
501 |
|
36723
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
502 # others |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
503 def _arguments(self, t): |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
504 first = True |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
505 # normal arguments |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
506 defaults = [None] * (len(t.args) - len(t.defaults)) + t.defaults |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
507 for a, d in zip(t.args, defaults): |
|
36723
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
508 if first:first = False |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
509 else: self.write(", ") |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
510 self.dispatch(a) |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
511 if d: |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
512 self.write("=") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
513 self.dispatch(d) |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
514 |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
515 # varargs, or bare '*' if no varargs but keyword-only arguments present |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
516 if t.vararg or t.kwonlyargs: |
|
36736
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
517 if first:first = False |
|
bbce8ec2ff81
unparse.py can now unparse itself.
Martin v. Löwis <martin@v.loewis.de>
parents:
36723
diff
changeset
|
518 else: self.write(", ") |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
519 self.write("*") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
520 if t.vararg: |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
521 self.write(t.vararg) |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
522 if t.varargannotation: |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
523 self.write(": ") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
524 self.dispatch(t.varargannotation) |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
525 |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
526 # keyword-only arguments |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
527 if t.kwonlyargs: |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
528 for a, d in zip(t.kwonlyargs, t.kw_defaults): |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
529 if first:first = False |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
530 else: self.write(", ") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
531 self.dispatch(a), |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
532 if d: |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
533 self.write("=") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
534 self.dispatch(d) |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
535 |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
536 # kwargs |
|
36723
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
537 if t.kwarg: |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
538 if first:first = False |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
539 else: self.write(", ") |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
540 self.write("**"+t.kwarg) |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
541 if t.kwargannotation: |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
542 self.write(": ") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
543 self.dispatch(t.kwargannotation) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
544 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
545 def _keyword(self, t): |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
546 self.write(t.arg) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
547 self.write("=") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
548 self.dispatch(t.value) |
|
36723
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
549 |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
550 def _Lambda(self, t): |
|
62623
fe44828ea7ed
More unparse.py fixes:
Mark Dickinson <dickinsm@gmail.com>
parents:
62622
diff
changeset
|
551 self.write("(") |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
552 self.write("lambda ") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
553 self.dispatch(t.args) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
554 self.write(": ") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
555 self.dispatch(t.body) |
|
62623
fe44828ea7ed
More unparse.py fixes:
Mark Dickinson <dickinsm@gmail.com>
parents:
62622
diff
changeset
|
556 self.write(")") |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
557 |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
558 def _alias(self, t): |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
559 self.write(t.name) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
560 if t.asname: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
561 self.write(" as "+t.asname) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
562 |
|
76803
89e928048903
Issue #14965: Bring Tools/parser/unparse.py up to date with the Python 3.3. Grammar.
Mark Dickinson <mdickinson@enthought.com>
parents:
76802
diff
changeset
|
563 def _withitem(self, t): |
|
89e928048903
Issue #14965: Bring Tools/parser/unparse.py up to date with the Python 3.3. Grammar.
Mark Dickinson <mdickinson@enthought.com>
parents:
76802
diff
changeset
|
564 self.dispatch(t.context_expr) |
|
89e928048903
Issue #14965: Bring Tools/parser/unparse.py up to date with the Python 3.3. Grammar.
Mark Dickinson <mdickinson@enthought.com>
parents:
76802
diff
changeset
|
565 if t.optional_vars: |
|
89e928048903
Issue #14965: Bring Tools/parser/unparse.py up to date with the Python 3.3. Grammar.
Mark Dickinson <mdickinson@enthought.com>
parents:
76802
diff
changeset
|
566 self.write(" as ") |
|
89e928048903
Issue #14965: Bring Tools/parser/unparse.py up to date with the Python 3.3. Grammar.
Mark Dickinson <mdickinson@enthought.com>
parents:
76802
diff
changeset
|
567 self.dispatch(t.optional_vars) |
|
89e928048903
Issue #14965: Bring Tools/parser/unparse.py up to date with the Python 3.3. Grammar.
Mark Dickinson <mdickinson@enthought.com>
parents:
76802
diff
changeset
|
568 |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
569 def roundtrip(filename, output=sys.stdout): |
|
62621
a4e1c56be532
unparse.py: respect coding cookie in input files
Mark Dickinson <dickinsm@gmail.com>
parents:
62614
diff
changeset
|
570 with open(filename, "rb") as pyfile: |
|
a4e1c56be532
unparse.py: respect coding cookie in input files
Mark Dickinson <dickinsm@gmail.com>
parents:
62614
diff
changeset
|
571 encoding = tokenize.detect_encoding(pyfile.readline)[0] |
|
a4e1c56be532
unparse.py: respect coding cookie in input files
Mark Dickinson <dickinsm@gmail.com>
parents:
62614
diff
changeset
|
572 with open(filename, "r", encoding=encoding) as pyfile: |
|
a4e1c56be532
unparse.py: respect coding cookie in input files
Mark Dickinson <dickinsm@gmail.com>
parents:
62614
diff
changeset
|
573 source = pyfile.read() |
|
62614
95f8b25e53ce
unparse.py: Typo fix.
Mark Dickinson <dickinsm@gmail.com>
parents:
62613
diff
changeset
|
574 tree = compile(source, filename, "exec", ast.PyCF_ONLY_AST) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
575 Unparser(tree, output) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
576 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
577 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
578 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
579 def testdir(a): |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
580 try: |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
581 names = [n for n in os.listdir(a) if n.endswith('.py')] |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
582 except OSError: |
|
42304
7d16b42fcdbd
Run 2to3 over the Demo/ directory to shut up parse errors from 2to3 about lingering print statements.
Collin Winter <collinw@gmail.com>
parents:
41554
diff
changeset
|
583 print("Directory not readable: %s" % a, file=sys.stderr) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
584 else: |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
585 for n in names: |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
586 fullname = os.path.join(a, n) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
587 if os.path.isfile(fullname): |
|
42304
7d16b42fcdbd
Run 2to3 over the Demo/ directory to shut up parse errors from 2to3 about lingering print statements.
Collin Winter <collinw@gmail.com>
parents:
41554
diff
changeset
|
588 output = io.StringIO() |
|
7d16b42fcdbd
Run 2to3 over the Demo/ directory to shut up parse errors from 2to3 about lingering print statements.
Collin Winter <collinw@gmail.com>
parents:
41554
diff
changeset
|
589 print('Testing %s' % fullname) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
590 try: |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
591 roundtrip(fullname, output) |
|
40587
6b18a095c2e7
SF patch 1631942 by Collin Winter:
Guido van Rossum <guido@python.org>
parents:
40450
diff
changeset
|
592 except Exception as e: |
|
42304
7d16b42fcdbd
Run 2to3 over the Demo/ directory to shut up parse errors from 2to3 about lingering print statements.
Collin Winter <collinw@gmail.com>
parents:
41554
diff
changeset
|
593 print(' Failed to compile, exception is %s' % repr(e)) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
594 elif os.path.isdir(fullname): |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
595 testdir(fullname) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
596 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
597 def main(args): |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
598 if args[0] == '--testdir': |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
599 for a in args[1:]: |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
600 testdir(a) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
601 else: |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
602 for a in args: |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
603 roundtrip(a) |
|
36723
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
604 |
|
e580c8b0dcea
Set EOL style to native.
Tim Peters <tim.peters@gmail.com>
parents:
36721
diff
changeset
|
605 if __name__=='__main__': |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36736
diff
changeset
|
606 main(sys.argv[1:]) |
