diff options
author | Jason R. Coombs <jaraco@jaraco.com> | 2015-06-28 15:13:30 (GMT) |
---|---|---|
committer | Jason R. Coombs <jaraco@jaraco.com> | 2015-06-28 15:13:30 (GMT) |
commit | a95a476b3ae93d890209e592d675ae64c82e05dc (patch) | |
tree | a8769511b04f31f00521a2e4e0f3d42d8e561dee /Lib/tokenize.py | |
parent | b9b9e7b46a880e7a628a698fd47173b7f7d68870 (diff) | |
parent | 50373e6c21e933d2fee7039204bdc51c4475d634 (diff) | |
download | cpython-a95a476b3ae93d890209e592d675ae64c82e05dc.zip cpython-a95a476b3ae93d890209e592d675ae64c82e05dc.tar.gz cpython-a95a476b3ae93d890209e592d675ae64c82e05dc.tar.bz2 |
Issue #20387: Merge test and patch from 3.4.4
Diffstat (limited to 'Lib/tokenize.py')
-rw-r--r-- | Lib/tokenize.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/Lib/tokenize.py b/Lib/tokenize.py index f58c286..3ec9018 100644 --- a/Lib/tokenize.py +++ b/Lib/tokenize.py @@ -244,6 +244,8 @@ class Untokenizer: def untokenize(self, iterable): it = iter(iterable) + indents = [] + startline = False for t in it: if len(t) == 2: self.compat(t, it) @@ -254,6 +256,21 @@ class Untokenizer: continue if tok_type == ENDMARKER: break + if tok_type == INDENT: + indents.append(token) + continue + elif tok_type == DEDENT: + indents.pop() + self.prev_row, self.prev_col = end + continue + elif tok_type in (NEWLINE, NL): + startline = True + elif startline and indents: + indent = indents[-1] + if start[1] >= len(indent): + self.tokens.append(indent) + self.prev_col = len(indent) + startline = False self.add_whitespace(start) self.tokens.append(token) self.prev_row, self.prev_col = end |