| @@ -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) | |||||