diff --git a/jedi/parser/parser.py b/jedi/parser/parser.py index 28f0e8aa..b9aa1b9c 100644 --- a/jedi/parser/parser.py +++ b/jedi/parser/parser.py @@ -27,3 +27,11 @@ class ParserSyntaxError(Exception): self.position = position +class Parser(object): + AST_MAPPING = {} + + def __init__(self, grammar, tokens, start_symbol='file_input'): + self._grammar = grammar + self._start_symbol = start_symbol + self._parsed = None + diff --git a/jedi/parser/python/parser.py b/jedi/parser/python/parser.py index 017a0db8..a4ff501e 100644 --- a/jedi/parser/python/parser.py +++ b/jedi/parser/python/parser.py @@ -5,10 +5,10 @@ from jedi.parser import tokenize from jedi.parser.token import (DEDENT, INDENT, ENDMARKER, NEWLINE, NUMBER, STRING, tok_name) from jedi.parser.pgen2.parse import PgenParser -from jedi.parser.parser import ParserSyntaxError +from jedi.parser.parser import ParserSyntaxError, Parser as BaseParser -class Parser(object): +class Parser(BaseParser): AST_MAPPING = { 'expr_stmt': tree.ExprStmt, 'classdef': tree.Class, @@ -41,6 +41,7 @@ class Parser(object): def __init__(self, grammar, source, start_symbol='file_input', tokens=None, start_parsing=True): + super(Parser, self).__init__(grammar, tokens, start_symbol) # Todo Remove start_parsing (with False) self.source = source @@ -50,11 +51,6 @@ class Parser(object): source += '\n' self._added_newline = True - self._start_symbol = start_symbol - self._grammar = grammar - - self._parsed = None - if start_parsing: if tokens is None: tokens = tokenize.source_tokens(source, use_exact_op_types=True)