Mercurial > genshi > mirror
comparison markup/template.py @ 120:c9f0a26e28a2 trunk
* Allow `py:with` directives to define `lambda`s
* Fix directive order so that a `py:for` loop can be used inside a `py:when` or `py:otherwise` branch.
author | cmlenz |
---|---|
date | Wed, 02 Aug 2006 11:56:31 +0000 |
parents | c77c113846d6 |
children | 79f445396cd7 |
comparison
equal
deleted
inserted
replaced
119:cc2aee07f53b | 120:c9f0a26e28a2 |
---|---|
646 except SyntaxError, err: | 646 except SyntaxError, err: |
647 raise TemplateSyntaxError(err, filename, lineno, | 647 raise TemplateSyntaxError(err, filename, lineno, |
648 offset + (err.offset or 0)) | 648 offset + (err.offset or 0)) |
649 | 649 |
650 def __call__(self, stream, ctxt, directives): | 650 def __call__(self, stream, ctxt, directives): |
651 ctxt.push(dict([(name, expr.evaluate(ctxt)) | 651 ctxt.push(dict([(name, expr.evaluate(ctxt, nocall=True)) |
652 for name, expr in self.vars])) | 652 for name, expr in self.vars])) |
653 for event in _apply_directives(stream, ctxt, directives): | 653 for event in _apply_directives(stream, ctxt, directives): |
654 yield event | 654 yield event |
655 ctxt.pop() | 655 ctxt.pop() |
656 | 656 |
669 EXPR = StreamEventKind('EXPR') # an expression | 669 EXPR = StreamEventKind('EXPR') # an expression |
670 SUB = StreamEventKind('SUB') # a "subprogram" | 670 SUB = StreamEventKind('SUB') # a "subprogram" |
671 | 671 |
672 directives = [('def', DefDirective), | 672 directives = [('def', DefDirective), |
673 ('match', MatchDirective), | 673 ('match', MatchDirective), |
674 ('when', WhenDirective), | |
675 ('otherwise', OtherwiseDirective), | |
674 ('for', ForDirective), | 676 ('for', ForDirective), |
675 ('if', IfDirective), | 677 ('if', IfDirective), |
676 ('when', WhenDirective), | |
677 ('otherwise', OtherwiseDirective), | |
678 ('choose', ChooseDirective), | 678 ('choose', ChooseDirective), |
679 ('with', WithDirective), | 679 ('with', WithDirective), |
680 ('replace', ReplaceDirective), | 680 ('replace', ReplaceDirective), |
681 ('content', ContentDirective), | 681 ('content', ContentDirective), |
682 ('attrs', AttrsDirective), | 682 ('attrs', AttrsDirective), |