Make the prefix parsing a bit simpler by combining tabs and spaces.

This commit is contained in:
Dave Halter
2017-06-07 17:23:07 +02:00
parent 9365ffc932
commit 34aabd6b47
3 changed files with 9 additions and 8 deletions

View File

@@ -41,10 +41,10 @@ class WhitespaceInfo(object):
if part.type == 'comment':
self.comments.append(Comment(part, indentation))
if part.type not in ('tabs', 'spaces'):
indentation = ''
if part.type == 'indentation':
indentation = part.value
else:
indentation += part.value
indentation = ''
self.indentation = indentation
self.newline_count = 2

View File

@@ -18,23 +18,22 @@ class PrefixPart(object):
_comment = r'#[^\n\r\f]*'
_backslash = r'\\\r?\n'
_whitespace = r' +'
_tabs = r'\t+'
_indentation = r'[ \t]+'
_newline = r'\r?\n'
_form_feed = r'\f'
_regex = group(_comment, _backslash, _whitespace, _newline, _form_feed, _tabs)
_regex = group(_comment, _backslash, _indentation, _newline, _form_feed)
_regex = re.compile(_regex)
_types = {
' ': 'spaces',
' ': 'indentation',
'#': 'comment',
'\\': 'backslash',
'\f': 'formfeed',
'\n': 'newline',
'\r': 'newline',
'\t': 'tabs',
'\t': 'indentation',
}

View File

@@ -42,6 +42,8 @@ def test_simple_prefix_splitting(string, tokens):
('\r\n', ['newline']),
('\f', ['formfeed']),
('\\\n', ['backslash']),
(' \t', ['indentation']),
(' \t ', ['indentation']),
])
def test_prefix_splitting_types(string, types):
tree = parso.parse(string)