From 42e88617981f2c3f41a0b2e8e52ea03f2eede894 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Sun, 19 Mar 2017 22:15:01 +0100 Subject: [PATCH] Simplify the parse method. --- jedi/parser/python/parser.py | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/jedi/parser/python/parser.py b/jedi/parser/python/parser.py index 503b9160..f3f2a730 100644 --- a/jedi/parser/python/parser.py +++ b/jedi/parser/python/parser.py @@ -57,30 +57,20 @@ class Parser(BaseParser): self.parse(tokens) def parse(self, tokens): - if self._parsed is not None: - return self._parsed + node = super(Parser, self).parse(tokens) - from jedi.parser.pgen2.parse import PgenParser - start_number = self._grammar.symbol2number[self._start_symbol] - self.pgen_parser = PgenParser( - self._grammar, self.convert_node, self.convert_leaf, - self.error_recovery, start_number - ) - - self._parsed = self.pgen_parser.parse(tokens) - - if self._start_symbol == 'file_input' != self._parsed.type: + if self._start_symbol == 'file_input' != node.type: # 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._parsed = self.convert_node(self._grammar, - self._grammar.symbol2number['file_input'], - [self._parsed]) + self._parsed = node = self.convert_node( + self._grammar, + self._grammar.symbol2number['file_input'], + [node] + ) if self._added_newline: self._remove_last_newline() - # The stack is empty now, we don't need it anymore. - del self.pgen_parser - return self._parsed + return node def get_root_node(self): return self._parsed