1
0
forked from VimPlug/jedi

Remove the strange check in the parser to always create expr_stmt and file_input.

This commit is contained in:
Dave Halter
2015-03-05 15:30:07 +01:00
parent 8f58258f4d
commit 10df0f933f
2 changed files with 9 additions and 4 deletions

View File

@@ -153,6 +153,12 @@ class Parser(object):
self.error_recovery)
tokenizer = tokenizer or tokenize.source_tokens(source)
self.module = p.parse(self._tokenize(tokenizer))
if self.module.type != 'file_input':
# If there's only one statement, we get back a non-module. That's
# not what we want, we want a module, so we add it here:
self.module = self.convert_node(grammar,
grammar.symbol2number['file_input'],
[self.module])
if added_newline:
self.remove_last_newline()

View File

@@ -190,11 +190,10 @@ class PgenParser(object):
# If there's exactly one child, return that child instead of creating a
# new node. We still create expr_stmt and file_input though, because a
# lot of Jedi depends on its logic.
if len(children) != 1 or type in (-1,
self.grammar.symbol2number['file_input']):
newnode = self.convert_node(self.grammar, type, children)
else:
if len(children) == 1:
newnode = children[0]
else:
newnode = self.convert_node(self.grammar, type, children)
try:
# Equal to: