Fixed some bugs
This commit is contained in:
@@ -175,38 +175,14 @@ class BaseParser:
|
||||
body=tree,
|
||||
try_parsed=try_parse)
|
||||
|
||||
def get_input_as_text(self, parser_input, custom_switcher=None, tracker=None):
|
||||
@staticmethod
|
||||
def get_input_as_lexer_nodes(parser_input, expected_parser=None):
|
||||
"""
|
||||
Recreate back the source code from parser_input
|
||||
:param parser_input: list of Tokens
|
||||
:param custom_switcher: map of [TokenKind, overridden values]
|
||||
:param tracker: keep track of the value overridden by custom_switcher
|
||||
Extract the lexer node from the parser_input
|
||||
:param parser_input:
|
||||
:param expected_parser: returns the nodes if the parent parser is the expected one
|
||||
:return:
|
||||
"""
|
||||
if isinstance(parser_input, list):
|
||||
return self.get_text_from_tokens(parser_input, custom_switcher, tracker)
|
||||
|
||||
if isinstance(parser_input, ParserResultConcept):
|
||||
parser_input = parser_input.source
|
||||
|
||||
if "c:" in parser_input:
|
||||
return self.get_text_from_tokens(list(Tokenizer(parser_input)), custom_switcher, tracker)
|
||||
|
||||
return parser_input
|
||||
|
||||
def get_input_as_tokens(self, parser_input, strip_eof=False):
|
||||
if isinstance(parser_input, list):
|
||||
return self.manage_eof(parser_input, strip_eof)
|
||||
|
||||
if isinstance(parser_input, ParserResultConcept):
|
||||
if parser_input.tokens:
|
||||
return self.manage_eof(parser_input.tokens, strip_eof)
|
||||
else:
|
||||
return Tokenizer(parser_input.source)
|
||||
|
||||
return Tokenizer(parser_input, yield_eof=not strip_eof)
|
||||
|
||||
def get_input_as_lexer_nodes(self, parser_input, expected_parser=None):
|
||||
if not isinstance(parser_input, ParserResultConcept):
|
||||
return None
|
||||
|
||||
|
||||
Reference in New Issue
Block a user