| @@ -112,9 +112,6 @@ class Lark: | |||||
| self.source = grammar.name | self.source = grammar.name | ||||
| except AttributeError: | except AttributeError: | ||||
| self.source = '<string>' | self.source = '<string>' | ||||
| cache_file = "larkcache_%s" % str(hash(grammar)%(2**32)) | |||||
| else: | |||||
| cache_file = "larkcache_%s" % os.path.basename(self.source) | |||||
| # Drain file-like objects to get their contents | # Drain file-like objects to get their contents | ||||
| try: | try: | ||||
| @@ -528,7 +528,7 @@ def import_grammar(grammar_path, base_paths=[]): | |||||
| def import_from_grammar_into_namespace(grammar, namespace, aliases): | def import_from_grammar_into_namespace(grammar, namespace, aliases): | ||||
| imported_terms = dict(grammar.term_defs) | imported_terms = dict(grammar.term_defs) | ||||
| imported_rules = {n:(n,t,o) for n,t,o in grammar.rule_defs} | imported_rules = {n:(n,t,o) for n,t,o in grammar.rule_defs} | ||||
| term_defs = [] | term_defs = [] | ||||
| rule_defs = [] | rule_defs = [] | ||||
| @@ -1,7 +1,5 @@ | |||||
| from .exceptions import GrammarError | from .exceptions import GrammarError | ||||
| from .utils import suppress | |||||
| from .lexer import Token | from .lexer import Token | ||||
| from .grammar import Rule | |||||
| from .tree import Tree | from .tree import Tree | ||||
| from .visitors import InlineTransformer # XXX Deprecated | from .visitors import InlineTransformer # XXX Deprecated | ||||
| @@ -36,7 +36,7 @@ def _compare_drv(tree1, tree2): | |||||
| except AttributeError: | except AttributeError: | ||||
| rule2 = None | rule2 = None | ||||
| if None == rule1 == rule2: | |||||
| if rule1 is None and rule2 is None: | |||||
| return compare(tree1, tree2) | return compare(tree1, tree2) | ||||
| elif rule1 is None: | elif rule1 is None: | ||||
| return -1 | return -1 | ||||
| @@ -100,10 +100,8 @@ class Reconstructor: | |||||
| for origin, rule_aliases in aliases.items(): | for origin, rule_aliases in aliases.items(): | ||||
| for alias in rule_aliases: | for alias in rule_aliases: | ||||
| yield Rule(origin, [Terminal(alias)], MakeMatchTree(origin.name, [NonTerminal(alias)])) | yield Rule(origin, [Terminal(alias)], MakeMatchTree(origin.name, [NonTerminal(alias)])) | ||||
| yield Rule(origin, [Terminal(origin.name)], MakeMatchTree(origin.name, [origin])) | |||||
| yield Rule(origin, [Terminal(origin.name)], MakeMatchTree(origin.name, [origin])) | |||||
| def _match(self, term, token): | def _match(self, term, token): | ||||
| if isinstance(token, Tree): | if isinstance(token, Tree): | ||||
| @@ -127,4 +125,3 @@ class Reconstructor: | |||||
| def reconstruct(self, tree): | def reconstruct(self, tree): | ||||
| return ''.join(self._reconstruct(tree)) | return ''.join(self._reconstruct(tree)) | ||||
| @@ -45,9 +45,7 @@ from collections import defaultdict | |||||
| import lark | import lark | ||||
| from lark import Lark | from lark import Lark | ||||
| from lark.parsers.lalr_analysis import Shift, Reduce | |||||
| from ..grammar import Rule | |||||
| from lark.parsers.lalr_analysis import Reduce | |||||
| _dir = path.dirname(__file__) | _dir = path.dirname(__file__) | ||||
| _larkdir = path.join(_dir, path.pardir) | _larkdir = path.join(_dir, path.pardir) | ||||