Browse Source

Refactor: Split class to move code out of standalone section

gm/2021-09-23T00Z/github.com--lark-parser-lark/1.0b
Erez Sh 3 years ago
parent
commit
3e9e5d8449
1 changed files with 10 additions and 8 deletions
  1. +10
    -8
      lark/parser_frontends.py

+ 10
- 8
lark/parser_frontends.py View File

@@ -32,20 +32,13 @@ class MakeParsingFrontend:
self.parser_type = parser_type self.parser_type = parser_type
self.lexer_type = lexer_type self.lexer_type = lexer_type


def __call__(self, lexer_conf, parser_conf, options):
assert isinstance(lexer_conf, LexerConf)
assert isinstance(parser_conf, ParserConf)
parser_conf.parser_type = self.parser_type
lexer_conf.lexer_type = self.lexer_type
return ParsingFrontend(lexer_conf, parser_conf, options)

def deserialize(self, data, memo, lexer_conf, callbacks, options): def deserialize(self, data, memo, lexer_conf, callbacks, options):
parser_conf = ParserConf.deserialize(data['parser_conf'], memo) parser_conf = ParserConf.deserialize(data['parser_conf'], memo)
parser = LALR_Parser.deserialize(data['parser'], memo, callbacks, options.debug) parser = LALR_Parser.deserialize(data['parser'], memo, callbacks, options.debug)
parser_conf.callbacks = callbacks parser_conf.callbacks = callbacks
return ParsingFrontend(lexer_conf, parser_conf, options, parser=parser) return ParsingFrontend(lexer_conf, parser_conf, options, parser=parser)


# ... Continued later in the module




class ParsingFrontend(Serialize): class ParsingFrontend(Serialize):
@@ -237,3 +230,12 @@ class CYK_FrontEnd:


def _apply_callback(self, tree): def _apply_callback(self, tree):
return self.callbacks[tree.rule](tree.children) return self.callbacks[tree.rule](tree.children)


class MakeParsingFrontend(MakeParsingFrontend):
def __call__(self, lexer_conf, parser_conf, options):
assert isinstance(lexer_conf, LexerConf)
assert isinstance(parser_conf, ParserConf)
parser_conf.parser_type = self.parser_type
lexer_conf.lexer_type = self.lexer_type
return ParsingFrontend(lexer_conf, parser_conf, options)

Loading…
Cancel
Save