From 44cf798911b4efb927fe43ee4f02c71d1451934e Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Thu, 22 Dec 2011 00:15:58 +0100 Subject: [PATCH] Improve inheritance of lexers. --- python/pakfire/packages/lexer.py | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/python/pakfire/packages/lexer.py b/python/pakfire/packages/lexer.py index 66811d5a9..1fc803a95 100644 --- a/python/pakfire/packages/lexer.py +++ b/python/pakfire/packages/lexer.py @@ -117,7 +117,14 @@ class Lexer(object): @property def definitions(self): - return self._definitions + definitions = {} + + if self.parent: + definitions.update(self.parent.definitions) + + definitions.update(self._definitions) + + return definitions @classmethod def open(cls, filename, *args, **kwargs): @@ -586,16 +593,6 @@ class TemplateLexer(DefaultLexer): # Inherit all scriptlets. self.scriptlets.update(other.scriptlets) - @property - def definitions(self): - definitions = {} - - assert self.parent - definitions.update(self.parent.definitions) - definitions.update(self._definitions) - - return definitions - def get_parsers(self): return [ (LEXER_SCRIPTLET_BEGIN, self.parse_scriptlet), -- 2.39.5