mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-18 19:45:57 +08:00
Remove start_parsing completely from the Parsers.
This commit is contained in:
@@ -132,7 +132,7 @@ def get_stack_at_position(grammar, code_lines, module_node, pos):
|
|||||||
safeword = 'ZZZ_USER_WANTS_TO_COMPLETE_HERE_WITH_JEDI'
|
safeword = 'ZZZ_USER_WANTS_TO_COMPLETE_HERE_WITH_JEDI'
|
||||||
code = code + safeword
|
code = code + safeword
|
||||||
|
|
||||||
p = parser.ParserWithRecovery(grammar, code, start_parsing=False)
|
p = parser.ParserWithRecovery(grammar, code)
|
||||||
try:
|
try:
|
||||||
p.parse(tokens=tokenize_without_endmarker(code))
|
p.parse(tokens=tokenize_without_endmarker(code))
|
||||||
except EndMarkerReached:
|
except EndMarkerReached:
|
||||||
|
|||||||
@@ -116,7 +116,7 @@ def parse(code=None, path=None, grammar=None, error_recovery=True,
|
|||||||
p.source = code[:-1]
|
p.source = code[:-1]
|
||||||
_remove_last_newline(new_node)
|
_remove_last_newline(new_node)
|
||||||
return new_node
|
return new_node
|
||||||
p = parser(grammar, code, start_parsing=False, **kwargs)
|
p = parser(grammar, code, **kwargs)
|
||||||
new_node = p.parse(tokens=tokens)
|
new_node = p.parse(tokens=tokens)
|
||||||
if added_newline:
|
if added_newline:
|
||||||
_remove_last_newline(new_node)
|
_remove_last_newline(new_node)
|
||||||
|
|||||||
@@ -377,7 +377,6 @@ class DiffParser(object):
|
|||||||
self._active_parser = ParserWithRecovery(
|
self._active_parser = ParserWithRecovery(
|
||||||
self._grammar,
|
self._grammar,
|
||||||
source='\n',
|
source='\n',
|
||||||
start_parsing=False
|
|
||||||
)
|
)
|
||||||
return self._active_parser.parse(tokens=tokens)
|
return self._active_parser.parse(tokens=tokens)
|
||||||
|
|
||||||
|
|||||||
@@ -39,10 +39,8 @@ class Parser(BaseParser):
|
|||||||
}
|
}
|
||||||
default_node = tree.PythonNode
|
default_node = tree.PythonNode
|
||||||
|
|
||||||
def __init__(self, grammar, source, start_symbol='file_input',
|
def __init__(self, grammar, source, start_symbol='file_input'):
|
||||||
tokens=None, start_parsing=True):
|
|
||||||
super(Parser, self).__init__(grammar, start_symbol)
|
super(Parser, self).__init__(grammar, start_symbol)
|
||||||
# Todo Remove start_parsing (with False)
|
|
||||||
|
|
||||||
self.source = source
|
self.source = source
|
||||||
self._added_newline = False
|
self._added_newline = False
|
||||||
@@ -52,10 +50,6 @@ class Parser(BaseParser):
|
|||||||
self._added_newline = True
|
self._added_newline = True
|
||||||
|
|
||||||
self.new_code = source
|
self.new_code = source
|
||||||
if start_parsing:
|
|
||||||
if tokens is None:
|
|
||||||
tokens = tokenize.source_tokens(source, use_exact_op_types=True)
|
|
||||||
self.parse(tokens)
|
|
||||||
|
|
||||||
def parse(self, tokens):
|
def parse(self, tokens):
|
||||||
node = super(Parser, self).parse(tokens)
|
node = super(Parser, self).parse(tokens)
|
||||||
@@ -153,10 +147,12 @@ class ParserWithRecovery(Parser):
|
|||||||
:param module_path: The path of the module in the file system, may be None.
|
:param module_path: The path of the module in the file system, may be None.
|
||||||
:type module_path: str
|
:type module_path: str
|
||||||
"""
|
"""
|
||||||
def __init__(self, grammar, source, module_path=None, tokens=None,
|
def __init__(self, grammar, source, module_path=None):
|
||||||
start_parsing=True):
|
super(ParserWithRecovery, self).__init__(
|
||||||
self.syntax_errors = []
|
grammar, source,
|
||||||
|
)
|
||||||
|
|
||||||
|
self.syntax_errors = []
|
||||||
self._omit_dedent_list = []
|
self._omit_dedent_list = []
|
||||||
self._indent_counter = 0
|
self._indent_counter = 0
|
||||||
self._module_path = module_path
|
self._module_path = module_path
|
||||||
@@ -170,10 +166,6 @@ class ParserWithRecovery(Parser):
|
|||||||
# if self.options["print_function"]:
|
# if self.options["print_function"]:
|
||||||
# python_grammar = pygram.python_grammar_no_print_statement
|
# python_grammar = pygram.python_grammar_no_print_statement
|
||||||
# else:
|
# else:
|
||||||
super(ParserWithRecovery, self).__init__(
|
|
||||||
grammar, source,
|
|
||||||
start_parsing=start_parsing
|
|
||||||
)
|
|
||||||
|
|
||||||
def parse(self, tokens):
|
def parse(self, tokens):
|
||||||
root_node = super(ParserWithRecovery, self).parse(self._tokenize(tokens))
|
root_node = super(ParserWithRecovery, self).parse(self._tokenize(tokens))
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ class Differ(object):
|
|||||||
def initialize(self, code):
|
def initialize(self, code):
|
||||||
debug.dbg('differ: initialize', color='YELLOW')
|
debug.dbg('differ: initialize', color='YELLOW')
|
||||||
grammar = load_grammar()
|
grammar = load_grammar()
|
||||||
self.parser = ParserWithRecovery(grammar, code, start_parsing=False)
|
self.parser = ParserWithRecovery(grammar, code)
|
||||||
tokens = source_tokens(self.parser.new_code, use_exact_op_types=True)
|
tokens = source_tokens(self.parser.new_code, use_exact_op_types=True)
|
||||||
return self.parser.parse(tokens)
|
return self.parser.parse(tokens)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user