added support for token stream filtering and preprocessing.
--HG--
branch : trunk
diff --git a/jinja2/ext.py b/jinja2/ext.py
index 93cde83..9dfa87c 100644
--- a/jinja2/ext.py
+++ b/jinja2/ext.py
@@ -16,6 +16,7 @@
from jinja2.environment import get_spontaneous_environment
from jinja2.runtime import Undefined, concat
from jinja2.exceptions import TemplateAssertionError, TemplateSyntaxError
+from jinja2.lexer import Token
from jinja2.utils import contextfunction, import_string, Markup
@@ -67,6 +68,21 @@
rv.environment = environment
return rv
+ def preprocess(self, source, name, filename=None):
+ """This method is called before the actual lexing and can be used to
+ preprocess the source. The `filename` is optional. The return value
+ must be the preprocessed source.
+ """
+ return source
+
+ def filter_stream(self, stream):
+ """It's passed a :class:`~jinja2.lexer.TokenStream` that can be used
+ to filter tokens returned. This method has to return an iterable of
+ :class:`~jinja2.lexer.Token`\s, but it doesn't have to return a
+ :class:`~jinja2.lexer.TokenStream`.
+ """
+ return stream
+
def parse(self, parser):
"""If any of the :attr:`tags` matched this method is called with the
parser as first argument. The token the parser stream is pointing at