moved trans extension from jinja2.i18n to jinja2.ext and fixed some more unittests
--HG--
branch : trunk
diff --git a/jinja2/parser.py b/jinja2/parser.py
index 5658ca9..8db62de 100644
--- a/jinja2/parser.py
+++ b/jinja2/parser.py
@@ -17,6 +17,7 @@
'macro', 'include'])
_compare_operators = frozenset(['eq', 'ne', 'lt', 'lteq', 'gt', 'gteq', 'in'])
statement_end_tokens = set(['variable_end', 'block_end', 'in'])
+_tuple_edge_tokens = set(['rparen']) | statement_end_tokens
class Parser(object):
@@ -421,12 +422,13 @@
while 1:
if args:
self.stream.expect('comma')
- if self.stream.current.type in statement_end_tokens:
+ if self.stream.current.type in _tuple_edge_tokens:
break
args.append(parse())
- if self.stream.current.type is not 'comma':
+ if self.stream.current.type is 'comma':
+ is_tuple = True
+ else:
break
- is_tuple = True
lineno = self.stream.current.lineno
if not is_tuple and args:
if enforce:
@@ -640,12 +642,7 @@
self.stream.next()
elif token.type is 'variable_begin':
self.stream.next()
- want_comma = False
- while not self.stream.current.test_many(statement_end_tokens):
- if want_comma:
- self.stream.expect('comma')
- add_data(self.parse_expression())
- want_comma = True
+ add_data(self.parse_tuple())
self.stream.expect('variable_end')
elif token.type is 'block_begin':
flush_data()