refactored extensions a bit
--HG--
branch : trunk
diff --git a/jinja2/parser.py b/jinja2/parser.py
index 4204c6a..27f54ef 100644
--- a/jinja2/parser.py
+++ b/jinja2/parser.py
@@ -35,7 +35,10 @@
self.filename = filename
self.closed = False
self.stream = environment.lexer.tokenize(source, filename)
- self.extensions = environment.parser_extensions
+ self.extensions = {}
+ for extension in environment.extensions:
+ for tag in extension.tags:
+ self.extensions[tag] = extension.parse
def end_statement(self):
"""Make sure that the statement ends properly."""
@@ -686,20 +689,3 @@
result = nodes.Template(self.subparse(), lineno=1)
result.set_environment(self.environment)
return result
-
-
-class ParserExtension(tuple):
- """Instances of this class store parser extensions."""
- __slots__ = ()
-
- def __new__(cls, tag, parse_func):
- return tuple.__new__(cls, (tag, parse_func))
-
- def __call__(self, parser):
- return self.parse_func(parser)
-
- def __repr__(self):
- return '<%s %r>' % (self.__class__.__name__, self.tag)
-
- tag = property(itemgetter(0))
- parse_func = property(itemgetter(1))