'From the Twig test suite, https://github.com/fabpot/Twig, available under BSD license.\n\n--TEST--\nException for an unclosed tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'foo'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n     '     Other
'{%'          Comment.Preproc
' '           Text
'if'          Keyword
' '           Text
'foo'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n\n\n\n\n         ' Other
'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'i'           Name.Variable
' '           Text
'in'          Keyword
' '           Text
'fo'          Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n\n\n\n         ' Other
'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n\n\n'    Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--EXCEPTION--\nTwig_Error_Syntax: Unexpected tag name "endblock" (expecting closing tag for the "if" tag defined near line 4) in "index.twig" at line 16\n--TEST--\nException for an undefined trait\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'use'         Keyword
' '           Text
"'foo'"       Literal.String.Single
' '           Text
'with'        Name.Variable
' '           Text
'foobar'      Name.Variable
' '           Text
'as'          Name.Variable
' '           Text
'bar'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(foo)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'bar'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--EXCEPTION--\nTwig_Error_Runtime: Block "foobar" is not defined in trait "foo" in "index.twig".\n--TEST--\nTwig supports method calls\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'items'       Name.Variable
'.foo'        Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'items'       Name.Variable
'['           Operator
"'foo'"       Literal.String.Single
']'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'items'       Name.Variable
'['           Operator
'foo'         Name.Variable
']'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'items'       Name.Variable
'['           Operator
'items'       Name.Variable
'['           Operator
'foo'         Name.Variable
']'           Operator
']'           Operator
' '           Text
'}}'          Comment.Preproc
"\n--DATA--\nreturn array('foo' => 'bar', 'items' => array('foo' => 'bar', 'bar' => 'foo'))\n--EXPECT--\nbar\nbar\nfoo\nbar\n--TEST--\nTwig supports array notation\n--TEMPLATE--\n" Other

'{# empty array #}' Comment
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'['           Operator
']'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"','"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'['           Operator
'1'           Literal.Number
','           Operator
' '           Text
'2'           Literal.Number
']'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"','"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'['           Operator
"'foo'"       Literal.String.Single
','           Operator
' '           Text
'"bar"'       Literal.String.Double
']'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"','"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'{'           Operator
'0'           Literal.Number
':'           Operator
' '           Text
'1'           Literal.Number
','           Operator
' '           Text
"'foo'"       Literal.String.Single
':'           Operator
' '           Text
"'bar'"       Literal.String.Single
'}'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"','"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'{'           Operator
'0'           Literal.Number
':'           Operator
' '           Text
'1'           Literal.Number
','           Operator
' '           Text
"'foo'"       Literal.String.Single
':'           Operator
' '           Text
"'bar'"       Literal.String.Single
'}'           Operator
'|'           Operator
'keys'        Name.Function
'|'           Operator
'join'        Name.Function
'('           Operator
"','"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'{'           Operator
'0'           Literal.Number
':'           Operator
' '           Text
'1'           Literal.Number
','           Operator
' '           Text
'foo'         Name.Variable
':'           Operator
' '           Text
"'bar'"       Literal.String.Single
'}'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"','"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'{'           Operator
'0'           Literal.Number
':'           Operator
' '           Text
'1'           Literal.Number
','           Operator
' '           Text
'foo'         Name.Variable
':'           Operator
' '           Text
"'bar'"       Literal.String.Single
'}'           Operator
'|'           Operator
'keys'        Name.Function
'|'           Operator
'join'        Name.Function
'('           Operator
"','"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{# nested arrays #}' Comment
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'set'         Keyword
' '           Text
'a'           Name.Variable
' '           Text
'='           Operator
' '           Text
'['           Operator
'1'           Literal.Number
','           Operator
' '           Text
'2'           Literal.Number
','           Operator
' '           Text
'['           Operator
'1'           Literal.Number
','           Operator
' '           Text
'2'           Literal.Number
']'           Operator
','           Operator
' '           Text
'{'           Operator
"'foo'"       Literal.String.Single
':'           Operator
' '           Text
'{'           Operator
"'foo'"       Literal.String.Single
':'           Operator
' '           Text
"'bar'"       Literal.String.Single
'}'           Operator
'}'           Operator
']'           Operator
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'a'           Name.Variable
'['           Operator
'2'           Literal.Number
']'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"','"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'a'           Name.Variable
'['           Operator
'3'           Literal.Number
']'           Operator
'['           Operator
'"foo"'       Literal.String.Double
']'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"','"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{# works even if [] is used inside the array #}' Comment
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'['           Operator
'foo'         Name.Variable
'['           Operator
'bar'         Name.Variable
']'           Operator
']'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"','"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{# elements can be any expression #}' Comment
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'['           Operator
"'foo'"       Literal.String.Single
'|'           Operator
'upper'       Name.Function
','           Operator
' '           Text
'bar'         Name.Variable
'|'           Operator
'upper'       Name.Function
','           Operator
' '           Text
'bar'         Name.Variable
' '           Text
'=='          Operator
' '           Text
'foo'         Name.Variable
']'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"','"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{# arrays can have a trailing , like in PHP #}' Comment
'\n'          Other

'{{'          Comment.Preproc
'\n  '        Text
'['           Operator
'\n    '      Text
'1'           Literal.Number
','           Operator
'\n    '      Text
'2'           Literal.Number
','           Operator
'\n  '        Text
']'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"','"         Literal.String.Single
')'           Operator
'\n'          Text

'}}'          Comment.Preproc
'\n\n'        Other

'{# keys can be any expression #}' Comment
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'set'         Keyword
' '           Text
'a'           Name.Variable
' '           Text
'='           Operator
' '           Text
'1'           Literal.Number
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'set'         Keyword
' '           Text
'b'           Name.Variable
' '           Text
'='           Operator
' '           Text
'"foo"'       Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'set'         Keyword
' '           Text
'ary'         Name.Variable
' '           Text
'='           Operator
' '           Text
'{'           Operator
' '           Text
'('           Operator
'a'           Name.Variable
')'           Operator
':'           Operator
' '           Text
"'a'"         Literal.String.Single
','           Operator
' '           Text
'('           Operator
'b'           Name.Variable
')'           Operator
':'           Operator
' '           Text
"'b'"         Literal.String.Single
','           Operator
' '           Text
"'c'"         Literal.String.Single
':'           Operator
' '           Text
"'c'"         Literal.String.Single
','           Operator
' '           Text
'('           Operator
'a'           Name.Variable
' '           Text
'~'           Operator
' '           Text
'b'           Name.Variable
')'           Operator
':'           Operator
' '           Text
"'d'"         Literal.String.Single
' '           Text
'}'           Operator
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'ary'         Name.Variable
'|'           Operator
'keys'        Name.Function
'|'           Operator
'join'        Name.Function
'('           Operator
"','"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'ary'         Name.Variable
'|'           Operator
'join'        Name.Function
'('           Operator
"','"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
"\n--DATA--\nreturn array('bar' => 'bar', 'foo' => array('bar' => 'bar'))\n--EXPECT--\n1,2\nfoo,bar\n1,bar\n0,foo\n\n1,bar\n0,foo\n\n1,2\nbar\n\nbar\n\nFOO,BAR,\n\n1,2\n\n1,foo,c,1foo\na,b,c,d\n--TEST--\nTwig supports binary operations (+, -, *, /, ~, %, and, or)\n--TEMPLATE--\n" Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'+'           Operator
' '           Text
'1'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'2'           Literal.Number
' '           Text
'-'           Operator
' '           Text
'1'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'2'           Literal.Number
' '           Text
'*'           Operator
' '           Text
'2'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'2'           Literal.Number
' '           Text
'/'           Operator
' '           Text
'2'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'3'           Literal.Number
' '           Text
'%'           Operator
' '           Text
'2'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'and'         Keyword
' '           Text
'1'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'and'         Keyword
' '           Text
'0'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'0'           Literal.Number
' '           Text
'and'         Keyword
' '           Text
'1'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'0'           Literal.Number
' '           Text
'and'         Keyword
' '           Text
'0'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'or'          Keyword
' '           Text
'1'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'or'          Keyword
' '           Text
'0'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'0'           Literal.Number
' '           Text
'or'          Keyword
' '           Text
'1'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'0'           Literal.Number
' '           Text
'or'          Keyword
' '           Text
'0'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'0'           Literal.Number
' '           Text
'or'          Keyword
' '           Text
'1'           Literal.Number
' '           Text
'and'         Keyword
' '           Text
'0'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'or'          Keyword
' '           Text
'0'           Literal.Number
' '           Text
'and'         Keyword
' '           Text
'1'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'"foo"'       Literal.String.Double
' '           Text
'~'           Operator
' '           Text
'"bar"'       Literal.String.Double
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
' '           Text
'~'           Operator
' '           Text
'"bar"'       Literal.String.Double
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'"foo"'       Literal.String.Double
' '           Text
'~'           Operator
' '           Text
'bar'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
' '           Text
'~'           Operator
' '           Text
'bar'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'2'           Literal.Number
'0'           Literal.Number
' '           Text
'/'           Operator
'/'           Operator
' '           Text
'7'           Literal.Number
' '           Text
'}}'          Comment.Preproc
"\n--DATA--\nreturn array('foo' => 'bar', 'bar' => 'foo')\n--EXPECT--\n2\n1\n4\n1\n1\n1\n\n\n\n1\n1\n1\n\n\n1\nfoobar\nbarbar\nfoofoo\nbarfoo\n2\n--TEST--\nTwig supports bitwise operations\n--TEMPLATE--\n" Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'b-and'       Keyword
' '           Text
'5'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'b-or'        Keyword
' '           Text
'5'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'b-xor'       Keyword
' '           Text
'5'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'('           Operator
'1'           Literal.Number
' '           Text
'and'         Keyword
' '           Text
'0'           Literal.Number
' '           Text
'b-or'        Keyword
' '           Text
'0'           Literal.Number
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
'1'           Literal.Number
' '           Text
'and'         Keyword
' '           Text
'('           Operator
'0'           Literal.Number
' '           Text
'b-or'        Keyword
' '           Text
'0'           Literal.Number
')'           Operator
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n1\n5\n4\nok\n--TEST--\nTwig supports comparison operators (==, !=, <, >, >=, <=)\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'>'           Operator
' '           Text
'2'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'/'           Other
'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'>'           Operator
' '           Text
'1'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'/'           Other
'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'>='          Operator
' '           Text
'2'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'/'           Other
'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'>='          Operator
' '           Text
'1'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'<'           Operator
' '           Text
'2'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'/'           Other
'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'<'           Operator
' '           Text
'1'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'/'           Other
'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'<='          Operator
' '           Text
'2'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'/'           Other
'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'<='          Operator
' '           Text
'1'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'=='          Operator
' '           Text
'1'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'/'           Other
'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'=='          Operator
' '           Text
'2'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'!='          Operator
' '           Text
'1'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'/'           Other
'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'!='          Operator
' '           Text
'2'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n///1\n1//1/1\n1/\n/1\n--TEST--\nTwig supports the "divisible by" operator\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'8'           Literal.Number
' '           Text
'is'          Keyword
' '           Text
'divisible'   Name.Function
' '           Text
'by'          Name.Variable
'('           Operator
'2'           Literal.Number
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'8'           Literal.Number
' '           Text
'is'          Keyword
' '           Text
'not'         Keyword
' '           Text
'divisible'   Name.Function
' '           Text
'by'          Name.Variable
'('           Operator
'3'           Literal.Number
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'8'           Literal.Number
' '           Text
'is'          Keyword
'    '        Text
'divisible'   Name.Function
'   '         Text
'by'          Name.Variable
'   '         Text
'('           Operator
'2'           Literal.Number
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'8'           Literal.Number
' '           Text
'is'          Keyword
' '           Text
'not'         Keyword
'\n   '       Text
'divisible'   Name.Function
'\n   '       Text
'by'          Name.Variable
'\n   '       Text
'('           Operator
'3'           Literal.Number
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nOK\nOK\nOK\nOK\n--TEST--\nTwig supports the .. operator\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'i'           Name.Variable
' '           Text
'in'          Keyword
' '           Text
'0.'          Literal.Number
'.10'         Literal.Number
' '           Text
'%}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'i'           Name.Variable
' '           Text
'}}'          Comment.Preproc
' '           Other
'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'letter'      Name.Variable
' '           Text
'in'          Keyword
' '           Text
"'a'"         Literal.String.Single
'..'          Operator
"'z'"         Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'letter'      Name.Variable
' '           Text
'}}'          Comment.Preproc
' '           Other
'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'letter'      Name.Variable
' '           Text
'in'          Keyword
' '           Text
"'a'"         Literal.String.Single
'|'           Operator
'upper'       Name.Function
'..'          Operator
"'z'"         Literal.String.Single
'|'           Operator
'upper'       Name.Function
' '           Text
'%}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'letter'      Name.Variable
' '           Text
'}}'          Comment.Preproc
' '           Other
'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'i'           Name.Variable
' '           Text
'in'          Keyword
' '           Text
'foo'         Name.Variable
'['           Operator
'0'           Literal.Number
']'           Operator
'..'          Operator
'foo'         Name.Variable
'['           Operator
'1'           Literal.Number
']'           Operator
' '           Text
'%}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'i'           Name.Variable
' '           Text
'}}'          Comment.Preproc
' '           Other
'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'i'           Name.Variable
' '           Text
'in'          Keyword
' '           Text
'0'           Literal.Number
' '           Text
'+'           Operator
' '           Text
'1'           Literal.Number
' '           Text
'..'          Operator
' '           Text
'1'           Literal.Number
'0'           Literal.Number
' '           Text
'-'           Operator
' '           Text
'1'           Literal.Number
' '           Text
'%}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'i'           Name.Variable
' '           Text
'}}'          Comment.Preproc
' '           Other
'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'foo\' => array(1, 10))\n--EXPECT--\n0 1 2 3 4 5 6 7 8 9 10 \na b c d e f g h i j k l m n o p q r s t u v w x y z \nA B C D E F G H I J K L M N O P Q R S T U V W X Y Z \n1 2 3 4 5 6 7 8 9 10 \n1 2 3 4 5 6 7 8 9\n--TEST--\nTwig supports the "ends with" operator\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
"'foo'"       Literal.String.Single
' '           Text
'ends with'   Keyword
' '           Text
"'o'"         Literal.String.Single
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'not'         Keyword
' '           Text
'('           Operator
"'foo'"       Literal.String.Single
' '           Text
'ends with'   Keyword
' '           Text
"'f'"         Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'not'         Keyword
' '           Text
'('           Operator
"'foo'"       Literal.String.Single
' '           Text
'ends with'   Keyword
' '           Text
"'foowaytoolong'" Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'foo'"       Literal.String.Single
' '           Text
'ends with'   Keyword
' '           Text
"''"          Literal.String.Single
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'1'"         Literal.String.Single
' '           Text
'ends with'   Keyword
' '           Text
'true'        Keyword.Pseudo
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'ends with'   Keyword
' '           Text
'true'        Keyword.Pseudo
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'0'           Literal.Number
' '           Text
'ends with'   Keyword
' '           Text
'false'       Keyword.Pseudo
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"''"          Literal.String.Single
' '           Text
'ends with'   Keyword
' '           Text
'false'       Keyword.Pseudo
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'false'       Keyword.Pseudo
' '           Text
'ends with'   Keyword
' '           Text
'false'       Keyword.Pseudo
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'false'       Keyword.Pseudo
' '           Text
'ends with'   Keyword
' '           Text
"''"          Literal.String.Single
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nOK\nOK\nOK\nOK\nKO\nKO\nKO\nKO\nKO\nKO\n--TEST--\nTwig supports grouping of expressions\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'('           Operator
'2'           Literal.Number
' '           Text
'+'           Operator
' '           Text
'2'           Literal.Number
')'           Operator
' '           Text
'/'           Operator
' '           Text
'2'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n2\n--TEST--\nTwig supports literals\n--TEMPLATE--\n1 ' Other
'{{'          Comment.Preproc
' '           Text
'true'        Keyword.Pseudo
' '           Text
'}}'          Comment.Preproc
'\n2 '        Other
'{{'          Comment.Preproc
' '           Text
'TRUE'        Keyword.Pseudo
' '           Text
'}}'          Comment.Preproc
'\n3 '        Other
'{{'          Comment.Preproc
' '           Text
'false'       Keyword.Pseudo
' '           Text
'}}'          Comment.Preproc
'\n4 '        Other
'{{'          Comment.Preproc
' '           Text
'FALSE'       Keyword.Pseudo
' '           Text
'}}'          Comment.Preproc
'\n5 '        Other
'{{'          Comment.Preproc
' '           Text
'none'        Keyword.Pseudo
' '           Text
'}}'          Comment.Preproc
'\n6 '        Other
'{{'          Comment.Preproc
' '           Text
'NONE'        Keyword.Pseudo
' '           Text
'}}'          Comment.Preproc
'\n7 '        Other
'{{'          Comment.Preproc
' '           Text
'null'        Keyword.Pseudo
' '           Text
'}}'          Comment.Preproc
'\n8 '        Other
'{{'          Comment.Preproc
' '           Text
'NULL'        Keyword.Pseudo
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n1 1\n2 1\n3 \n4 \n5 \n6 \n7 \n8 \n--TEST--\nTwig supports __call() for attributes\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
'.foo'        Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
'.bar'        Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n--EXPECT--\nfoo_from_call\nbar_from_getbar\n--TEST--\nTwig supports the "matches" operator\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
"'foo'"       Literal.String.Single
' '           Text
'matches'     Name.Variable
' '           Text
"'/o/'"       Literal.String.Single
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'foo'"       Literal.String.Single
' '           Text
'matches'     Name.Variable
' '           Text
"'/^fo/'"     Literal.String.Single
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'foo'"       Literal.String.Single
' '           Text
'matches'     Name.Variable
' '           Text
"'/O/i'"      Literal.String.Single
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nOK\nOK\nOK\n--TEST--\nTwig supports method calls\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'items'       Name.Variable
'.foo'        Name.Variable
'.foo'        Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'items'       Name.Variable
'.foo'        Name.Variable
'.getFoo'     Name.Variable
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'items'       Name.Variable
'.foo'        Name.Variable
'.bar'        Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'items'       Name.Variable
'.foo'        Name.Variable
'['           Operator
"'bar'"       Literal.String.Single
']'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'items'       Name.Variable
'.foo'        Name.Variable
'.bar'        Name.Variable
'('           Operator
"'a'"         Literal.String.Single
','           Operator
' '           Text
'4'           Literal.Number
'3'           Literal.Number
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'items'       Name.Variable
'.foo'        Name.Variable
'.bar'        Name.Variable
'('           Operator
'foo'         Name.Variable
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'items'       Name.Variable
'.foo'        Name.Variable
'.self'       Name.Variable
'.foo'        Name.Variable
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'items'       Name.Variable
'.foo'        Name.Variable
'.is'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'items'       Name.Variable
'.foo'        Name.Variable
'.in'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'items'       Name.Variable
'.foo'        Name.Variable
'.not'        Name.Variable
' '           Text
'}}'          Comment.Preproc
"\n--DATA--\nreturn array('foo' => 'bar', 'items' => array('foo' => new TwigTestFoo(), 'bar' => 'foo'))\n--CONFIG--\nreturn array('strict_variables' => false)\n--EXPECT--\nfoo\nfoo\nbar\n\nbar_a-43\nbar_bar\nfoo\nis\nin\nnot\n--TEST--\nTwig allows to use named operators as variable names\n--TEMPLATE--\n" Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'match'       Name.Variable
' '           Text
'in'          Keyword
' '           Text
'matches'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
'-'           Operator
' '           Text
'match'       Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'in'          Keyword
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'is'          Name.Variable
' '           Text
'}}'          Comment.Preproc
"\n--DATA--\nreturn array('matches' => array(1, 2, 3), 'in' => 'in', 'is' => 'is')\n--EXPECT--\n1\n2\n3\nin\nis\n--TEST--\nTwig parses postfix expressions\n--TEMPLATE--\n" Other

'{%'          Comment.Preproc
' '           Text
'import'      Keyword
' '           Text
'_self'       Name.Variable
' '           Text
'as'          Name.Variable
' '           Text
'macros'      Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'macro'       Keyword
' '           Text
'foo'         Name.Variable
'('           Operator
')'           Operator
' '           Text
'%}'          Comment.Preproc
'foo'         Other
'{%'          Comment.Preproc
' '           Text
'endmacro'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
"'a'"         Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'a'"         Literal.String.Single
'|'           Operator
'upper'       Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'('           Operator
"'a'"         Literal.String.Single
')'           Operator
'|'           Operator
'upper'       Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'-'           Operator
'1'           Literal.Number
'|'           Operator
'upper'       Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'macros'      Name.Variable
'.foo'        Name.Variable
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'('           Operator
'macros'      Name.Variable
')'           Operator
'.foo'        Name.Variable
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array();\n--EXPECT--\na\nA\nA\n-1\nfoo\nfoo\n--TEST--\nTwig supports the "same as" operator\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
'1'           Literal.Number
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'is'          Keyword
' '           Text
'not'         Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
'true'        Keyword.Pseudo
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
'1'           Literal.Number
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'is'          Keyword
' '           Text
'not'         Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
'true'        Keyword.Pseudo
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'is'          Keyword
'   '         Text
'same'        Name.Function
'    '        Text
'as'          Name.Variable
'   '         Text
'('           Operator
'1'           Literal.Number
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'is'          Keyword
' '           Text
'not'         Keyword
'\n    '      Text
'same'        Name.Function
'\n    '      Text
'as'          Name.Variable
'\n    '      Text
'('           Operator
'true'        Keyword.Pseudo
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nOK\nOK\nOK\nOK\nOK\nOK\n--TEST--\nTwig supports the "starts with" operator\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
"'foo'"       Literal.String.Single
' '           Text
'starts with' Keyword
' '           Text
"'f'"         Literal.String.Single
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'not'         Keyword
' '           Text
'('           Operator
"'foo'"       Literal.String.Single
' '           Text
'starts with' Keyword
' '           Text
"'oo'"        Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'not'         Keyword
' '           Text
'('           Operator
"'foo'"       Literal.String.Single
' '           Text
'starts with' Keyword
' '           Text
"'foowaytoolong'" Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'foo'"       Literal.String.Single
' '           Text
'starts      with' Keyword
' '           Text
"'f'"         Literal.String.Single
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'foo'"       Literal.String.Single
' '           Text
'starts\nwith' Keyword
' '           Text
"'f'"         Literal.String.Single
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'foo'"       Literal.String.Single
' '           Text
'starts with' Keyword
' '           Text
"''"          Literal.String.Single
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'1'"         Literal.String.Single
' '           Text
'starts with' Keyword
' '           Text
'true'        Keyword.Pseudo
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"''"          Literal.String.Single
' '           Text
'starts with' Keyword
' '           Text
'false'       Keyword.Pseudo
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'a'"         Literal.String.Single
' '           Text
'starts with' Keyword
' '           Text
'false'       Keyword.Pseudo
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'false'       Keyword.Pseudo
' '           Text
'starts with' Keyword
' '           Text
"''"          Literal.String.Single
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nOK\nOK\nOK\nOK\nOK\nOK\nKO\nKO\nKO\nKO\n--TEST--\nTwig supports string interpolation\n--TEMPLATE--\n' Other

'{# "foo #{"foo #{bar} baz"} baz" #}' Comment
'\n'          Other

'{# "foo #{bar}#{bar} baz" #}' Comment
"\n--DATA--\nreturn array('bar' => 'BAR');\n--EXPECT--\nfoo foo BAR baz baz\nfoo BARBAR baz\n--TEST--\nTwig supports the ternary operator\n--TEMPLATE--\n" Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'?'           Operator
' '           Text
"'YES'"       Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'0'           Literal.Number
' '           Text
'?'           Operator
' '           Text
"'YES'"       Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nYES\n\n--TEST--\nTwig supports the ternary operator\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
"'YES'"       Literal.String.Single
' '           Text
'?'           Operator
':'           Operator
' '           Text
"'NO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'0'           Literal.Number
' '           Text
'?'           Operator
':'           Operator
' '           Text
"'NO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nYES\nNO\n--TEST--\nTwig supports the ternary operator\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'?'           Operator
' '           Text
"'YES'"       Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'NO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'0'           Literal.Number
' '           Text
'?'           Operator
' '           Text
"'YES'"       Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'NO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'0'           Literal.Number
' '           Text
'?'           Operator
' '           Text
"'YES'"       Literal.String.Single
' '           Text
':'           Operator
' '           Text
'('           Operator
'1'           Literal.Number
' '           Text
'?'           Operator
' '           Text
"'YES1'"      Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'NO1'"       Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'0'           Literal.Number
' '           Text
'?'           Operator
' '           Text
"'YES'"       Literal.String.Single
' '           Text
':'           Operator
' '           Text
'('           Operator
'0'           Literal.Number
' '           Text
'?'           Operator
' '           Text
"'YES1'"      Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'NO1'"       Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'=='          Operator
' '           Text
'1'           Literal.Number
' '           Text
'?'           Operator
' '           Text
"'foo<br />'" Literal.String.Single
":''"         Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
' '           Text
'~'           Operator
' '           Text
'('           Operator
'bar'         Name.Variable
' '           Text
'?'           Operator
' '           Text
'('           Operator
"'-'"         Literal.String.Single
' '           Text
'~'           Operator
' '           Text
'bar'         Name.Variable
')'           Operator
' '           Text
':'           Operator
' '           Text
"''"          Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
"\n--DATA--\nreturn array('foo' => 'foo', 'bar' => 'bar')\n--EXPECT--\nYES\nNO\nYES1\nNO1\nfoo<br />\nfoo-bar\n--TEST--\nTwig does not allow to use two-word named operators as variable names\n--TEMPLATE--\n" Other

'{{'          Comment.Preproc
' '           Text
'starts with' Keyword
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXCEPTION--\nTwig_Error_Syntax: Unexpected token "operator" of value "starts with" in "index.twig" at line 2\n--TEST--\nTwig unary operators precedence\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'-'           Operator
'1'           Literal.Number
' '           Text
'-'           Operator
' '           Text
'1'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'-'           Operator
'1'           Literal.Number
' '           Text
'-'           Operator
' '           Text
'-'           Operator
'1'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'-'           Operator
'1'           Literal.Number
' '           Text
'*'           Operator
' '           Text
'-'           Operator
'1'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'4'           Literal.Number
' '           Text
'/'           Operator
' '           Text
'-'           Operator
'1'           Literal.Number
' '           Text
'*'           Operator
' '           Text
'5'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n-2\n0\n1\n-20\n--TEST--\nTwig supports unary operators (not, -, +)\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'not'         Keyword
' '           Text
'1'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'/'           Other
'{{'          Comment.Preproc
' '           Text
'not'         Keyword
' '           Text
'0'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'+'           Operator
'1'           Literal.Number
' '           Text
'+'           Operator
' '           Text
'1'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'/'           Other
'{{'          Comment.Preproc
' '           Text
'-'           Operator
'1'           Literal.Number
' '           Text
'-'           Operator
' '           Text
'1'           Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'not'         Keyword
' '           Text
'('           Operator
'false'       Keyword.Pseudo
' '           Text
'or'          Keyword
' '           Text
'true'        Keyword.Pseudo
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n/1\n2/-2\n\n--TEST--\n"abs" filter\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'('           Operator
'-'           Operator
'5.5'         Literal.Number
')'           Operator
'|'           Operator
'abs'         Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'('           Operator
'-'           Operator
'5'           Literal.Number
')'           Operator
'|'           Operator
'abs'         Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'('           Operator
'-'           Operator
'0'           Literal.Number
')'           Operator
'|'           Operator
'abs'         Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'0'           Literal.Number
'|'           Operator
'abs'         Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'5'           Literal.Number
'|'           Operator
'abs'         Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'5.5'         Literal.Number
'|'           Operator
'abs'         Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'number1'     Name.Variable
'|'           Operator
'abs'         Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'number2'     Name.Variable
'|'           Operator
'abs'         Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'number3'     Name.Variable
'|'           Operator
'abs'         Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'number4'     Name.Variable
'|'           Operator
'abs'         Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'number5'     Name.Variable
'|'           Operator
'abs'         Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'number6'     Name.Variable
'|'           Operator
'abs'         Name.Function
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\'number1\' => -5.5, \'number2\' => -5, \'number3\' => -0, \'number4\' => 0, \'number5\' => 5, \'number6\' => 5.5)\n--EXPECT--\n5.5\n5\n0\n0\n5\n5.5\n5.5\n5\n0\n0\n5\n5.5\n--TEST--\n"batch" filter\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'row'         Name.Variable
' '           Text
'in'          Keyword
' '           Text
'items'       Name.Variable
'|'           Operator
'batch'       Name.Function
'('           Operator
'3.1'         Literal.Number
')'           Operator
' '           Text
'%}'          Comment.Preproc
'\n  <div class=row>\n  ' Other
'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'column'      Name.Variable
' '           Text
'in'          Keyword
' '           Text
'row'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    <div class=item>' Other
'{{'          Comment.Preproc
' '           Text
'column'      Name.Variable
' '           Text
'}}'          Comment.Preproc
'</div>\n  '  Other
'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n  </div>\n' Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'items\' => array(\'a\', \'b\', \'c\', \'d\', \'e\', \'f\', \'g\', \'h\', \'i\', \'j\'))\n--EXPECT--\n<div class=row>\n      <div class=item>a</div>\n      <div class=item>b</div>\n      <div class=item>c</div>\n      <div class=item>d</div>\n    </div>\n  <div class=row>\n      <div class=item>e</div>\n      <div class=item>f</div>\n      <div class=item>g</div>\n      <div class=item>h</div>\n    </div>\n  <div class=row>\n      <div class=item>i</div>\n      <div class=item>j</div>\n    </div>\n--TEST--\n"batch" filter\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'row'         Name.Variable
' '           Text
'in'          Keyword
' '           Text
'items'       Name.Variable
'|'           Operator
'batch'       Name.Function
'('           Operator
'3'           Literal.Number
')'           Operator
' '           Text
'%}'          Comment.Preproc
'\n  <div class=row>\n  ' Other
'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'column'      Name.Variable
' '           Text
'in'          Keyword
' '           Text
'row'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    <div class=item>' Other
'{{'          Comment.Preproc
' '           Text
'column'      Name.Variable
' '           Text
'}}'          Comment.Preproc
'</div>\n  '  Other
'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n  </div>\n' Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'items\' => array(\'a\', \'b\', \'c\', \'d\', \'e\', \'f\', \'g\', \'h\', \'i\', \'j\'))\n--EXPECT--\n<div class=row>\n      <div class=item>a</div>\n      <div class=item>b</div>\n      <div class=item>c</div>\n    </div>\n  <div class=row>\n      <div class=item>d</div>\n      <div class=item>e</div>\n      <div class=item>f</div>\n    </div>\n  <div class=row>\n      <div class=item>g</div>\n      <div class=item>h</div>\n      <div class=item>i</div>\n    </div>\n  <div class=row>\n      <div class=item>j</div>\n    </div>\n--TEST--\n"batch" filter\n--TEMPLATE--\n<table>\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'row'         Name.Variable
' '           Text
'in'          Keyword
' '           Text
'items'       Name.Variable
'|'           Operator
'batch'       Name.Function
'('           Operator
'3'           Literal.Number
','           Operator
' '           Text
"''"          Literal.String.Single
')'           Operator
' '           Text
'%}'          Comment.Preproc
'\n  <tr>\n  ' Other
'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'column'      Name.Variable
' '           Text
'in'          Keyword
' '           Text
'row'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    <td>'  Other
'{{'          Comment.Preproc
' '           Text
'column'      Name.Variable
' '           Text
'}}'          Comment.Preproc
'</td>\n  '   Other
'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n  </tr>\n' Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n</table>\n--DATA--\nreturn array(\'items\' => array(\'a\', \'b\', \'c\', \'d\', \'e\', \'f\', \'g\', \'h\', \'i\', \'j\'))\n--EXPECT--\n<table>\n  <tr>\n      <td>a</td>\n      <td>b</td>\n      <td>c</td>\n    </tr>\n  <tr>\n      <td>d</td>\n      <td>e</td>\n      <td>f</td>\n    </tr>\n  <tr>\n      <td>g</td>\n      <td>h</td>\n      <td>i</td>\n    </tr>\n  <tr>\n      <td>j</td>\n      <td></td>\n      <td></td>\n    </tr>\n</table>\n--TEST--\n"batch" filter\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'row'         Name.Variable
' '           Text
'in'          Keyword
' '           Text
'items'       Name.Variable
'|'           Operator
'batch'       Name.Function
'('           Operator
'3'           Literal.Number
','           Operator
' '           Text
"'fill'"      Literal.String.Single
')'           Operator
' '           Text
'%}'          Comment.Preproc
'\n  <div class=row>\n  ' Other
'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'column'      Name.Variable
' '           Text
'in'          Keyword
' '           Text
'row'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    <div class=item>' Other
'{{'          Comment.Preproc
' '           Text
'column'      Name.Variable
' '           Text
'}}'          Comment.Preproc
'</div>\n  '  Other
'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n  </div>\n' Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'items\' => array(\'a\', \'b\', \'c\', \'d\', \'e\', \'f\', \'g\', \'h\', \'i\', \'j\', \'k\', \'l\'))\n--EXPECT--\n<div class=row>\n      <div class=item>a</div>\n      <div class=item>b</div>\n      <div class=item>c</div>\n    </div>\n  <div class=row>\n      <div class=item>d</div>\n      <div class=item>e</div>\n      <div class=item>f</div>\n    </div>\n  <div class=row>\n      <div class=item>g</div>\n      <div class=item>h</div>\n      <div class=item>i</div>\n    </div>\n  <div class=row>\n      <div class=item>j</div>\n      <div class=item>k</div>\n      <div class=item>l</div>\n    </div>\n--TEST--\n"batch" filter\n--TEMPLATE--\n<table>\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'row'         Name.Variable
' '           Text
'in'          Keyword
' '           Text
'items'       Name.Variable
'|'           Operator
'batch'       Name.Function
'('           Operator
'3'           Literal.Number
','           Operator
' '           Text
"'fill'"      Literal.String.Single
')'           Operator
' '           Text
'%}'          Comment.Preproc
'\n  <tr>\n  ' Other
'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'column'      Name.Variable
' '           Text
'in'          Keyword
' '           Text
'row'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    <td>'  Other
'{{'          Comment.Preproc
' '           Text
'column'      Name.Variable
' '           Text
'}}'          Comment.Preproc
'</td>\n  '   Other
'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n  </tr>\n' Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n</table>\n--DATA--\nreturn array(\'items\' => array(\'a\', \'b\', \'c\', \'d\', \'e\', \'f\', \'g\', \'h\', \'i\', \'j\'))\n--EXPECT--\n<table>\n  <tr>\n      <td>a</td>\n      <td>b</td>\n      <td>c</td>\n    </tr>\n  <tr>\n      <td>d</td>\n      <td>e</td>\n      <td>f</td>\n    </tr>\n  <tr>\n      <td>g</td>\n      <td>h</td>\n      <td>i</td>\n    </tr>\n  <tr>\n      <td>j</td>\n      <td>fill</td>\n      <td>fill</td>\n    </tr>\n</table>\n--TEST--\n"convert_encoding" filter\n--CONDITION--\nfunction_exists(\'iconv\') || function_exists(\'mb_convert_encoding\')\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'"愛していますか？"'  Literal.String.Double
'|'           Operator
'convert_encoding' Name.Function
'('           Operator
"'ISO-2022-JP'" Literal.String.Single
','           Operator
' '           Text
"'UTF-8'"     Literal.String.Single
')'           Operator
'|'           Operator
'convert_encoding' Name.Function
'('           Operator
"'UTF-8'"     Literal.String.Single
','           Operator
' '           Text
"'ISO-2022-JP'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n愛していますか？\n--TEST--\n"date" filter (interval support as of PHP 5.3)\n--CONDITION--\nversion_compare(phpversion(), \'5.3.0\', \'>=\')\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'date2'       Name.Variable
'|'           Operator
'date'        Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date2'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'%d days'"   Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\ndate_default_timezone_set(\'UTC\');\n$twig->getExtension(\'core\')->setDateFormat(\'Y-m-d\', \'%d days %h hours\');\nreturn array(\n    \'date2\' => new DateInterval(\'P2D\'),\n)\n--EXPECT--\n2 days 0 hours\n2 days\n--TEST--\n"date" filter\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'date1'       Name.Variable
'|'           Operator
'date'        Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date1'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'d/m/Y'"     Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\ndate_default_timezone_set(\'UTC\');\n$twig->getExtension(\'core\')->setDateFormat(\'Y-m-d\', \'%d days %h hours\');\nreturn array(\n    \'date1\' => mktime(13, 45, 0, 10, 4, 2010),\n)\n--EXPECT--\n2010-10-04\n04/10/2010\n--TEST--\n"date" filter\n--CONDITION--\nversion_compare(phpversion(), \'5.5.0\', \'>=\')\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'date1'       Name.Variable
'|'           Operator
'date'        Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date1'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'d/m/Y'"     Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date1'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'d/m/Y H:i:s'" Literal.String.Single
','           Operator
' '           Text
"'Asia/Hong_Kong'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date1'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'d/m/Y H:i:s'" Literal.String.Single
','           Operator
' '           Text
'timezone1'   Name.Variable
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date1'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'d/m/Y H:i:s'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'date2'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'d/m/Y H:i:s P'" Literal.String.Single
','           Operator
' '           Text
"'Europe/Paris'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date2'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'d/m/Y H:i:s P'" Literal.String.Single
','           Operator
' '           Text
"'Asia/Hong_Kong'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date2'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'d/m/Y H:i:s P'" Literal.String.Single
','           Operator
' '           Text
'false'       Keyword.Pseudo
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date2'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'e'"         Literal.String.Single
','           Operator
' '           Text
"'Europe/Paris'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date2'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'e'"         Literal.String.Single
','           Operator
' '           Text
'false'       Keyword.Pseudo
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\ndate_default_timezone_set(\'Europe/Paris\');\nreturn array(\n    \'date1\' => new DateTimeImmutable(\'2010-10-04 13:45\'),\n    \'date2\' => new DateTimeImmutable(\'2010-10-04 13:45\', new DateTimeZone(\'America/New_York\')),\n    \'timezone1\' => new DateTimeZone(\'America/New_York\'),\n)\n--EXPECT--\nOctober 4, 2010 13:45\n04/10/2010\n04/10/2010 19:45:00\n04/10/2010 07:45:00\n04/10/2010 13:45:00\n\n04/10/2010 19:45:00 +02:00\n05/10/2010 01:45:00 +08:00\n04/10/2010 13:45:00 -04:00\nEurope/Paris\nAmerica/New_York\n--TEST--\n"date" filter (interval support as of PHP 5.3)\n--CONDITION--\nversion_compare(phpversion(), \'5.3.0\', \'>=\')\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'date1'       Name.Variable
'|'           Operator
'date'        Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date1'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'%d days %h hours'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date1'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'%d days %h hours'" Literal.String.Single
','           Operator
' '           Text
'timezone1'   Name.Variable
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\ndate_default_timezone_set(\'UTC\');\nreturn array(\n    \'date1\' => new DateInterval(\'P2D\'),\n    // This should have no effect on DateInterval formatting\n    \'timezone1\' => new DateTimeZone(\'America/New_York\'),\n)\n--EXPECT--\n2 days\n2 days 0 hours\n2 days 0 hours\n--TEST--\n"date_modify" filter\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'date1'       Name.Variable
'|'           Operator
'date_modify' Name.Function
'('           Operator
"'-1day'"     Literal.String.Single
')'           Operator
'|'           Operator
'date'        Name.Function
'('           Operator
"'Y-m-d H:i:s'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date2'       Name.Variable
'|'           Operator
'date_modify' Name.Function
'('           Operator
"'-1day'"     Literal.String.Single
')'           Operator
'|'           Operator
'date'        Name.Function
'('           Operator
"'Y-m-d H:i:s'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\ndate_default_timezone_set(\'UTC\');\nreturn array(\n    \'date1\' => \'2010-10-04 13:45\',\n    \'date2\' => new DateTime(\'2010-10-04 13:45\'),\n)\n--EXPECT--\n2010-10-03 13:45:00\n2010-10-03 13:45:00\n--TEST--\n"date" filter\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'date'        Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
'format'      Name.Variable
'='           Operator
"'d/m/Y H:i:s P'" Literal.String.Single
','           Operator
' '           Text
'timezone'    Name.Variable
'='           Operator
"'America/Chicago'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date'        Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
'timezone'    Name.Variable
'='           Operator
"'America/Chicago'" Literal.String.Single
','           Operator
' '           Text
'format'      Name.Variable
'='           Operator
"'d/m/Y H:i:s P'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date'        Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'d/m/Y H:i:s P'" Literal.String.Single
','           Operator
' '           Text
'timezone'    Name.Variable
'='           Operator
"'America/Chicago'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\ndate_default_timezone_set(\'UTC\');\nreturn array(\'date\' => mktime(13, 45, 0, 10, 4, 2010))\n--EXPECT--\n04/10/2010 08:45:00 -05:00\n04/10/2010 08:45:00 -05:00\n04/10/2010 08:45:00 -05:00\n--TEST--\n"date" filter\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'date1'       Name.Variable
'|'           Operator
'date'        Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date1'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'d/m/Y'"     Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date1'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'d/m/Y H:i:s'" Literal.String.Single
','           Operator
' '           Text
"'Asia/Hong_Kong'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date1'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'d/m/Y H:i:s P'" Literal.String.Single
','           Operator
' '           Text
"'Asia/Hong_Kong'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date1'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'d/m/Y H:i:s P'" Literal.String.Single
','           Operator
' '           Text
"'America/Chicago'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date1'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'e'"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date1'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'d/m/Y H:i:s'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'date2'       Name.Variable
'|'           Operator
'date'        Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date2'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'d/m/Y'"     Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date2'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'d/m/Y H:i:s'" Literal.String.Single
','           Operator
' '           Text
"'Asia/Hong_Kong'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date2'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'d/m/Y H:i:s'" Literal.String.Single
','           Operator
' '           Text
'timezone1'   Name.Variable
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date2'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'d/m/Y H:i:s'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'date3'       Name.Variable
'|'           Operator
'date'        Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date3'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'d/m/Y'"     Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'date4'       Name.Variable
'|'           Operator
'date'        Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date4'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'d/m/Y'"     Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'date5'       Name.Variable
'|'           Operator
'date'        Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date5'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'d/m/Y'"     Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'date6'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'d/m/Y H:i:s P'" Literal.String.Single
','           Operator
' '           Text
"'Europe/Paris'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date6'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'d/m/Y H:i:s P'" Literal.String.Single
','           Operator
' '           Text
"'Asia/Hong_Kong'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date6'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'d/m/Y H:i:s P'" Literal.String.Single
','           Operator
' '           Text
'false'       Keyword.Pseudo
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date6'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'e'"         Literal.String.Single
','           Operator
' '           Text
"'Europe/Paris'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date6'       Name.Variable
'|'           Operator
'date'        Name.Function
'('           Operator
"'e'"         Literal.String.Single
','           Operator
' '           Text
'false'       Keyword.Pseudo
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'date7'       Name.Variable
'|'           Operator
'date'        Name.Function
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\ndate_default_timezone_set(\'Europe/Paris\');\nreturn array(\n    \'date1\' => mktime(13, 45, 0, 10, 4, 2010),\n    \'date2\' => new DateTime(\'2010-10-04 13:45\'),\n    \'date3\' => \'2010-10-04 13:45\',\n    \'date4\' => 1286199900, // DateTime::createFromFormat(\'Y-m-d H:i\', \'2010-10-04 13:45\', new DateTimeZone(\'UTC\'))->getTimestamp() -- A unixtimestamp is always GMT\n    \'date5\' => -189291360, // DateTime::createFromFormat(\'Y-m-d H:i\', \'1964-01-02 03:04\', new DateTimeZone(\'UTC\'))->getTimestamp(),\n    \'date6\' => new DateTime(\'2010-10-04 13:45\', new DateTimeZone(\'America/New_York\')),\n    \'date7\' => \'2010-01-28T15:00:00+05:00\',\n    \'timezone1\' => new DateTimeZone(\'America/New_York\'),\n)\n--EXPECT--\nOctober 4, 2010 13:45\n04/10/2010\n04/10/2010 19:45:00\n04/10/2010 19:45:00 +08:00\n04/10/2010 06:45:00 -05:00\nEurope/Paris\n04/10/2010 13:45:00\n\nOctober 4, 2010 13:45\n04/10/2010\n04/10/2010 19:45:00\n04/10/2010 07:45:00\n04/10/2010 13:45:00\n\nOctober 4, 2010 13:45\n04/10/2010\n\nOctober 4, 2010 15:45\n04/10/2010\n\nJanuary 2, 1964 04:04\n02/01/1964\n\n04/10/2010 19:45:00 +02:00\n05/10/2010 01:45:00 +08:00\n04/10/2010 13:45:00 -04:00\nEurope/Paris\nAmerica/New_York\n\nJanuary 28, 2010 11:00\n--TEST--\n"default" filter\n--TEMPLATE--\nVariable:\n' Other

'{{'          Comment.Preproc
' '           Text
'definedVar'  Name.Variable
'                  ' Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'zeroVar'     Name.Variable
'                     ' Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'emptyVar'    Name.Variable
'                    ' Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'nullVar'     Name.Variable
'                     ' Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'undefinedVar' Name.Variable
'                ' Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\nArray access:\n' Other

'{{'          Comment.Preproc
' '           Text
'nested'      Name.Variable
'.definedVar' Name.Variable
'           ' Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'nested'      Name.Variable
'['           Operator
"'definedVar'" Literal.String.Single
']'           Operator
'        '    Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'nested'      Name.Variable
'.zeroVar'    Name.Variable
'              ' Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'nested'      Name.Variable
'.emptyVar'   Name.Variable
'             ' Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'nested'      Name.Variable
'.nullVar'    Name.Variable
'              ' Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'nested'      Name.Variable
'.undefinedVar' Name.Variable
'         '   Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'nested'      Name.Variable
'['           Operator
"'undefinedVar'" Literal.String.Single
']'           Operator
'      '      Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'undefinedVar' Name.Variable
'.foo'        Name.Variable
'            ' Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\nPlain values:\n' Other

'{{'          Comment.Preproc
' '           Text
"'defined'"   Literal.String.Single
'                   ' Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'0'           Literal.Number
'                           ' Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"''"          Literal.String.Single
'                          ' Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'null'        Keyword.Pseudo
'                        ' Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\nPrecedence:\n' Other

'{{'          Comment.Preproc
' '           Text
"'o'"         Literal.String.Single
' '           Text
'~'           Operator
' '           Text
'nullVar'     Name.Variable
'               ' Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'k'"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'o'"         Literal.String.Single
' '           Text
'~'           Operator
' '           Text
'nested'      Name.Variable
'.nullVar'    Name.Variable
'        '    Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'k'"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\nObject methods:\n' Other

'{{'          Comment.Preproc
' '           Text
'object'      Name.Variable
'.foo'        Name.Variable
'                  ' Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'object'      Name.Variable
'.undefinedMethod' Name.Variable
'      '      Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'object'      Name.Variable
'.getFoo'     Name.Variable
'('           Operator
')'           Operator
'             ' Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'object'      Name.Variable
'.getFoo'     Name.Variable
'('           Operator
"'a'"         Literal.String.Single
')'           Operator
'          '  Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'object'      Name.Variable
'.undefinedMethod' Name.Variable
'('           Operator
')'           Operator
'    '        Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'object'      Name.Variable
'.undefinedMethod' Name.Variable
'('           Operator
"'a'"         Literal.String.Single
')'           Operator
' '           Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\nDeep nested:\n' Other

'{{'          Comment.Preproc
' '           Text
'nested'      Name.Variable
'.undefinedVar' Name.Variable
'.foo'        Name.Variable
'.bar'        Name.Variable
' '           Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'nested'      Name.Variable
'.definedArray' Name.Variable
'.0'          Literal.Number
'       '     Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'nested'      Name.Variable
'['           Operator
"'definedArray'" Literal.String.Single
']'           Operator
'['           Operator
'0'           Literal.Number
']'           Operator
'   '         Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'object'      Name.Variable
'.self'       Name.Variable
'.foo'        Name.Variable
'             ' Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'object'      Name.Variable
'.self'       Name.Variable
'.undefinedMethod' Name.Variable
' '           Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'object'      Name.Variable
'.undefinedMethod' Name.Variable
'.self'       Name.Variable
' '           Text
'|'           Operator
'default'     Name.Function
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'same'        Name.Function
' '           Text
'as'          Name.Variable
'('           Operator
"'default'"   Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
"\n--DATA--\nreturn array(\n    'definedVar' => 'defined',\n    'zeroVar'    => 0,\n    'emptyVar'   => '',\n    'nullVar'    => null,\n    'nested'     => array(\n        'definedVar'   => 'defined',\n        'zeroVar'      => 0,\n        'emptyVar'     => '',\n        'nullVar'      => null,\n        'definedArray' => array(0),\n    ),\n    'object' => new TwigTestFoo(),\n)\n--CONFIG--\nreturn array('strict_variables' => false)\n--EXPECT--\nVariable:\nok\nok\nok\nok\nok\nArray access:\nok\nok\nok\nok\nok\nok\nok\nok\nPlain values:\nok\nok\nok\nok\nPrecedence:\nok\nok\nObject methods:\nok\nok\nok\nok\nok\nok\nDeep nested:\nok\nok\nok\nok\nok\nok\n--DATA--\nreturn array(\n    'definedVar' => 'defined',\n    'zeroVar'    => 0,\n    'emptyVar'   => '',\n    'nullVar'    => null,\n    'nested'     => array(\n        'definedVar'   => 'defined',\n        'zeroVar'      => 0,\n        'emptyVar'     => '',\n        'nullVar'      => null,\n        'definedArray' => array(0),\n    ),\n    'object' => new TwigTestFoo(),\n)\n--CONFIG--\nreturn array('strict_variables' => true)\n--EXPECT--\nVariable:\nok\nok\nok\nok\nok\nArray access:\nok\nok\nok\nok\nok\nok\nok\nok\nPlain values:\nok\nok\nok\nok\nPrecedence:\nok\nok\nObject methods:\nok\nok\nok\nok\nok\nok\nDeep nested:\nok\nok\nok\nok\nok\nok\n--TEST--\ndynamic filter\n--TEMPLATE--\n" Other

'{{'          Comment.Preproc
' '           Text
"'bar'"       Literal.String.Single
'|'           Operator
'foo_path'    Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'bar'"       Literal.String.Single
'|'           Operator
'a_foo_b_bar' Name.Function
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nfoo/bar\na/b/bar\n--TEST--\n"escape" filter does not escape with the html strategy when using the html_attr strategy\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
"'<br />'"    Literal.String.Single
'|'           Operator
'escape'      Name.Function
'('           Operator
"'html_attr'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n&lt;br&#x20;&#x2F;&gt;\n--TEST--\n"escape" filter\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'"愛していますか？ <br />"' Literal.String.Double
'|'           Operator
'e'           Name.Function
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n愛していますか？ &lt;br /&gt;\n--TEST--\n"escape" filter\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'"foo <br />"' Literal.String.Double
'|'           Operator
'e'           Name.Function
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nfoo &lt;br /&gt;\n--TEST--\n"first" filter\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'['           Operator
'1'           Literal.Number
','           Operator
' '           Text
'2'           Literal.Number
','           Operator
' '           Text
'3'           Literal.Number
','           Operator
' '           Text
'4'           Literal.Number
']'           Operator
'|'           Operator
'first'       Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'{'           Operator
'a'           Name.Variable
':'           Operator
' '           Text
'1'           Literal.Number
','           Operator
' '           Text
'b'           Name.Variable
':'           Operator
' '           Text
'2'           Literal.Number
','           Operator
' '           Text
'c'           Name.Variable
':'           Operator
' '           Text
'3'           Literal.Number
','           Operator
' '           Text
'd'           Name.Variable
':'           Operator
' '           Text
'4'           Literal.Number
'}'           Operator
'|'           Operator
'first'       Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'1234'"      Literal.String.Single
'|'           Operator
'first'       Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'arr'         Name.Variable
'|'           Operator
'first'       Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'Ä€é'"       Literal.String.Single
'|'           Operator
'first'       Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"''"          Literal.String.Single
'|'           Operator
'first'       Name.Function
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\'arr\' => new ArrayObject(array(1, 2, 3, 4)))\n--EXPECT--\n1\n1\n1\n1\nÄ\n--TEST--\n"escape" filter\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'set'         Keyword
' '           Text
'foo'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    foo<br />\n' Other

'{%'          Comment.Preproc
' '           Text
'endset'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
'|'           Operator
'e'           Name.Function
'('           Operator
"'html'"      Literal.String.Single
')'           Operator
' '           Text
'-'           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
'|'           Operator
'e'           Name.Function
'('           Operator
"'js'"        Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
'true'        Keyword.Pseudo
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n    foo&lt;br /&gt;\n\\x20\\x20\\x20\\x20foo\\x3Cbr\\x20\\x2F\\x3E\\x0A\n        foo<br />\n--TEST--\n"format" filter\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'string'      Name.Variable
'|'           Operator
'format'      Name.Function
'('           Operator
'foo'         Name.Variable
','           Operator
' '           Text
'3'           Literal.Number
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\'string\' => \'%s/%d\', \'foo\' => \'bar\')\n--EXPECT--\nbar/3\n--TEST--\n"join" filter\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'['           Operator
'"foo"'       Literal.String.Double
','           Operator
' '           Text
'"bar"'       Literal.String.Double
']'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"', '"        Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
'|'           Operator
'join'        Name.Function
'('           Operator
"', '"        Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'bar'         Name.Variable
'|'           Operator
'join'        Name.Function
'('           Operator
"', '"        Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\'foo\' => new TwigTestFoo(), \'bar\' => new ArrayObject(array(3, 4)))\n--EXPECT--\nfoo, bar\n1, 2\n3, 4\n--TEST--\n"json_encode" filter\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'"foo"'       Literal.String.Double
'|'           Operator
'json_encode' Name.Function
'|'           Operator
'raw'         Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
'|'           Operator
'json_encode' Name.Function
'|'           Operator
'raw'         Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'['           Operator
'foo'         Name.Variable
','           Operator
' '           Text
'"foo"'       Literal.String.Double
']'           Operator
'|'           Operator
'json_encode' Name.Function
'|'           Operator
'raw'         Name.Function
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\'foo\' => new Twig_Markup(\'foo\', \'UTF-8\'))\n--EXPECT--\n"foo"\n"foo"\n["foo","foo"]\n--TEST--\n"last" filter\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'['           Operator
'1'           Literal.Number
','           Operator
' '           Text
'2'           Literal.Number
','           Operator
' '           Text
'3'           Literal.Number
','           Operator
' '           Text
'4'           Literal.Number
']'           Operator
'|'           Operator
'last'        Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'{'           Operator
'a'           Name.Variable
':'           Operator
' '           Text
'1'           Literal.Number
','           Operator
' '           Text
'b'           Name.Variable
':'           Operator
' '           Text
'2'           Literal.Number
','           Operator
' '           Text
'c'           Name.Variable
':'           Operator
' '           Text
'3'           Literal.Number
','           Operator
' '           Text
'd'           Name.Variable
':'           Operator
' '           Text
'4'           Literal.Number
'}'           Operator
'|'           Operator
'last'        Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'1234'"      Literal.String.Single
'|'           Operator
'last'        Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'arr'         Name.Variable
'|'           Operator
'last'        Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'Ä€é'"       Literal.String.Single
'|'           Operator
'last'        Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"''"          Literal.String.Single
'|'           Operator
'last'        Name.Function
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\'arr\' => new ArrayObject(array(1, 2, 3, 4)))\n--EXPECT--\n4\n4\n4\n4\né\n--TEST--\n"length" filter\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'array'       Name.Variable
'|'           Operator
'length'      Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'string'      Name.Variable
'|'           Operator
'length'      Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'number'      Name.Variable
'|'           Operator
'length'      Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'markup'      Name.Variable
'|'           Operator
'length'      Name.Function
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\'array\' => array(1, 4), \'string\' => \'foo\', \'number\' => 1000, \'markup\' => new Twig_Markup(\'foo\', \'UTF-8\'))\n--EXPECT--\n2\n3\n4\n3\n--TEST--\n"length" filter\n--CONDITION--\nfunction_exists(\'mb_get_info\')\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'string'      Name.Variable
'|'           Operator
'length'      Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'markup'      Name.Variable
'|'           Operator
'length'      Name.Function
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\'string\' => \'été\', \'markup\' => new Twig_Markup(\'foo\', \'UTF-8\'))\n--EXPECT--\n3\n3\n--TEST--\n"merge" filter\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'items'       Name.Variable
'|'           Operator
'merge'       Name.Function
'('           Operator
'{'           Operator
"'bar'"       Literal.String.Single
':'           Operator
' '           Text
"'foo'"       Literal.String.Single
'}'           Operator
')'           Operator
'|'           Operator
'join'        Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'items'       Name.Variable
'|'           Operator
'merge'       Name.Function
'('           Operator
'{'           Operator
"'bar'"       Literal.String.Single
':'           Operator
' '           Text
"'foo'"       Literal.String.Single
'}'           Operator
')'           Operator
'|'           Operator
'keys'        Name.Function
'|'           Operator
'join'        Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'{'           Operator
"'bar'"       Literal.String.Single
':'           Operator
' '           Text
"'foo'"       Literal.String.Single
'}'           Operator
'|'           Operator
'merge'       Name.Function
'('           Operator
'items'       Name.Variable
')'           Operator
'|'           Operator
'join'        Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'{'           Operator
"'bar'"       Literal.String.Single
':'           Operator
' '           Text
"'foo'"       Literal.String.Single
'}'           Operator
'|'           Operator
'merge'       Name.Function
'('           Operator
'items'       Name.Variable
')'           Operator
'|'           Operator
'keys'        Name.Function
'|'           Operator
'join'        Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'numerics'    Name.Variable
'|'           Operator
'merge'       Name.Function
'('           Operator
'['           Operator
'4'           Literal.Number
','           Operator
' '           Text
'5'           Literal.Number
','           Operator
' '           Text
'6'           Literal.Number
']'           Operator
')'           Operator
'|'           Operator
'join'        Name.Function
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\'items\' => array(\'foo\' => \'bar\'), \'numerics\' => array(1, 2, 3))\n--EXPECT--\nbarfoo\nfoobar\nfoobar\nbarfoo\n123456\n--TEST--\n"nl2br" filter\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'"I like Twig.\\nYou will like it too.\\n\\nEverybody like it!"' Literal.String.Double
'|'           Operator
'nl2br'       Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'text'        Name.Variable
'|'           Operator
'nl2br'       Name.Function
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\'text\' => "If you have some <strong>HTML</strong>\\nit will be escaped.")\n--EXPECT--\nI like Twig.<br />\nYou will like it too.<br />\n<br />\nEverybody like it!\nIf you have some &lt;strong&gt;HTML&lt;/strong&gt;<br />\nit will be escaped.\n--TEST--\n"number_format" filter with defaults.\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'2'           Literal.Number
'0'           Literal.Number
'|'           Operator
'number_format' Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'2'           Literal.Number
'0.25'        Literal.Number
'|'           Operator
'number_format' Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'2'           Literal.Number
'0.25'        Literal.Number
'|'           Operator
'number_format' Name.Function
'('           Operator
'1'           Literal.Number
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'2'           Literal.Number
'0.25'        Literal.Number
'|'           Operator
'number_format' Name.Function
'('           Operator
'2'           Literal.Number
','           Operator
' '           Text
"','"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
'0'           Literal.Number
'2'           Literal.Number
'0.25'        Literal.Number
'|'           Operator
'number_format' Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
'0'           Literal.Number
'2'           Literal.Number
'0.25'        Literal.Number
'|'           Operator
'number_format' Name.Function
'('           Operator
'2'           Literal.Number
','           Operator
' '           Text
"','"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
'0'           Literal.Number
'2'           Literal.Number
'0.25'        Literal.Number
'|'           Operator
'number_format' Name.Function
'('           Operator
'2'           Literal.Number
','           Operator
' '           Text
"','"         Literal.String.Single
','           Operator
' '           Text
"'.'"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\n$twig->getExtension(\'core\')->setNumberFormat(2, \'!\', \'=\');\nreturn array();\n--EXPECT--\n20!00\n20!25\n20!3\n20,25\n1=020!25\n1=020,25\n1.020,25\n--TEST--\n"number_format" filter\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'2'           Literal.Number
'0'           Literal.Number
'|'           Operator
'number_format' Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'2'           Literal.Number
'0.25'        Literal.Number
'|'           Operator
'number_format' Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'2'           Literal.Number
'0.25'        Literal.Number
'|'           Operator
'number_format' Name.Function
'('           Operator
'2'           Literal.Number
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'2'           Literal.Number
'0.25'        Literal.Number
'|'           Operator
'number_format' Name.Function
'('           Operator
'2'           Literal.Number
','           Operator
' '           Text
"','"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
'0'           Literal.Number
'2'           Literal.Number
'0.25'        Literal.Number
'|'           Operator
'number_format' Name.Function
'('           Operator
'2'           Literal.Number
','           Operator
' '           Text
"','"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
'0'           Literal.Number
'2'           Literal.Number
'0.25'        Literal.Number
'|'           Operator
'number_format' Name.Function
'('           Operator
'2'           Literal.Number
','           Operator
' '           Text
"','"         Literal.String.Single
','           Operator
' '           Text
"'.'"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array();\n--EXPECT--\n20\n20\n20.25\n20,25\n1,020,25\n1.020,25\n--TEST--\n"replace" filter\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'"I like %this% and %that%."' Literal.String.Double
'|'           Operator
'replace'     Name.Function
'('           Operator
'{'           Operator
"'%this%'"    Literal.String.Single
':'           Operator
' '           Text
'"foo"'       Literal.String.Double
','           Operator
' '           Text
"'%that%'"    Literal.String.Single
':'           Operator
' '           Text
'"bar"'       Literal.String.Double
'}'           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nI like foo and bar.\n--TEST--\n"reverse" filter\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'['           Operator
'1'           Literal.Number
','           Operator
' '           Text
'2'           Literal.Number
','           Operator
' '           Text
'3'           Literal.Number
','           Operator
' '           Text
'4'           Literal.Number
']'           Operator
'|'           Operator
'reverse'     Name.Function
'|'           Operator
'join'        Name.Function
'('           Operator
"''"          Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'1234évènement'" Literal.String.Single
'|'           Operator
'reverse'     Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'arr'         Name.Variable
'|'           Operator
'reverse'     Name.Function
'|'           Operator
'join'        Name.Function
'('           Operator
"''"          Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'{'           Operator
"'a'"         Literal.String.Single
':'           Operator
' '           Text
"'c'"         Literal.String.Single
','           Operator
' '           Text
"'b'"         Literal.String.Single
':'           Operator
' '           Text
"'a'"         Literal.String.Single
'}'           Operator
'|'           Operator
'reverse'     Name.Function
'('           Operator
')'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"','"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'{'           Operator
"'a'"         Literal.String.Single
':'           Operator
' '           Text
"'c'"         Literal.String.Single
','           Operator
' '           Text
"'b'"         Literal.String.Single
':'           Operator
' '           Text
"'a'"         Literal.String.Single
'}'           Operator
'|'           Operator
'reverse'     Name.Function
'('           Operator
'preserveKeys' Name.Variable
'='           Operator
'true'        Keyword.Pseudo
')'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
'glue'        Name.Variable
'='           Operator
"','"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'{'           Operator
"'a'"         Literal.String.Single
':'           Operator
' '           Text
"'c'"         Literal.String.Single
','           Operator
' '           Text
"'b'"         Literal.String.Single
':'           Operator
' '           Text
"'a'"         Literal.String.Single
'}'           Operator
'|'           Operator
'reverse'     Name.Function
'('           Operator
'preserve_keys' Name.Variable
'='           Operator
'true'        Keyword.Pseudo
')'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
'glue'        Name.Variable
'='           Operator
"','"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\'arr\' => new ArrayObject(array(1, 2, 3, 4)))\n--EXPECT--\n4321\ntnemenèvé4321\n4321\na,c\na,c\na,c\n--TEST--\n"round" filter\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'2.7'         Literal.Number
'|'           Operator
'round'       Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'2.1'         Literal.Number
'|'           Operator
'round'       Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'2.1234'      Literal.Number
'|'           Operator
'round'       Name.Function
'('           Operator
'3'           Literal.Number
','           Operator
' '           Text
"'floor'"     Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'2.1'         Literal.Number
'|'           Operator
'round'       Name.Function
'('           Operator
'0'           Literal.Number
','           Operator
' '           Text
"'ceil'"      Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'2'           Literal.Number
'1.3'         Literal.Number
'|'           Operator
'round'       Name.Function
'('           Operator
'-'           Operator
'1'           Literal.Number
')'           Operator
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'2'           Literal.Number
'1.3'         Literal.Number
'|'           Operator
'round'       Name.Function
'('           Operator
'-'           Operator
'1'           Literal.Number
','           Operator
' '           Text
"'ceil'"      Literal.String.Single
')'           Operator
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'2'           Literal.Number
'1.3'         Literal.Number
'|'           Operator
'round'       Name.Function
'('           Operator
'-'           Operator
'1'           Literal.Number
','           Operator
' '           Text
"'floor'"     Literal.String.Single
')'           Operator
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n3\n2\n2.123\n3\n\n20\n30\n20\n--TEST--\n"slice" filter\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'['           Operator
'1'           Literal.Number
','           Operator
' '           Text
'2'           Literal.Number
','           Operator
' '           Text
'3'           Literal.Number
','           Operator
' '           Text
'4'           Literal.Number
']'           Operator
'['           Operator
'1'           Literal.Number
':'           Operator
'2'           Literal.Number
']'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"''"          Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'{'           Operator
'a'           Name.Variable
':'           Operator
' '           Text
'1'           Literal.Number
','           Operator
' '           Text
'b'           Name.Variable
':'           Operator
' '           Text
'2'           Literal.Number
','           Operator
' '           Text
'c'           Name.Variable
':'           Operator
' '           Text
'3'           Literal.Number
','           Operator
' '           Text
'd'           Name.Variable
':'           Operator
' '           Text
'4'           Literal.Number
'}'           Operator
'['           Operator
'1'           Literal.Number
':'           Operator
'2'           Literal.Number
']'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"''"          Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'['           Operator
'1'           Literal.Number
','           Operator
' '           Text
'2'           Literal.Number
','           Operator
' '           Text
'3'           Literal.Number
','           Operator
' '           Text
'4'           Literal.Number
']'           Operator
'['           Operator
'start'       Name.Variable
':'           Operator
'length'      Name.Variable
']'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"''"          Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'['           Operator
'1'           Literal.Number
','           Operator
' '           Text
'2'           Literal.Number
','           Operator
' '           Text
'3'           Literal.Number
','           Operator
' '           Text
'4'           Literal.Number
']'           Operator
'|'           Operator
'slice'       Name.Function
'('           Operator
'1'           Literal.Number
','           Operator
' '           Text
'2'           Literal.Number
')'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"''"          Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'['           Operator
'1'           Literal.Number
','           Operator
' '           Text
'2'           Literal.Number
','           Operator
' '           Text
'3'           Literal.Number
','           Operator
' '           Text
'4'           Literal.Number
']'           Operator
'|'           Operator
'slice'       Name.Function
'('           Operator
'1'           Literal.Number
','           Operator
' '           Text
'2'           Literal.Number
')'           Operator
'|'           Operator
'keys'        Name.Function
'|'           Operator
'join'        Name.Function
'('           Operator
"''"          Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'['           Operator
'1'           Literal.Number
','           Operator
' '           Text
'2'           Literal.Number
','           Operator
' '           Text
'3'           Literal.Number
','           Operator
' '           Text
'4'           Literal.Number
']'           Operator
'|'           Operator
'slice'       Name.Function
'('           Operator
'1'           Literal.Number
','           Operator
' '           Text
'2'           Literal.Number
','           Operator
' '           Text
'true'        Keyword.Pseudo
')'           Operator
'|'           Operator
'keys'        Name.Function
'|'           Operator
'join'        Name.Function
'('           Operator
"''"          Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'{'           Operator
'a'           Name.Variable
':'           Operator
' '           Text
'1'           Literal.Number
','           Operator
' '           Text
'b'           Name.Variable
':'           Operator
' '           Text
'2'           Literal.Number
','           Operator
' '           Text
'c'           Name.Variable
':'           Operator
' '           Text
'3'           Literal.Number
','           Operator
' '           Text
'd'           Name.Variable
':'           Operator
' '           Text
'4'           Literal.Number
'}'           Operator
'|'           Operator
'slice'       Name.Function
'('           Operator
'1'           Literal.Number
','           Operator
' '           Text
'2'           Literal.Number
')'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"''"          Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'{'           Operator
'a'           Name.Variable
':'           Operator
' '           Text
'1'           Literal.Number
','           Operator
' '           Text
'b'           Name.Variable
':'           Operator
' '           Text
'2'           Literal.Number
','           Operator
' '           Text
'c'           Name.Variable
':'           Operator
' '           Text
'3'           Literal.Number
','           Operator
' '           Text
'd'           Name.Variable
':'           Operator
' '           Text
'4'           Literal.Number
'}'           Operator
'|'           Operator
'slice'       Name.Function
'('           Operator
'1'           Literal.Number
','           Operator
' '           Text
'2'           Literal.Number
')'           Operator
'|'           Operator
'keys'        Name.Function
'|'           Operator
'join'        Name.Function
'('           Operator
"''"          Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'1234'"      Literal.String.Single
'|'           Operator
'slice'       Name.Function
'('           Operator
'1'           Literal.Number
','           Operator
' '           Text
'2'           Literal.Number
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'1234'"      Literal.String.Single
'['           Operator
'1'           Literal.Number
':'           Operator
'2'           Literal.Number
']'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'arr'         Name.Variable
'|'           Operator
'slice'       Name.Function
'('           Operator
'1'           Literal.Number
','           Operator
' '           Text
'2'           Literal.Number
')'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"''"          Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'arr'         Name.Variable
'['           Operator
'1'           Literal.Number
':'           Operator
'2'           Literal.Number
']'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"''"          Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'['           Operator
'1'           Literal.Number
','           Operator
' '           Text
'2'           Literal.Number
','           Operator
' '           Text
'3'           Literal.Number
','           Operator
' '           Text
'4'           Literal.Number
']'           Operator
'|'           Operator
'slice'       Name.Function
'('           Operator
'1'           Literal.Number
')'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"''"          Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'['           Operator
'1'           Literal.Number
','           Operator
' '           Text
'2'           Literal.Number
','           Operator
' '           Text
'3'           Literal.Number
','           Operator
' '           Text
'4'           Literal.Number
']'           Operator
'['           Operator
'1'           Literal.Number
':'           Operator
']'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"''"          Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'1234'"      Literal.String.Single
'|'           Operator
'slice'       Name.Function
'('           Operator
'1'           Literal.Number
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'1234'"      Literal.String.Single
'['           Operator
'1'           Literal.Number
':'           Operator
']'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'1234'"      Literal.String.Single
'['           Operator
':'           Operator
'1'           Literal.Number
']'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\'start\' => 1, \'length\' => 2, \'arr\' => new ArrayObject(array(1, 2, 3, 4)))\n--EXPECT--\n23\n23\n23\n23\n01\n12\n23\nbc\n23\n23\n23\n23\n\n234\n234\n234\n234\n1\n--TEST--\n"sort" filter\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'array1'      Name.Variable
'|'           Operator
'sort'        Name.Function
'|'           Operator
'join'        Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'array2'      Name.Variable
'|'           Operator
'sort'        Name.Function
'|'           Operator
'join'        Name.Function
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\'array1\' => array(4, 1), \'array2\' => array(\'foo\', \'bar\'))\n--EXPECT--\n14\nbarfoo\n--TEST--\n"split" filter\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'"one,two,three,four,five"' Literal.String.Double
'|'           Operator
'split'       Name.Function
'('           Operator
"','"         Literal.String.Single
')'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"'-'"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
'|'           Operator
'split'       Name.Function
'('           Operator
"','"         Literal.String.Single
')'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"'-'"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
'|'           Operator
'split'       Name.Function
'('           Operator
"','"         Literal.String.Single
','           Operator
' '           Text
'3'           Literal.Number
')'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"'-'"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'baz'         Name.Variable
'|'           Operator
'split'       Name.Function
'('           Operator
"''"          Literal.String.Single
')'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"'-'"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'baz'         Name.Variable
'|'           Operator
'split'       Name.Function
'('           Operator
"''"          Literal.String.Single
','           Operator
' '           Text
'2'           Literal.Number
')'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"'-'"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
'|'           Operator
'split'       Name.Function
'('           Operator
"','"         Literal.String.Single
','           Operator
' '           Text
'-'           Operator
'2'           Literal.Number
')'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"'-'"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\'foo\' => "one,two,three,four,five", \'baz\' => \'12345\',)\n--EXPECT--\none-two-three-four-five\none-two-three-four-five\none-two-three,four,five\n1-2-3-4-5\n12-34-5\none-two-three--TEST--\n"trim" filter\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'"  I like Twig.  "' Literal.String.Double
'|'           Operator
'trim'        Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'text'        Name.Variable
'|'           Operator
'trim'        Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'"  foo/"'    Literal.String.Double
'|'           Operator
'trim'        Name.Function
'('           Operator
'"/"'         Literal.String.Double
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\'text\' => "  If you have some <strong>HTML</strong> it will be escaped.  ")\n--EXPECT--\nI like Twig.\nIf you have some &lt;strong&gt;HTML&lt;/strong&gt; it will be escaped.\n  foo\n--TEST--\n"url_encode" filter for PHP < 5.4 and HHVM\n--CONDITION--\ndefined(\'PHP_QUERY_RFC3986\')\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'{'           Operator
'foo'         Name.Variable
':'           Operator
' '           Text
'"bar"'       Literal.String.Double
','           Operator
' '           Text
'number'      Name.Variable
':'           Operator
' '           Text
'3'           Literal.Number
','           Operator
' '           Text
'"spéßi%l"'   Literal.String.Double
':'           Operator
' '           Text
'"e%c0d@d"'   Literal.String.Double
','           Operator
' '           Text
'"spa ce"'    Literal.String.Double
':'           Operator
' '           Text
'""'          Literal.String.Double
'}'           Operator
'|'           Operator
'url_encode'  Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'{'           Operator
'foo'         Name.Variable
':'           Operator
' '           Text
'"bar"'       Literal.String.Double
','           Operator
' '           Text
'number'      Name.Variable
':'           Operator
' '           Text
'3'           Literal.Number
','           Operator
' '           Text
'"spéßi%l"'   Literal.String.Double
':'           Operator
' '           Text
'"e%c0d@d"'   Literal.String.Double
','           Operator
' '           Text
'"spa ce"'    Literal.String.Double
':'           Operator
' '           Text
'""'          Literal.String.Double
'}'           Operator
'|'           Operator
'url_encode'  Name.Function
'|'           Operator
'raw'         Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'{'           Operator
'}'           Operator
'|'           Operator
'url_encode'  Name.Function
'|'           Operator
'default'     Name.Function
'('           Operator
'"default"'   Literal.String.Double
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'spéßi%le%c0d@dspa ce'" Literal.String.Single
'|'           Operator
'url_encode'  Name.Function
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nfoo=bar&amp;number=3&amp;sp%C3%A9%C3%9Fi%25l=e%25c0d%40d&amp;spa%20ce=\nfoo=bar&number=3&sp%C3%A9%C3%9Fi%25l=e%25c0d%40d&spa%20ce=\ndefault\nsp%C3%A9%C3%9Fi%25le%25c0d%40dspa%20ce\n--TEST--\n"url_encode" filter\n--CONDITION--\ndefined(\'PHP_QUERY_RFC3986\')\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'{'           Operator
'foo'         Name.Variable
':'           Operator
' '           Text
'"bar"'       Literal.String.Double
','           Operator
' '           Text
'number'      Name.Variable
':'           Operator
' '           Text
'3'           Literal.Number
','           Operator
' '           Text
'"spéßi%l"'   Literal.String.Double
':'           Operator
' '           Text
'"e%c0d@d"'   Literal.String.Double
','           Operator
' '           Text
'"spa ce"'    Literal.String.Double
':'           Operator
' '           Text
'""'          Literal.String.Double
'}'           Operator
'|'           Operator
'url_encode'  Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'{'           Operator
'foo'         Name.Variable
':'           Operator
' '           Text
'"bar"'       Literal.String.Double
','           Operator
' '           Text
'number'      Name.Variable
':'           Operator
' '           Text
'3'           Literal.Number
','           Operator
' '           Text
'"spéßi%l"'   Literal.String.Double
':'           Operator
' '           Text
'"e%c0d@d"'   Literal.String.Double
','           Operator
' '           Text
'"spa ce"'    Literal.String.Double
':'           Operator
' '           Text
'""'          Literal.String.Double
'}'           Operator
'|'           Operator
'url_encode'  Name.Function
'|'           Operator
'raw'         Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'{'           Operator
'}'           Operator
'|'           Operator
'url_encode'  Name.Function
'|'           Operator
'default'     Name.Function
'('           Operator
'"default"'   Literal.String.Double
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'spéßi%le%c0d@dspa ce'" Literal.String.Single
'|'           Operator
'url_encode'  Name.Function
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nfoo=bar&amp;number=3&amp;sp%C3%A9%C3%9Fi%25l=e%25c0d%40d&amp;spa%20ce=\nfoo=bar&number=3&sp%C3%A9%C3%9Fi%25l=e%25c0d%40d&spa%20ce=\ndefault\nsp%C3%A9%C3%9Fi%25le%25c0d%40dspa%20ce\n--TEST--\n"attribute" function\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'attribute'   Name.Variable
'('           Operator
'obj'         Name.Variable
','           Operator
' '           Text
'method'      Name.Variable
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'attribute'   Name.Variable
'('           Operator
'array'       Name.Variable
','           Operator
' '           Text
'item'        Name.Variable
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'attribute'   Name.Variable
'('           Operator
'obj'         Name.Variable
','           Operator
' '           Text
'"bar"'       Literal.String.Double
','           Operator
' '           Text
'['           Operator
'"a"'         Literal.String.Double
','           Operator
' '           Text
'"b"'         Literal.String.Double
']'           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'attribute'   Name.Variable
'('           Operator
'obj'         Name.Variable
','           Operator
' '           Text
'"bar"'       Literal.String.Double
','           Operator
' '           Text
'arguments'   Name.Variable
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'attribute'   Name.Variable
'('           Operator
'obj'         Name.Variable
','           Operator
' '           Text
'method'      Name.Variable
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'attribute'   Name.Variable
'('           Operator
'obj'         Name.Variable
','           Operator
' '           Text
'nonmethod'   Name.Variable
')'           Operator
' '           Text
'is'          Keyword
' '           Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\'obj\' => new TwigTestFoo(), \'method\' => \'foo\', \'array\' => array(\'foo\' => \'bar\'), \'item\' => \'foo\', \'nonmethod\' => \'xxx\', \'arguments\' => array(\'a\', \'b\'))\n--EXPECT--\nfoo\nbar\nbar_a-b\nbar_a-b\nok\nko\n--TEST--\n"block" function\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
"'base.twig'" Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'bar'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'BAR'         Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(base.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'foo'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'block'       Name.Builtin
'('           Operator
"'bar'"       Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'bar'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'BAR_BASE'    Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nBARBAR\n--TEST--\n"constant" function\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'constant'    Name.Variable
'('           Operator
"'DATE_W3C'"  Literal.String.Single
')'           Operator
' '           Text
'=='          Operator
' '           Text
'expect'      Name.Variable
' '           Text
'?'           Operator
' '           Text
"'true'"      Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'false'"     Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'constant'    Name.Variable
'('           Operator
"'ARRAY_AS_PROPS'" Literal.String.Single
','           Operator
' '           Text
'object'      Name.Variable
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\'expect\' => DATE_W3C, \'object\' => new ArrayObject(array(\'hi\')));\n--EXPECT--\ntrue\n2\n--TEST--\n"cycle" function\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'i'           Name.Variable
' '           Text
'in'          Keyword
' '           Text
'0.'          Literal.Number
'.6'          Literal.Number
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'cycle'       Name.Variable
'('           Operator
'array1'      Name.Variable
','           Operator
' '           Text
'i'           Name.Variable
')'           Operator
' '           Text
'}}'          Comment.Preproc
'-'           Other
'{{'          Comment.Preproc
' '           Text
'cycle'       Name.Variable
'('           Operator
'array2'      Name.Variable
','           Operator
' '           Text
'i'           Name.Variable
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'array1\' => array(\'odd\', \'even\'), \'array2\' => array(\'apple\', \'orange\', \'citrus\'))\n--EXPECT--\nodd-apple\neven-orange\nodd-citrus\neven-apple\nodd-orange\neven-citrus\nodd-apple\n--TEST--\n"date" function\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'date'        Name.Variable
'('           Operator
'date'        Name.Variable
','           Operator
' '           Text
'"America/New_York"' Literal.String.Double
')'           Operator
'|'           Operator
'date'        Name.Function
'('           Operator
"'d/m/Y H:i:s P'" Literal.String.Single
','           Operator
' '           Text
'false'       Keyword.Pseudo
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date'        Name.Variable
'('           Operator
'timezone'    Name.Variable
'='           Operator
'"America/New_York"' Literal.String.Double
','           Operator
' '           Text
'date'        Name.Variable
'='           Operator
'date'        Name.Variable
')'           Operator
'|'           Operator
'date'        Name.Function
'('           Operator
"'d/m/Y H:i:s P'" Literal.String.Single
','           Operator
' '           Text
'false'       Keyword.Pseudo
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\ndate_default_timezone_set(\'UTC\');\nreturn array(\'date\' => mktime(13, 45, 0, 10, 4, 2010))\n--EXPECT--\n04/10/2010 09:45:00 -04:00\n04/10/2010 09:45:00 -04:00\n--TEST--\n"date" function\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'date'        Name.Variable
'('           Operator
')'           Operator
' '           Text
'=='          Operator
' '           Text
'date'        Name.Variable
'('           Operator
"'now'"       Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date'        Name.Variable
'('           Operator
'date1'       Name.Variable
')'           Operator
' '           Text
'=='          Operator
' '           Text
'date'        Name.Variable
'('           Operator
"'2010-10-04 13:45'" Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date'        Name.Variable
'('           Operator
'date2'       Name.Variable
')'           Operator
' '           Text
'=='          Operator
' '           Text
'date'        Name.Variable
'('           Operator
"'2010-10-04 13:45'" Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date'        Name.Variable
'('           Operator
'date3'       Name.Variable
')'           Operator
' '           Text
'=='          Operator
' '           Text
'date'        Name.Variable
'('           Operator
"'2010-10-04 13:45'" Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date'        Name.Variable
'('           Operator
'date4'       Name.Variable
')'           Operator
' '           Text
'=='          Operator
' '           Text
'date'        Name.Variable
'('           Operator
"'2010-10-04 13:45'" Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'date'        Name.Variable
'('           Operator
'date5'       Name.Variable
')'           Operator
' '           Text
'=='          Operator
' '           Text
'date'        Name.Variable
'('           Operator
"'1964-01-02 03:04'" Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'OK'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'KO'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\ndate_default_timezone_set(\'UTC\');\nreturn array(\n    \'date1\' => mktime(13, 45, 0, 10, 4, 2010),\n    \'date2\' => new DateTime(\'2010-10-04 13:45\'),\n    \'date3\' => \'2010-10-04 13:45\',\n    \'date4\' => 1286199900, // DateTime::createFromFormat(\'Y-m-d H:i\', \'2010-10-04 13:45\', new DateTimeZone(\'UTC\'))->getTimestamp() -- A unixtimestamp is always GMT\n    \'date5\' => -189291360, // DateTime::createFromFormat(\'Y-m-d H:i\', \'1964-01-02 03:04\', new DateTimeZone(\'UTC\'))->getTimestamp(),\n)\n--EXPECT--\nOK\nOK\nOK\nOK\nOK\nOK\n--TEST--\n"dump" function, xdebug is not loaded or xdebug <2.2-dev is loaded\n--CONDITION--\n!extension_loaded(\'xdebug\') || (($r = new ReflectionExtension(\'xdebug\')) && version_compare($r->getVersion(), \'2.2-dev\', \'<\'))\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'dump'        Name.Variable
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\'foo\' => \'foo\', \'bar\' => \'bar\')\n--CONFIG--\nreturn array(\'debug\' => true, \'autoescape\' => false);\n--TEST--\n"dump" function\n--CONDITION--\n!extension_loaded(\'xdebug\')\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'dump'        Name.Variable
'('           Operator
"'foo'"       Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'dump'        Name.Variable
'('           Operator
"'foo'"       Literal.String.Single
','           Operator
' '           Text
"'bar'"       Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\'foo\' => \'foo\', \'bar\' => \'bar\')\n--CONFIG--\nreturn array(\'debug\' => true, \'autoescape\' => false);\n--EXPECT--\nstring(3) "foo"\n\nstring(3) "foo"\nstring(3) "bar"\n--TEST--\ndynamic function\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'foo_path'    Name.Variable
'('           Operator
"'bar'"       Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'a_foo_b_bar' Name.Variable
'('           Operator
"'bar'"       Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nfoo/bar\na/b/bar\n--TEST--\n"include" function\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'set'         Keyword
' '           Text
'tmp'         Name.Variable
' '           Text
'='           Operator
' '           Text
'include'     Name.Variable
'('           Operator
'"foo.twig"'  Literal.String.Double
')'           Operator
' '           Text
'%}'          Comment.Preproc
'\n\nFOO'     Other
'{{'          Comment.Preproc
' '           Text
'tmp'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'BAR\n--TEMPLATE(foo.twig)--\nFOOBAR\n--DATA--\nreturn array()\n--EXPECT--\nFOO\nFOOBARBAR\n--TEST--\n"include" function is safe for auto-escaping\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'include'     Name.Variable
'('           Operator
'"foo.twig"'  Literal.String.Double
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\n<p>Test</p>\n--DATA--\nreturn array()\n--EXPECT--\n<p>Test</p>\n--TEST--\n"include" function\n--TEMPLATE--\nFOO\n' Other

'{{'          Comment.Preproc
' '           Text
'include'     Name.Variable
'('           Operator
'"foo.twig"'  Literal.String.Double
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\nBAR\n--TEMPLATE(foo.twig)--\nFOOBAR\n--DATA--\nreturn array()\n--EXPECT--\nFOO\n\nFOOBAR\n\nBAR\n--TEST--\n"include" function allows expressions for the template to include\n--TEMPLATE--\nFOO\n' Other

'{{'          Comment.Preproc
' '           Text
'include'     Name.Variable
'('           Operator
'foo'         Name.Variable
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\nBAR\n--TEMPLATE(foo.twig)--\nFOOBAR\n--DATA--\nreturn array(\'foo\' => \'foo.twig\')\n--EXPECT--\nFOO\n\nFOOBAR\n\nBAR\n--TEST--\n"include" function\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'include'     Name.Variable
'('           Operator
'['           Operator
'"foo.twig"'  Literal.String.Double
','           Operator
' '           Text
'"bar.twig"'  Literal.String.Double
']'           Operator
','           Operator
' '           Text
'ignore_missing' Name.Variable
' '           Text
'='           Operator
' '           Text
'true'        Keyword.Pseudo
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'include'     Name.Variable
'('           Operator
'"foo.twig"'  Literal.String.Double
','           Operator
' '           Text
'ignore_missing' Name.Variable
' '           Text
'='           Operator
' '           Text
'true'        Keyword.Pseudo
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'include'     Name.Variable
'('           Operator
'"foo.twig"'  Literal.String.Double
','           Operator
' '           Text
'ignore_missing' Name.Variable
' '           Text
'='           Operator
' '           Text
'true'        Keyword.Pseudo
','           Operator
' '           Text
'variables'   Name.Variable
' '           Text
'='           Operator
' '           Text
'{'           Operator
'}'           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'include'     Name.Variable
'('           Operator
'"foo.twig"'  Literal.String.Double
','           Operator
' '           Text
'ignore_missing' Name.Variable
' '           Text
'='           Operator
' '           Text
'true'        Keyword.Pseudo
','           Operator
' '           Text
'variables'   Name.Variable
' '           Text
'='           Operator
' '           Text
'{'           Operator
'}'           Operator
','           Operator
' '           Text
'with_context' Name.Variable
' '           Text
'='           Operator
' '           Text
'true'        Keyword.Pseudo
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n--TEST--\n"include" function\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'"base.twig"' Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(base.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
' '           Text
'include'     Name.Variable
'('           Operator
'"foo.twig"'  Literal.String.Double
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array();\n--EXCEPTION--\nTwig_Error_Loader: Template "foo.twig" is not defined in "base.twig" at line 3.\n--TEST--\n"include" function\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'include'     Name.Variable
'('           Operator
'"foo.twig"'  Literal.String.Double
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array();\n--EXCEPTION--\nTwig_Error_Loader: Template "foo.twig" is not defined in "index.twig" at line 2.\n--TEST--\n"include" tag sandboxed\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'include'     Name.Variable
'('           Operator
'"foo.twig"'  Literal.String.Double
','           Operator
' '           Text
'sandboxed'   Name.Variable
' '           Text
'='           Operator
' '           Text
'true'        Keyword.Pseudo
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\n' Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
'|'           Operator
'e'           Name.Function
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXCEPTION--\nTwig_Sandbox_SecurityError: Filter "e" is not allowed in "index.twig" at line 2.\n--TEST--\n"include" function accepts Twig_Template instance\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'include'     Name.Variable
'('           Operator
'foo'         Name.Variable
')'           Operator
' '           Text
'}}'          Comment.Preproc
' FOO\n--TEMPLATE(foo.twig)--\nBAR\n--DATA--\nreturn array(\'foo\' => $twig->loadTemplate(\'foo.twig\'))\n--EXPECT--\nBAR FOO\n--TEST--\n"include" function\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'include'     Name.Variable
'('           Operator
'['           Operator
'"foo.twig"'  Literal.String.Double
','           Operator
' '           Text
'"bar.twig"'  Literal.String.Double
']'           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
'-'           Operator
' '           Text
'include'     Name.Variable
'('           Operator
'['           Operator
'"bar.twig"'  Literal.String.Double
','           Operator
' '           Text
'"foo.twig"'  Literal.String.Double
']'           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\nfoo\n--DATA--\nreturn array()\n--EXPECT--\nfoo\nfoo\n--TEST--\n"include" function accept variables and with_context\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'include'     Name.Variable
'('           Operator
'"foo.twig"'  Literal.String.Double
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
'-'           Operator
' '           Text
'include'     Name.Variable
'('           Operator
'"foo.twig"'  Literal.String.Double
','           Operator
' '           Text
'with_context' Name.Variable
' '           Text
'='           Operator
' '           Text
'false'       Keyword.Pseudo
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
'-'           Operator
' '           Text
'include'     Name.Variable
'('           Operator
'"foo.twig"'  Literal.String.Double
','           Operator
' '           Text
'{'           Operator
"'foo1'"      Literal.String.Single
':'           Operator
' '           Text
"'bar'"       Literal.String.Single
'}'           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
'-'           Operator
' '           Text
'include'     Name.Variable
'('           Operator
'"foo.twig"'  Literal.String.Double
','           Operator
' '           Text
'{'           Operator
"'foo1'"      Literal.String.Single
':'           Operator
' '           Text
"'bar'"       Literal.String.Single
'}'           Operator
','           Operator
' '           Text
'with_context' Name.Variable
' '           Text
'='           Operator
' '           Text
'false'       Keyword.Pseudo
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'k'           Name.Variable
','           Operator
' '           Text
'v'           Name.Variable
' '           Text
'in'          Keyword
' '           Text
'_context'    Name.Variable
' '           Text
'%}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'k'           Name.Variable
' '           Text
'}}'          Comment.Preproc
','           Other
'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'foo\' => \'bar\')\n--EXPECT--\nfoo,global,_parent,\nglobal,_parent,\nfoo,global,foo1,_parent,\nfoo1,global,_parent,\n--TEST--\n"include" function accept variables\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'include'     Name.Variable
'('           Operator
'"foo.twig"'  Literal.String.Double
','           Operator
' '           Text
'{'           Operator
"'foo'"       Literal.String.Single
':'           Operator
' '           Text
"'bar'"       Literal.String.Single
'}'           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
'-'           Operator
' '           Text
'include'     Name.Variable
'('           Operator
'"foo.twig"'  Literal.String.Double
','           Operator
' '           Text
'vars'        Name.Variable
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\n' Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\'vars\' => array(\'foo\' => \'bar\'))\n--EXPECT--\nbar\nbar\n--TEST--\n"max" function\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'max'         Name.Variable
'('           Operator
'['           Operator
'2'           Literal.Number
','           Operator
' '           Text
'1'           Literal.Number
','           Operator
' '           Text
'3'           Literal.Number
','           Operator
' '           Text
'5'           Literal.Number
','           Operator
' '           Text
'4'           Literal.Number
']'           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'max'         Name.Variable
'('           Operator
'2'           Literal.Number
','           Operator
' '           Text
'1'           Literal.Number
','           Operator
' '           Text
'3'           Literal.Number
','           Operator
' '           Text
'5'           Literal.Number
','           Operator
' '           Text
'4'           Literal.Number
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'max'         Name.Variable
'('           Operator
'{'           Operator
'2'           Literal.Number
':"two"'      Literal.String.Double
','           Operator
' '           Text
'1'           Literal.Number
':"one"'      Literal.String.Double
','           Operator
' '           Text
'3'           Literal.Number
':"three"'    Literal.String.Double
','           Operator
' '           Text
'5'           Literal.Number
':"five"'     Literal.String.Double
','           Operator
' '           Text
'4'           Literal.Number
':"for"'      Literal.String.Double
'}'           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n5\n5\ntwo\n--TEST--\n"min" function\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'min'         Name.Variable
'('           Operator
'2'           Literal.Number
','           Operator
' '           Text
'1'           Literal.Number
','           Operator
' '           Text
'3'           Literal.Number
','           Operator
' '           Text
'5'           Literal.Number
','           Operator
' '           Text
'4'           Literal.Number
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'min'         Name.Variable
'('           Operator
'['           Operator
'2'           Literal.Number
','           Operator
' '           Text
'1'           Literal.Number
','           Operator
' '           Text
'3'           Literal.Number
','           Operator
' '           Text
'5'           Literal.Number
','           Operator
' '           Text
'4'           Literal.Number
']'           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'min'         Name.Variable
'('           Operator
'{'           Operator
'2'           Literal.Number
':"two"'      Literal.String.Double
','           Operator
' '           Text
'1'           Literal.Number
':"one"'      Literal.String.Double
','           Operator
' '           Text
'3'           Literal.Number
':"three"'    Literal.String.Double
','           Operator
' '           Text
'5'           Literal.Number
':"five"'     Literal.String.Double
','           Operator
' '           Text
'4'           Literal.Number
':"for"'      Literal.String.Double
'}'           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n1\n1\nfive\n--TEST--\n"range" function\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'range'       Name.Variable
'('           Operator
'low'         Name.Variable
'='           Operator
'0'           Literal.Number
'+'           Operator
'1'           Literal.Number
','           Operator
' '           Text
'high'        Name.Variable
'='           Operator
'1'           Literal.Number
'0'           Literal.Number
'+'           Operator
'0'           Literal.Number
','           Operator
' '           Text
'step'        Name.Variable
'='           Operator
'2'           Literal.Number
')'           Operator
'|'           Operator
'join'        Name.Function
'('           Operator
"','"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n1,3,5,7,9\n--TEST--\n"block" function recursively called in a parent template\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'"ordered_menu.twig"' Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'label'       Name.Variable
' '           Text
'%}'          Comment.Preproc
'"'           Other
'{{'          Comment.Preproc
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'"'           Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'list'        Name.Variable
' '           Text
'%}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'set'         Keyword
' '           Text
'class'       Name.Variable
' '           Text
'='           Operator
' '           Text
"'b'"         Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(ordered_menu.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'"menu.twig"' Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'list'        Name.Variable
' '           Text
'%}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'set'         Keyword
' '           Text
'class'       Name.Variable
' '           Text
'='           Operator
' '           Text
'class'       Name.Variable
'|'           Operator
'default'     Name.Function
'('           Operator
"'a'"         Literal.String.Single
')'           Operator
' '           Text
'%}'          Comment.Preproc
'<ol class="' Other
'{{'          Comment.Preproc
' '           Text
'class'       Name.Variable
' '           Text
'}}'          Comment.Preproc
'">'          Other
'{{'          Comment.Preproc
' '           Text
'block'       Name.Builtin
'('           Operator
"'children'"  Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'</ol>'       Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(menu.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'"base.twig"' Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'list'        Name.Variable
' '           Text
'%}'          Comment.Preproc
'<ul>'        Other
'{{'          Comment.Preproc
' '           Text
'block'       Name.Builtin
'('           Operator
"'children'"  Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'</ul>'       Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'children'    Name.Variable
' '           Text
'%}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'set'         Keyword
' '           Text
'currentItem' Name.Variable
' '           Text
'='           Operator
' '           Text
'item'        Name.Variable
' '           Text
'%}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'item'        Name.Variable
' '           Text
'in'          Keyword
' '           Text
'currentItem' Name.Variable
' '           Text
'%}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'block'       Name.Builtin
'('           Operator
"'item'"      Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'set'         Keyword
' '           Text
'item'        Name.Variable
' '           Text
'='           Operator
' '           Text
'currentItem' Name.Variable
' '           Text
'%}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'item'        Name.Variable
' '           Text
'%}'          Comment.Preproc
'<li>'        Other
'{%'          Comment.Preproc
' '           Text
'if'          Keyword
' '           Text
'item'        Name.Variable
' '           Text
'is'          Keyword
' '           Text
'not'         Keyword
' '           Text
'iterable'    Name.Function
' '           Text
'%}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'block'       Name.Builtin
'('           Operator
"'label'"     Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'else'        Keyword
' '           Text
'%}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'block'       Name.Builtin
'('           Operator
"'list'"      Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'endif'       Keyword
' '           Text
'%}'          Comment.Preproc
'</li>'       Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'label'       Name.Variable
' '           Text
'%}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'item'        Name.Variable
' '           Text
'}}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'block'       Name.Builtin
'('           Operator
"'unknown'"   Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(base.twig)--\n' Other

'{{'          Comment.Preproc
' '           Text
'block'       Name.Builtin
'('           Operator
"'list'"      Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\'item\' => array(\'1\', \'2\', array(\'3.1\', array(\'3.2.1\', \'3.2.2\'), \'3.4\')))\n--EXPECT--\n<ol class="b"><li>"1"</li><li>"2"</li><li><ol class="b"><li>"3.1"</li><li><ol class="b"><li>"3.2.1"</li><li>"3.2.2"</li></ol></li><li>"3.4"</li></ol></li></ol>\n--TEST--\n"source" function\n--TEMPLATE--\nFOO\n' Other

'{{'          Comment.Preproc
' '           Text
'source'      Name.Variable
'('           Operator
'"foo.twig"'  Literal.String.Double
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\nBAR\n--TEMPLATE(foo.twig)--\n' Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'<br />\n--DATA--\nreturn array()\n--EXPECT--\nFOO\n\n' Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'<br />\n\nBAR\n--TEST--\n"template_from_string" function\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'include'     Keyword
' '           Text
'template_from_string' Name.Variable
'('           Operator
'template'    Name.Variable
')'           Operator
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'include'     Keyword
' '           Text
'template_from_string' Name.Variable
'('           Operator
'"Hello {{ name }}"' Literal.String.Double
')'           Operator
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'include'     Keyword
' '           Text
'template_from_string' Name.Variable
'('           Operator
'\'{% extends "parent.twig" %}{% block content %}Hello {{ name }}{% endblock %}\'' Literal.String.Single
')'           Operator
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(parent.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'name\' => \'Fabien\', \'template\' => "Hello ' Other
'{{'          Comment.Preproc
' '           Text
'name'        Name.Variable
' '           Text
'}}'          Comment.Preproc
'")\n--EXPECT--\nHello Fabien\nHello Fabien\nHello Fabien\n--TEST--\nmacro\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'from'        Keyword
' '           Text
'_self'       Name.Variable
' '           Text
'import'      Name.Variable
' '           Text
'test'        Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'macro'       Keyword
' '           Text
'test'        Name.Variable
'('           Operator
'a'           Name.Variable
','           Operator
' '           Text
'b'           Name.Variable
' '           Text
'='           Operator
' '           Text
"'bar'"       Literal.String.Single
')'           Operator
' '           Text
'-'           Text
'%}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'a'           Name.Variable
' '           Text
'}}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'b'           Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
'- '          Text
'endmacro'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'test'        Name.Variable
'('           Operator
"'foo'"       Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'test'        Name.Variable
'('           Operator
"'bar'"       Literal.String.Single
','           Operator
' '           Text
"'foo'"       Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array();\n--EXPECT--\nfoobar\nbarfoo\n--TEST--\nmacro\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'import'      Keyword
' '           Text
'_self'       Name.Variable
' '           Text
'as'          Name.Variable
' '           Text
'macros'      Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'macro'       Keyword
' '           Text
'foo'         Name.Variable
'('           Operator
'data'        Name.Variable
')'           Operator
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
' '           Text
'data'        Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endmacro'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'macro'       Keyword
' '           Text
'bar'         Name.Variable
'('           Operator
')'           Operator
' '           Text
'%}'          Comment.Preproc
'\n    <br />\n' Other

'{%'          Comment.Preproc
' '           Text
'endmacro'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'macros'      Name.Variable
'.foo'        Name.Variable
'('           Operator
'macros'      Name.Variable
'.bar'        Name.Variable
'('           Operator
')'           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array();\n--EXPECT--\n<br />\n--TEST--\nmacro\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'from'        Keyword
' '           Text
'_self'       Name.Variable
' '           Text
'import'      Name.Variable
' '           Text
'test'        Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'macro'       Keyword
' '           Text
'test'        Name.Variable
'('           Operator
'this'        Name.Variable
')'           Operator
' '           Text
'-'           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
' '           Text
'this'        Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
'- '          Text
'endmacro'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'test'        Name.Variable
'('           Operator
'this'        Name.Variable
')'           Operator
' '           Text
'}}'          Comment.Preproc
"\n--DATA--\nreturn array('this' => 'foo');\n--EXPECT--\nfoo\n--TEST--\nmacro\n--TEMPLATE--\n" Other

'{%'          Comment.Preproc
' '           Text
'import'      Keyword
' '           Text
'_self'       Name.Variable
' '           Text
'as'          Name.Variable
' '           Text
'test'        Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'from'        Keyword
' '           Text
'_self'       Name.Variable
' '           Text
'import'      Name.Variable
' '           Text
'test'        Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'macro'       Keyword
' '           Text
'test'        Name.Variable
'('           Operator
'a'           Name.Variable
','           Operator
' '           Text
'b'           Name.Variable
')'           Operator
' '           Text
'-'           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
' '           Text
'a'           Name.Variable
'|'           Operator
'default'     Name.Function
'('           Operator
"'a'"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'<br />\n    ' Other
'{{'          Comment.Preproc
'-'           Operator
' '           Text
'b'           Name.Variable
'|'           Operator
'default'     Name.Function
'('           Operator
"'b'"         Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'<br />\n'    Other

'{%'          Comment.Preproc
'- '          Text
'endmacro'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'test'        Name.Variable
'.test'       Name.Variable
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'test'        Name.Variable
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'test'        Name.Variable
'.test'       Name.Variable
'('           Operator
'1'           Literal.Number
','           Operator
' '           Text
'"c"'         Literal.String.Double
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'test'        Name.Variable
'('           Operator
'1'           Literal.Number
','           Operator
' '           Text
'"c"'         Literal.String.Double
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array();\n--EXPECT--\na<br />b<br />\na<br />b<br />\n1<br />c<br />\n1<br />c<br />\n--TEST--\nmacro with a filter\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'import'      Keyword
' '           Text
'_self'       Name.Variable
' '           Text
'as'          Name.Variable
' '           Text
'test'        Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'macro'       Keyword
' '           Text
'test'        Name.Variable
'('           Operator
')'           Operator
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{%'          Comment.Preproc
' '           Text
'filter'      Keyword
' '           Text
'escape'      Name.Function
' '           Text
'%}'          Comment.Preproc
'foo<br />'   Other
'{%'          Comment.Preproc
' '           Text
'endfilter'   Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endmacro'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'test'        Name.Variable
'.test'       Name.Variable
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array();\n--EXPECT--\nfoo&lt;br /&gt;\n--TEST--\nTwig outputs 0 nodes correctly\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'0'           Other
'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
' '           Text
'}}'          Comment.Preproc
"\n--DATA--\nreturn array('foo' => 'foo')\n--EXPECT--\nfoo0foo\n--TEST--\nerror in twig extension\n--TEMPLATE--\n" Other

'{{'          Comment.Preproc
' '           Text
'object'      Name.Variable
'.region'     Name.Variable
' '           Text
'is'          Keyword
' '           Text
'not'         Keyword
' '           Text
'null'        Name.Function
' '           Text
'?'           Operator
' '           Text
'object'      Name.Variable
'.regionChoices' Name.Variable
'['           Operator
'object'      Name.Variable
'.region'     Name.Variable
']'           Operator
' '           Text
'}}'          Comment.Preproc
"\n--EXPECT--\nhouse.region.s\n--TEST--\nTwig is able to deal with SimpleXMLElement instances as variables\n--CONDITION--\nversion_compare(phpversion(), '5.3.0', '>=')\n--TEMPLATE--\nHello '" Other
'{{'          Comment.Preproc
' '           Text
'images'      Name.Variable
'.image'      Name.Variable
'.0'          Literal.Number
'.group'      Name.Variable
' '           Text
'}}'          Comment.Preproc
"'!\n"        Other

'{{'          Comment.Preproc
' '           Text
'images'      Name.Variable
'.image'      Name.Variable
'.0'          Literal.Number
'.group'      Name.Variable
'.attributes' Name.Variable
'.myattr'     Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'images'      Name.Variable
'.children'   Name.Variable
'('           Operator
')'           Operator
'.image'      Name.Variable
'.count'      Name.Variable
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'image'       Name.Variable
' '           Text
'in'          Keyword
' '           Text
'images'      Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    - '    Other
'{{'          Comment.Preproc
' '           Text
'image'       Name.Variable
'.group'      Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'images\' => new SimpleXMLElement(\'<images><image><group myattr="example">foo</group></image><image><group>bar</group></image></images>\'))\n--EXPECT--\nHello \'foo\'!\nexample\n2\n    - foo\n    - bar\n--TEST--\nTwig does not confuse strings with integers in getAttribute()\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'hash'        Name.Variable
'['           Operator
"'2e2'"       Literal.String.Single
']'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\'hash\' => array(\'2e2\' => \'works\'))\n--EXPECT--\nworks\n--TEST--\n"autoescape" tag applies escaping on its children\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'<br />\n'    Other

'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
"'html'"      Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'<br />\n'    Other

'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
'false'       Keyword.Pseudo
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'<br />\n'    Other

'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
'true'        Keyword.Pseudo
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'<br />\n'    Other

'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
'false'       Keyword.Pseudo
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'<br />\n'    Other

'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'var\' => \'<br />\')\n--EXPECT--\n&lt;br /&gt;<br />\n&lt;br /&gt;<br />\n<br /><br />\n&lt;br /&gt;<br />\n<br /><br />\n--TEST--\n"autoescape" tag applies escaping on embedded blocks\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
"'html'"      Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n  '        Other
'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'foo'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n  '        Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'var\' => \'<br />\')\n--EXPECT--\n&lt;br /&gt;\n--TEST--\n"autoescape" tag does not double-escape\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
"'html'"      Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
'|'           Operator
'escape'      Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'var\' => \'<br />\')\n--EXPECT--\n&lt;br /&gt;\n--TEST--\n"autoescape" tag applies escaping after calling functions\n--TEMPLATE--\n\nautoescape false\n' Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
'false'       Keyword.Pseudo
' '           Text
'%}'          Comment.Preproc
'\n\nsafe_br\n' Other

'{{'          Comment.Preproc
' '           Text
'safe_br'     Name.Variable
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\nunsafe_br\n' Other

'{{'          Comment.Preproc
' '           Text
'unsafe_br'   Name.Variable
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
"\n\nautoescape 'html'\n" Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
"'html'"      Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n\nsafe_br\n' Other

'{{'          Comment.Preproc
' '           Text
'safe_br'     Name.Variable
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\nunsafe_br\n' Other

'{{'          Comment.Preproc
' '           Text
'unsafe_br'   Name.Variable
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\nunsafe_br()|raw\n' Other

'{{'          Comment.Preproc
' '           Text
'('           Operator
'unsafe_br'   Name.Variable
'('           Operator
')'           Operator
')'           Operator
'|'           Operator
'raw'         Name.Function
' '           Text
'}}'          Comment.Preproc
'\n\nsafe_br()|escape\n' Other

'{{'          Comment.Preproc
' '           Text
'('           Operator
'safe_br'     Name.Variable
'('           Operator
')'           Operator
')'           Operator
'|'           Operator
'escape'      Name.Function
' '           Text
'}}'          Comment.Preproc
'\n\nsafe_br()|raw\n' Other

'{{'          Comment.Preproc
' '           Text
'('           Operator
'safe_br'     Name.Variable
'('           Operator
')'           Operator
')'           Operator
'|'           Operator
'raw'         Name.Function
' '           Text
'}}'          Comment.Preproc
'\n\nunsafe_br()|escape\n' Other

'{{'          Comment.Preproc
' '           Text
'('           Operator
'unsafe_br'   Name.Variable
'('           Operator
')'           Operator
')'           Operator
'|'           Operator
'escape'      Name.Function
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
'\n\nautoescape js\n' Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
"'js'"        Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n\nsafe_br\n' Other

'{{'          Comment.Preproc
' '           Text
'safe_br'     Name.Variable
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n\nautoescape false\n\nsafe_br\n<br />\n\nunsafe_br\n<br />\n\n\nautoescape \'html\'\n\nsafe_br\n<br />\n\nunsafe_br\n&lt;br /&gt;\n\nunsafe_br()|raw\n<br />\n\nsafe_br()|escape\n&lt;br /&gt;\n\nsafe_br()|raw\n<br />\n\nunsafe_br()|escape\n&lt;br /&gt;\n\n\nautoescape js\n\nsafe_br\n\\x3Cbr\\x20\\x2F\\x3E\n--TEST--\n"autoescape" tag does not apply escaping on literals\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
"'html'"      Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n\n1. Simple literal\n' Other

'{{'          Comment.Preproc
' '           Text
'"<br />"'    Literal.String.Double
' '           Text
'}}'          Comment.Preproc
'\n\n2. Conditional expression with only literals\n' Other

'{{'          Comment.Preproc
' '           Text
'true'        Keyword.Pseudo
' '           Text
'?'           Operator
' '           Text
'"<br />"'    Literal.String.Double
' '           Text
':'           Operator
' '           Text
'"<br>"'      Literal.String.Double
' '           Text
'}}'          Comment.Preproc
'\n\n3. Conditional expression with a variable\n' Other

'{{'          Comment.Preproc
' '           Text
'true'        Keyword.Pseudo
' '           Text
'?'           Operator
' '           Text
'"<br />"'    Literal.String.Double
' '           Text
':'           Operator
' '           Text
'someVar'     Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n\n4. Nested conditionals with only literals\n' Other

'{{'          Comment.Preproc
' '           Text
'true'        Keyword.Pseudo
' '           Text
'?'           Operator
' '           Text
'('           Operator
'true'        Keyword.Pseudo
' '           Text
'?'           Operator
' '           Text
'"<br />"'    Literal.String.Double
' '           Text
':'           Operator
' '           Text
'"<br>"'      Literal.String.Double
')'           Operator
' '           Text
':'           Operator
' '           Text
'"\\n"'       Literal.String.Double
' '           Text
'}}'          Comment.Preproc
'\n\n5. Nested conditionals with a variable\n' Other

'{{'          Comment.Preproc
' '           Text
'true'        Keyword.Pseudo
' '           Text
'?'           Operator
' '           Text
'('           Operator
'true'        Keyword.Pseudo
' '           Text
'?'           Operator
' '           Text
'"<br />"'    Literal.String.Double
' '           Text
':'           Operator
' '           Text
'someVar'     Name.Variable
')'           Operator
' '           Text
':'           Operator
' '           Text
'"\\n"'       Literal.String.Double
' '           Text
'}}'          Comment.Preproc
'\n\n6. Nested conditionals with a variable marked safe\n' Other

'{{'          Comment.Preproc
' '           Text
'true'        Keyword.Pseudo
' '           Text
'?'           Operator
' '           Text
'('           Operator
'true'        Keyword.Pseudo
' '           Text
'?'           Operator
' '           Text
'"<br />"'    Literal.String.Double
' '           Text
':'           Operator
' '           Text
'someVar'     Name.Variable
'|'           Operator
'raw'         Name.Function
')'           Operator
' '           Text
':'           Operator
' '           Text
'"\\n"'       Literal.String.Double
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n\n1. Simple literal\n<br />\n\n2. Conditional expression with only literals\n<br />\n\n3. Conditional expression with a variable\n&lt;br /&gt;\n\n4. Nested conditionals with only literals\n<br />\n\n5. Nested conditionals with a variable\n&lt;br /&gt;\n\n6. Nested conditionals with a variable marked safe\n<br />\n--TEST--\n"autoescape" tags can be nested at will\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
"'html'"      Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n  '        Other
'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n  '        Other
'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
'false'       Keyword.Pseudo
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n    '      Other
'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
"'html'"      Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n      '    Other
'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n    '      Other
'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n  '        Other
'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
'\n  '        Other
'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\'var\' => \'<br />\')\n--EXPECT--\n&lt;br /&gt;\n  &lt;br /&gt;\n      <br />\n          &lt;br /&gt;\n        <br />\n    &lt;br /&gt;\n&lt;br /&gt;\n--TEST--\n"autoescape" tag applies escaping to object method calls\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
"'html'"      Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'user'        Name.Variable
'.name'       Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'user'        Name.Variable
'.name'       Name.Variable
'|'           Operator
'lower'       Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'user'        Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
'\n--EXPECT--\nFabien&lt;br /&gt;\nfabien&lt;br /&gt;\nFabien&lt;br /&gt;\n--TEST--\n"autoescape" tag does not escape when raw is used as a filter\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
"'html'"      Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
'|'           Operator
'raw'         Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'var\' => \'<br />\')\n--EXPECT--\n<br />\n--TEST--\n"autoescape" tag accepts an escaping strategy\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
'true'        Keyword.Pseudo
' '           Text
'js'          Name.Variable
' '           Text
'%}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
'true'        Keyword.Pseudo
' '           Text
'html'        Name.Variable
' '           Text
'%}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
"'js'"        Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
"'html'"      Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'var\' => \'<br />"\')\n--EXPECT--\n\\x3Cbr\\x20\\x2F\\x3E\\x22\n&lt;br /&gt;&quot;\n\\x3Cbr\\x20\\x2F\\x3E\\x22\n&lt;br /&gt;&quot;\n--TEST--\nescape types\n--TEMPLATE--\n\n1. autoescape \'html\' |escape(\'js\')\n\n' Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
"'html'"      Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n<a onclick="alert(&quot;' Other
'{{'          Comment.Preproc
' '           Text
'msg'         Name.Variable
'|'           Operator
'escape'      Name.Function
'('           Operator
"'js'"        Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'&quot;)"></a>\n' Other

'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
"\n\n2. autoescape 'html' |escape('js')\n\n" Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
"'html'"      Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n<a onclick="alert(&quot;' Other
'{{'          Comment.Preproc
' '           Text
'msg'         Name.Variable
'|'           Operator
'escape'      Name.Function
'('           Operator
"'js'"        Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'&quot;)"></a>\n' Other

'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
"\n\n3. autoescape 'js' |escape('js')\n\n" Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
"'js'"        Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n<a onclick="alert(&quot;' Other
'{{'          Comment.Preproc
' '           Text
'msg'         Name.Variable
'|'           Operator
'escape'      Name.Function
'('           Operator
"'js'"        Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'&quot;)"></a>\n' Other

'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n4. no escape\n\n' Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
'false'       Keyword.Pseudo
' '           Text
'%}'          Comment.Preproc
'\n<a onclick="alert(&quot;' Other
'{{'          Comment.Preproc
' '           Text
'msg'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'&quot;)"></a>\n' Other

'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
"\n\n5. |escape('js')|escape('html')\n\n" Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
'false'       Keyword.Pseudo
' '           Text
'%}'          Comment.Preproc
'\n<a onclick="alert(&quot;' Other
'{{'          Comment.Preproc
' '           Text
'msg'         Name.Variable
'|'           Operator
'escape'      Name.Function
'('           Operator
"'js'"        Literal.String.Single
')'           Operator
'|'           Operator
'escape'      Name.Function
'('           Operator
"'html'"      Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'&quot;)"></a>\n' Other

'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
"\n\n6. autoescape 'html' |escape('js')|escape('html')\n\n" Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
"'html'"      Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n<a onclick="alert(&quot;' Other
'{{'          Comment.Preproc
' '           Text
'msg'         Name.Variable
'|'           Operator
'escape'      Name.Function
'('           Operator
"'js'"        Literal.String.Single
')'           Operator
'|'           Operator
'escape'      Name.Function
'('           Operator
"'html'"      Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'&quot;)"></a>\n' Other

'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n--DATA--\nreturn array(\'msg\' => "<>\\n\'\\"")\n--EXPECT--\n\n1. autoescape \'html\' |escape(\'js\')\n\n<a onclick="alert(&quot;\\x3C\\x3E\\x0A\\x27\\x22&quot;)"></a>\n\n2. autoescape \'html\' |escape(\'js\')\n\n<a onclick="alert(&quot;\\x3C\\x3E\\x0A\\x27\\x22&quot;)"></a>\n\n3. autoescape \'js\' |escape(\'js\')\n\n<a onclick="alert(&quot;\\x3C\\x3E\\x0A\\x27\\x22&quot;)"></a>\n\n4. no escape\n\n<a onclick="alert(&quot;<>\n\'"&quot;)"></a>\n\n5. |escape(\'js\')|escape(\'html\')\n\n<a onclick="alert(&quot;\\x3C\\x3E\\x0A\\x27\\x22&quot;)"></a>\n\n6. autoescape \'html\' |escape(\'js\')|escape(\'html\')\n\n<a onclick="alert(&quot;\\x3C\\x3E\\x0A\\x27\\x22&quot;)"></a>\n\n--TEST--\n"autoescape" tag do not applies escaping on filter arguments\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
"'html'"      Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
'|'           Operator
'nl2br'       Name.Function
'('           Operator
'"<br />"'    Literal.String.Double
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
'|'           Operator
'nl2br'       Name.Function
'('           Operator
'"<br />"'    Literal.String.Double
'|'           Operator
'escape'      Name.Function
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
'|'           Operator
'nl2br'       Name.Function
'('           Operator
'sep'         Name.Variable
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
'|'           Operator
'nl2br'       Name.Function
'('           Operator
'sep'         Name.Variable
'|'           Operator
'raw'         Name.Function
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
'|'           Operator
'nl2br'       Name.Function
'('           Operator
'sep'         Name.Variable
'|'           Operator
'escape'      Name.Function
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'var\' => "<Fabien>\\nTwig", \'sep\' => \'<br />\')\n--EXPECT--\n&lt;Fabien&gt;<br />\nTwig\n&lt;Fabien&gt;&lt;br /&gt;\nTwig\n&lt;Fabien&gt;<br />\nTwig\n&lt;Fabien&gt;<br />\nTwig\n&lt;Fabien&gt;&lt;br /&gt;\nTwig\n--TEST--\n"autoescape" tag applies escaping after calling filters\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
"'html'"      Literal.String.Single
' '           Text
'%}'          Comment.Preproc
"\n\n(escape_and_nl2br is an escaper filter)\n\n1. Don't escape escaper filter output\n( var is escaped by |escape_and_nl2br, line-breaks are added, \n  the output is not escaped )\n" Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
'|'           Operator
'escape_and_nl2br' Name.Function
' '           Text
'}}'          Comment.Preproc
"\n\n2. Don't escape escaper filter output\n( var is escaped by |escape_and_nl2br, line-breaks are added, \n  the output is not escaped, |raw is redundant )\n" Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
'|'           Operator
'escape_and_nl2br' Name.Function
'|'           Operator
'raw'         Name.Function
' '           Text
'}}'          Comment.Preproc
'\n\n3. Explicit escape\n( var is escaped by |escape_and_nl2br, line-breaks are added,\n  the output is explicitly escaped by |escape )\n' Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
'|'           Operator
'escape_and_nl2br' Name.Function
'|'           Operator
'escape'      Name.Function
' '           Text
'}}'          Comment.Preproc
'\n\n4. Escape non-escaper filter output\n( var is upper-cased by |upper,\n  the output is auto-escaped )\n' Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
'|'           Operator
'upper'       Name.Function
' '           Text
'}}'          Comment.Preproc
'\n\n5. Escape if last filter is not an escaper\n( var is escaped by |escape_and_nl2br, line-breaks are added,\n  the output is upper-cased by |upper,\n  the output is auto-escaped as |upper is not an escaper )\n' Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
'|'           Operator
'escape_and_nl2br' Name.Function
'|'           Operator
'upper'       Name.Function
' '           Text
'}}'          Comment.Preproc
"\n\n6. Don't escape escaper filter output\n( var is upper cased by upper,\n  the output is escaped by |escape_and_nl2br, line-breaks are added,\n  the output is not escaped as |escape_and_nl2br is an escaper )\n" Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
'|'           Operator
'upper'       Name.Function
'|'           Operator
'escape_and_nl2br' Name.Function
' '           Text
'}}'          Comment.Preproc
'\n\n7. Escape if last filter is not an escaper\n( the output of |format is "<b>" ~ var ~ "</b>",\n  the output is auto-escaped )\n' Other

'{{'          Comment.Preproc
' '           Text
'"<b>%s</b>"' Literal.String.Double
'|'           Operator
'format'      Name.Function
'('           Operator
'var'         Name.Variable
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\n8. Escape if last filter is not an escaper\n( the output of |format is "<b>" ~ var ~ "</b>",\n  |raw is redundant,\n  the output is auto-escaped )\n' Other

'{{'          Comment.Preproc
' '           Text
'"<b>%s</b>"' Literal.String.Double
'|'           Operator
'raw'         Name.Function
'|'           Operator
'format'      Name.Function
'('           Operator
'var'         Name.Variable
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\n9. Don\'t escape escaper filter output\n( the output of |format is "<b>" ~ var ~ "</b>",\n  the output is not escaped due to |raw filter at the end )\n' Other

'{{'          Comment.Preproc
' '           Text
'"<b>%s</b>"' Literal.String.Double
'|'           Operator
'format'      Name.Function
'('           Operator
'var'         Name.Variable
')'           Operator
'|'           Operator
'raw'         Name.Function
' '           Text
'}}'          Comment.Preproc
'\n\n10. Don\'t escape escaper filter output\n( the output of |format is "<b>" ~ var ~ "</b>",\n  the output is not escaped due to |raw filter at the end,\n  the |raw filter on var is redundant )\n' Other

'{{'          Comment.Preproc
' '           Text
'"<b>%s</b>"' Literal.String.Double
'|'           Operator
'format'      Name.Function
'('           Operator
'var'         Name.Variable
'|'           Operator
'raw'         Name.Function
')'           Operator
'|'           Operator
'raw'         Name.Function
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'var\' => "<Fabien>\\nTwig")\n--EXPECT--\n\n(escape_and_nl2br is an escaper filter)\n\n1. Don\'t escape escaper filter output\n( var is escaped by |escape_and_nl2br, line-breaks are added, \n  the output is not escaped )\n&lt;Fabien&gt;<br />\nTwig\n\n2. Don\'t escape escaper filter output\n( var is escaped by |escape_and_nl2br, line-breaks are added, \n  the output is not escaped, |raw is redundant )\n&lt;Fabien&gt;<br />\nTwig\n\n3. Explicit escape\n( var is escaped by |escape_and_nl2br, line-breaks are added,\n  the output is explicitly escaped by |escape )\n&amp;lt;Fabien&amp;gt;&lt;br /&gt;\nTwig\n\n4. Escape non-escaper filter output\n( var is upper-cased by |upper,\n  the output is auto-escaped )\n&lt;FABIEN&gt;\nTWIG\n\n5. Escape if last filter is not an escaper\n( var is escaped by |escape_and_nl2br, line-breaks are added,\n  the output is upper-cased by |upper,\n  the output is auto-escaped as |upper is not an escaper )\n&amp;LT;FABIEN&amp;GT;&lt;BR /&gt;\nTWIG\n\n6. Don\'t escape escaper filter output\n( var is upper cased by upper,\n  the output is escaped by |escape_and_nl2br, line-breaks are added,\n  the output is not escaped as |escape_and_nl2br is an escaper )\n&lt;FABIEN&gt;<br />\nTWIG\n\n7. Escape if last filter is not an escaper\n( the output of |format is "<b>" ~ var ~ "</b>",\n  the output is auto-escaped )\n&lt;b&gt;&lt;Fabien&gt;\nTwig&lt;/b&gt;\n\n8. Escape if last filter is not an escaper\n( the output of |format is "<b>" ~ var ~ "</b>",\n  |raw is redundant,\n  the output is auto-escaped )\n&lt;b&gt;&lt;Fabien&gt;\nTwig&lt;/b&gt;\n\n9. Don\'t escape escaper filter output\n( the output of |format is "<b>" ~ var ~ "</b>",\n  the output is not escaped due to |raw filter at the end )\n<b><Fabien>\nTwig</b>\n\n10. Don\'t escape escaper filter output\n( the output of |format is "<b>" ~ var ~ "</b>",\n  the output is not escaped due to |raw filter at the end,\n  the |raw filter on var is redundant )\n<b><Fabien>\nTwig</b>\n--TEST--\n"autoescape" tag applies escaping after calling filters, and before calling pre_escape filters\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
"'html'"      Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n\n(nl2br is pre_escaped for "html" and declared safe for "html")\n\n1. Pre-escape and don\'t post-escape\n( var|escape|nl2br )\n' Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
'|'           Operator
'nl2br'       Name.Function
' '           Text
'}}'          Comment.Preproc
"\n\n2. Don't double-pre-escape\n( var|escape|nl2br )\n" Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
'|'           Operator
'escape'      Name.Function
'|'           Operator
'nl2br'       Name.Function
' '           Text
'}}'          Comment.Preproc
"\n\n3. Don't escape safe values\n( var|raw|nl2br )\n" Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
'|'           Operator
'raw'         Name.Function
'|'           Operator
'nl2br'       Name.Function
' '           Text
'}}'          Comment.Preproc
"\n\n4. Don't escape safe values\n( var|escape|nl2br|nl2br )\n" Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
'|'           Operator
'nl2br'       Name.Function
'|'           Operator
'nl2br'       Name.Function
' '           Text
'}}'          Comment.Preproc
'\n\n5. Re-escape values that are escaped for an other contexts\n( var|escape_something|escape|nl2br )\n' Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
'|'           Operator
'escape_something' Name.Function
'|'           Operator
'nl2br'       Name.Function
' '           Text
'}}'          Comment.Preproc
'\n\n6. Still escape when using filters not declared safe\n( var|escape|nl2br|upper|escape )\n' Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
'|'           Operator
'nl2br'       Name.Function
'|'           Operator
'upper'       Name.Function
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'var\' => "<Fabien>\\nTwig")\n--EXPECT--\n\n(nl2br is pre_escaped for "html" and declared safe for "html")\n\n1. Pre-escape and don\'t post-escape\n( var|escape|nl2br )\n&lt;Fabien&gt;<br />\nTwig\n\n2. Don\'t double-pre-escape\n( var|escape|nl2br )\n&lt;Fabien&gt;<br />\nTwig\n\n3. Don\'t escape safe values\n( var|raw|nl2br )\n<Fabien><br />\nTwig\n\n4. Don\'t escape safe values\n( var|escape|nl2br|nl2br )\n&lt;Fabien&gt;<br /><br />\nTwig\n\n5. Re-escape values that are escaped for an other contexts\n( var|escape_something|escape|nl2br )\n&lt;FABIEN&gt;<br />\nTWIG\n\n6. Still escape when using filters not declared safe\n( var|escape|nl2br|upper|escape )\n&amp;LT;FABIEN&amp;GT;&lt;BR /&gt;\nTWIG\n\n--TEST--\n"autoescape" tag handles filters preserving the safety\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'autoescape'  Keyword
' '           Text
"'html'"      Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n\n(preserves_safety is preserving safety for "html")\n\n1. Unsafe values are still unsafe\n( var|preserves_safety|escape )\n' Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
'|'           Operator
'preserves_safety' Name.Function
' '           Text
'}}'          Comment.Preproc
'\n\n2. Safe values are still safe\n( var|escape|preserves_safety )\n' Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
'|'           Operator
'escape'      Name.Function
'|'           Operator
'preserves_safety' Name.Function
' '           Text
'}}'          Comment.Preproc
'\n\n3. Re-escape values that are escaped for an other contexts\n( var|escape_something|preserves_safety|escape )\n' Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
'|'           Operator
'escape_something' Name.Function
'|'           Operator
'preserves_safety' Name.Function
' '           Text
'}}'          Comment.Preproc
'\n\n4. Still escape when using filters not declared safe\n( var|escape|preserves_safety|replace(' Other
'{'           Other
"'FABIEN': 'FABPOT'})|escape )\n" Other

'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
'|'           Operator
'escape'      Name.Function
'|'           Operator
'preserves_safety' Name.Function
'|'           Operator
'replace'     Name.Function
'('           Operator
'{'           Operator
"'FABIEN'"    Literal.String.Single
':'           Operator
' '           Text
"'FABPOT'"    Literal.String.Single
'}'           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'endautoescape' Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'var\' => "<Fabien>\\nTwig")\n--EXPECT--\n\n(preserves_safety is preserving safety for "html")\n\n1. Unsafe values are still unsafe\n( var|preserves_safety|escape )\n&lt;FABIEN&gt;\nTWIG\n\n2. Safe values are still safe\n( var|escape|preserves_safety )\n&LT;FABIEN&GT;\nTWIG\n\n3. Re-escape values that are escaped for an other contexts\n( var|escape_something|preserves_safety|escape )\n&lt;FABIEN&gt;\nTWIG\n\n4. Still escape when using filters not declared safe\n( var|escape|preserves_safety|replace(' Other
'{'           Other
'\'FABIEN\': \'FABPOT\'})|escape )\n&amp;LT;FABPOT&amp;GT;\nTWIG\n\n--TEST--\n"block" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'title1'      Name.Variable
' '           Text
'%}'          Comment.Preproc
'FOO'         Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'title2'      Name.Variable
' '           Text
'foo'         Name.Variable
'|'           Operator
'lower'       Name.Function
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'foo\' => \'bar\')\n--EXPECT--\nFOObar\n--TEST--\n"block" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXCEPTION--\nTwig_Error_Syntax: The block \'content\' has already been defined line 2 in "index.twig" at line 3\n--TEST--\n"§" special chars in a block name\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'§'           Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n§\n'       Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'§'           Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n§\n--TEST--\n"embed" tag\n--TEMPLATE--\nFOO\n' Other

'{%'          Comment.Preproc
' '           Text
'embed'       Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'c1'          Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n        '  Other
'{{'          Comment.Preproc
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n        block1extended\n    ' Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endembed'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n\nBAR\n--TEMPLATE(foo.twig)--\nA\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'c1'          Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    block1\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\nB\n'       Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'c2'          Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    block2\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\nC\n--DATA--\nreturn array()\n--EXPECT--\nFOO\n\nA\n            block1\n\n        block1extended\n    B\n    block2\nC\nBAR\n--TEST--\n"embed" tag\n--TEMPLATE(index.twig)--\nFOO\n' Other

'{%'          Comment.Preproc
' '           Text
'embed'       Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'c1'          Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n        '  Other
'{{'          Comment.Preproc
' '           Text
'nothing'     Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n    '      Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endembed'    Keyword
' '           Text
'%}'          Comment.Preproc
'\nBAR\n--TEMPLATE(foo.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'c1'          Name.Variable
' '           Text
'%}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXCEPTION--\nTwig_Error_Runtime: Variable "nothing" does not exist in "index.twig" at line 5\n--TEST--\n"embed" tag\n--TEMPLATE--\nFOO\n' Other

'{%'          Comment.Preproc
' '           Text
'embed'       Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'c1'          Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n        '  Other
'{{'          Comment.Preproc
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n        block1extended\n    ' Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endembed'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'embed'       Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'c1'          Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n        '  Other
'{{'          Comment.Preproc
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n        block1extended\n    ' Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endembed'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n\nBAR\n--TEMPLATE(foo.twig)--\nA\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'c1'          Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    block1\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\nB\n'       Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'c2'          Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    block2\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\nC\n--DATA--\nreturn array()\n--EXPECT--\nFOO\n\nA\n            block1\n\n        block1extended\n    B\n    block2\nC\n\nA\n            block1\n\n        block1extended\n    B\n    block2\nC\nBAR\n--TEST--\n"embed" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'embed'       Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'c1'          Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n        '  Other
'{{'          Comment.Preproc
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n        '  Other
'{%'          Comment.Preproc
' '           Text
'embed'       Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n            ' Other
'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'c1'          Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n                ' Other
'{{'          Comment.Preproc
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n                block1extended\n            ' Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n        '  Other
'{%'          Comment.Preproc
' '           Text
'endembed'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n    '    Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endembed'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\nA\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'c1'          Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    block1\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\nB\n'       Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'c2'          Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    block2\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\nC\n--DATA--\nreturn array()\n--EXPECT--\nA\n            block1\n\n        \nA\n                    block1\n\n                block1extended\n            B\n    block2\nC\n    B\n    block2\nC\n--TEST--\n"embed" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'"base.twig"' Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'c1'          Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n    blockc1baseextended\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'c2'          Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\n    '    Other
'{%'          Comment.Preproc
' '           Text
'embed'       Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n        '  Other
'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'c1'          Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n            ' Other
'{{'          Comment.Preproc
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n            block1extended\n        ' Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{%'          Comment.Preproc
' '           Text
'endembed'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(base.twig)--\nA\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'c1'          Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    blockc1base\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'c2'          Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    blockc2base\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\nB\n--TEMPLATE(foo.twig)--\nA\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'c1'          Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    block1\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\nB\n'       Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'c2'          Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    block2\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\nC\n--DATA--\nreturn array()\n--EXPECT--\nA\n        blockc1base\n\n    blockc1baseextended\n        blockc2base\n\n\n    \nA\n                block1\n\n            block1extended\n        B\n    block2\nCB--TEST--\n"filter" tag applies a filter on its children\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'filter'      Keyword
' '           Text
'upper'       Name.Function
' '           Text
'%}'          Comment.Preproc
'\nSome text with a ' Other
'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endfilter'   Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'var\' => \'var\')\n--EXPECT--\nSOME TEXT WITH A VAR\n--TEST--\n"filter" tag applies a filter on its children\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'filter'      Keyword
' '           Text
'json_encode' Name.Function
'|'           Operator
'raw'         Name.Function
' '           Text
'%}'          Comment.Preproc
'test'        Other
'{%'          Comment.Preproc
' '           Text
'endfilter'   Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n"test"\n--TEST--\n"filter" tags accept multiple chained filters\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'filter'      Keyword
' '           Text
'lower'       Name.Function
'|'           Operator
'title'       Name.Function
' '           Text
'%}'          Comment.Preproc
'\n  '        Other
'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endfilter'   Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'var\' => \'VAR\')\n--EXPECT--\n    Var\n--TEST--\n"filter" tags can be nested at will\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'filter'      Keyword
' '           Text
'lower'       Name.Function
'|'           Operator
'title'       Name.Function
' '           Text
'%}'          Comment.Preproc
'\n  '        Other
'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n  '        Other
'{%'          Comment.Preproc
' '           Text
'filter'      Keyword
' '           Text
'upper'       Name.Function
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n  '        Other
'{%'          Comment.Preproc
' '           Text
'endfilter'   Keyword
' '           Text
'%}'          Comment.Preproc
'\n  '        Other
'{{'          Comment.Preproc
' '           Text
'var'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endfilter'   Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'var\' => \'var\')\n--EXPECT--\n  Var\n      Var\n    Var\n--TEST--\n"filter" tag applies the filter on "for" tags\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'filter'      Keyword
' '           Text
'upper'       Name.Function
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'item'        Name.Variable
' '           Text
'in'          Keyword
' '           Text
'items'       Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'item'        Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endfilter'   Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'items\' => array(\'a\', \'b\'))\n--EXPECT--\nA\nB\n--TEST--\n"filter" tag applies the filter on "if" tags\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'filter'      Keyword
' '           Text
'upper'       Name.Function
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'if'          Keyword
' '           Text
'items'       Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'items'       Name.Variable
'|'           Operator
'join'        Name.Function
'('           Operator
"', '"        Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endif'       Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'if'          Keyword
' '           Text
'items'       Name.Variable
'.3'          Literal.Number
' '           Text
'is'          Keyword
' '           Text
'defined'     Name.Function
' '           Text
'%}'          Comment.Preproc
'\nFOO\n'     Other

'{%'          Comment.Preproc
' '           Text
'else'        Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'items'       Name.Variable
'.1'          Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endif'       Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'if'          Keyword
' '           Text
'items'       Name.Variable
'.3'          Literal.Number
' '           Text
'is'          Keyword
' '           Text
'defined'     Name.Function
' '           Text
'%}'          Comment.Preproc
'\nFOO\n'     Other

'{%'          Comment.Preproc
' '           Text
'elseif'      Keyword
' '           Text
'items'       Name.Variable
'.1'          Literal.Number
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'items'       Name.Variable
'.0'          Literal.Number
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endif'       Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'endfilter'   Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'items\' => array(\'a\', \'b\'))\n--EXPECT--\nA, B\n\nB\n\nA\n--TEST--\n"for" tag takes a condition\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'i'           Name.Variable
' '           Text
'in'          Keyword
' '           Text
'1.'          Literal.Number
'.5'          Literal.Number
' '           Text
'if'          Name.Variable
' '           Text
'i'           Name.Variable
' '           Text
'is'          Keyword
' '           Text
'odd'         Name.Function
' '           Text
'-'           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
' '           Text
'loop'        Name.Builtin
'.index'      Name.Variable
' '           Text
'}}'          Comment.Preproc
'.'           Other
'{{'          Comment.Preproc
' '           Text
'i'           Name.Variable
' '           Text
'}}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
'.bar'        Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'foo\' => array(\'bar\' => \'X\'))\n--CONFIG--\nreturn array(\'strict_variables\' => false)\n--EXPECT--\n1.1X\n2.3X\n3.5X\n--TEST--\n"for" tag keeps the context safe\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'item'        Name.Variable
' '           Text
'in'          Keyword
' '           Text
'items'       Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n  '        Other
'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'item'        Name.Variable
' '           Text
'in'          Keyword
' '           Text
'items'       Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    * '    Other
'{{'          Comment.Preproc
' '           Text
'item'        Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n  '        Other
'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n  * '      Other
'{{'          Comment.Preproc
' '           Text
'item'        Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'items\' => array(\'a\', \'b\'))\n--EXPECT--\n      * a\n      * b\n    * a\n      * a\n      * b\n    * b\n--TEST--\n"for" tag can use an "else" clause\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'item'        Name.Variable
' '           Text
'in'          Keyword
' '           Text
'items'       Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n  * '      Other
'{{'          Comment.Preproc
' '           Text
'item'        Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'else'        Keyword
' '           Text
'%}'          Comment.Preproc
'\n  no item\n' Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'items\' => array(\'a\', \'b\'))\n--EXPECT--\n  * a\n  * b\n--DATA--\nreturn array(\'items\' => array())\n--EXPECT--\n  no item\n--DATA--\nreturn array()\n--CONFIG--\nreturn array(\'strict_variables\' => false)\n--EXPECT--\n  no item\n--TEST--\n"for" tag does not reset inner variables\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'i'           Name.Variable
' '           Text
'in'          Keyword
' '           Text
'1.'          Literal.Number
'.2'          Literal.Number
' '           Text
'%}'          Comment.Preproc
'\n  '        Other
'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'j'           Name.Variable
' '           Text
'in'          Keyword
' '           Text
'0.'          Literal.Number
'.2'          Literal.Number
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
'k'           Name.Variable
'}}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'set'         Keyword
' '           Text
'k'           Name.Variable
' '           Text
'='           Operator
' '           Text
'k'           Name.Variable
'+'           Operator
'1'           Literal.Number
' '           Text
'%}'          Comment.Preproc
' '           Other
'{{'          Comment.Preproc
' '           Text
'loop'        Name.Builtin
'.parent'     Name.Variable
'.loop'       Name.Variable
'.index'      Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n  '        Other
'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'k\' => 0)\n--EXPECT--\n      0 1\n      1 1\n      2 1\n        3 2\n      4 2\n      5 2\n--TEST--\n"for" tag can iterate over keys and values\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'key'         Name.Variable
','           Operator
' '           Text
'item'        Name.Variable
' '           Text
'in'          Keyword
' '           Text
'items'       Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n  * '      Other
'{{'          Comment.Preproc
' '           Text
'key'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'/'           Other
'{{'          Comment.Preproc
' '           Text
'item'        Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'items\' => array(\'a\', \'b\'))\n--EXPECT--\n  * 0/a\n  * 1/b\n--TEST--\n"for" tag can iterate over keys\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'key'         Name.Variable
' '           Text
'in'          Keyword
' '           Text
'items'       Name.Variable
'|'           Operator
'keys'        Name.Function
' '           Text
'%}'          Comment.Preproc
'\n  * '      Other
'{{'          Comment.Preproc
' '           Text
'key'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'items\' => array(\'a\', \'b\'))\n--EXPECT--\n  * 0\n  * 1\n--TEST--\n"for" tag adds a loop variable to the context locally\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'item'        Name.Variable
' '           Text
'in'          Keyword
' '           Text
'items'       Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'if'          Keyword
' '           Text
'loop'        Name.Builtin
' '           Text
'is'          Keyword
' '           Text
'not'         Keyword
' '           Text
'defined'     Name.Function
' '           Text
'%}'          Comment.Preproc
'WORKS'       Other
'{%'          Comment.Preproc
' '           Text
'endif'       Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'items\' => array())\n--EXPECT--\nWORKS\n--TEST--\n"for" tag adds a loop variable to the context\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'item'        Name.Variable
' '           Text
'in'          Keyword
' '           Text
'items'       Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n  * '      Other
'{{'          Comment.Preproc
' '           Text
'loop'        Name.Builtin
'.index'      Name.Variable
' '           Text
'}}'          Comment.Preproc
'/'           Other
'{{'          Comment.Preproc
' '           Text
'loop'        Name.Builtin
'.index0'     Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n  * '      Other
'{{'          Comment.Preproc
' '           Text
'loop'        Name.Builtin
'.revindex'   Name.Variable
' '           Text
'}}'          Comment.Preproc
'/'           Other
'{{'          Comment.Preproc
' '           Text
'loop'        Name.Builtin
'.revindex0'  Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n  * '      Other
'{{'          Comment.Preproc
' '           Text
'loop'        Name.Builtin
'.first'      Name.Variable
' '           Text
'}}'          Comment.Preproc
'/'           Other
'{{'          Comment.Preproc
' '           Text
'loop'        Name.Builtin
'.last'       Name.Variable
' '           Text
'}}'          Comment.Preproc
'/'           Other
'{{'          Comment.Preproc
' '           Text
'loop'        Name.Builtin
'.length'     Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'items\' => array(\'a\', \'b\'))\n--EXPECT--\n  * 1/0\n  * 2/1\n  * 1//2\n\n  * 2/1\n  * 1/0\n  * /1/2\n--TEST--\n"for" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'i'           Name.Variable
','           Operator
' '           Text
'item'        Name.Variable
' '           Text
'in'          Keyword
' '           Text
'items'       Name.Variable
' '           Text
'if'          Name.Variable
' '           Text
'loop'        Name.Builtin
'.last'       Name.Variable
' '           Text
'>'           Operator
' '           Text
'0'           Literal.Number
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'items\' => array(\'a\', \'b\'))\n--EXCEPTION--\nTwig_Error_Syntax: The "loop" variable cannot be used in a looping condition in "index.twig" at line 2\n--TEST--\n"for" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'i'           Name.Variable
','           Operator
' '           Text
'item'        Name.Variable
' '           Text
'in'          Keyword
' '           Text
'items'       Name.Variable
' '           Text
'if'          Name.Variable
' '           Text
'i'           Name.Variable
' '           Text
'>'           Operator
' '           Text
'0'           Literal.Number
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
' '           Text
'loop'        Name.Builtin
'.last'       Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'items\' => array(\'a\', \'b\'))\n--EXCEPTION--\nTwig_Error_Syntax: The "loop.last" variable is not defined when looping with a condition in "index.twig" at line 3\n--TEST--\n"for" tag can use an "else" clause\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'item'        Name.Variable
' '           Text
'in'          Keyword
' '           Text
'items'       Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n  '        Other
'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'item'        Name.Variable
' '           Text
'in'          Keyword
' '           Text
'items1'      Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    * '    Other
'{{'          Comment.Preproc
' '           Text
'item'        Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n  '        Other
'{%'          Comment.Preproc
' '           Text
'else'        Keyword
' '           Text
'%}'          Comment.Preproc
'\n    no '   Other
'{{'          Comment.Preproc
' '           Text
'item'        Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n  '        Other
'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'else'        Keyword
' '           Text
'%}'          Comment.Preproc
'\n  no item1\n' Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'items\' => array(\'a\', \'b\'), \'items1\' => array())\n--EXPECT--\nno a\n        no b\n--TEST--\n"for" tag iterates over iterable and countable objects\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'item'        Name.Variable
' '           Text
'in'          Keyword
' '           Text
'items'       Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n  * '      Other
'{{'          Comment.Preproc
' '           Text
'item'        Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n  * '      Other
'{{'          Comment.Preproc
' '           Text
'loop'        Name.Builtin
'.index'      Name.Variable
' '           Text
'}}'          Comment.Preproc
'/'           Other
'{{'          Comment.Preproc
' '           Text
'loop'        Name.Builtin
'.index0'     Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n  * '      Other
'{{'          Comment.Preproc
' '           Text
'loop'        Name.Builtin
'.revindex'   Name.Variable
' '           Text
'}}'          Comment.Preproc
'/'           Other
'{{'          Comment.Preproc
' '           Text
'loop'        Name.Builtin
'.revindex0'  Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n  * '      Other
'{{'          Comment.Preproc
' '           Text
'loop'        Name.Builtin
'.first'      Name.Variable
' '           Text
'}}'          Comment.Preproc
'/'           Other
'{{'          Comment.Preproc
' '           Text
'loop'        Name.Builtin
'.last'       Name.Variable
' '           Text
'}}'          Comment.Preproc
'/'           Other
'{{'          Comment.Preproc
' '           Text
'loop'        Name.Builtin
'.length'     Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'key'         Name.Variable
','           Operator
' '           Text
'value'       Name.Variable
' '           Text
'in'          Keyword
' '           Text
'items'       Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n  * '      Other
'{{'          Comment.Preproc
' '           Text
'key'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'/'           Other
'{{'          Comment.Preproc
' '           Text
'value'       Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'key'         Name.Variable
' '           Text
'in'          Keyword
' '           Text
'items'       Name.Variable
'|'           Operator
'keys'        Name.Function
' '           Text
'%}'          Comment.Preproc
'\n  * '      Other
'{{'          Comment.Preproc
' '           Text
'key'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nclass ItemsIteratorCountable implements Iterator, Countable\n' Other

'{'           Other
"\n  protected $values = array('foo' => 'bar', 'bar' => 'foo');\n  public function current() " Other
'{'           Other
' return current($this->values); }\n  public function key() ' Other
'{'           Other
' return key($this->values); }\n  public function next() ' Other
'{'           Other
' return next($this->values); }\n  public function rewind() ' Other
'{'           Other
' return reset($this->values); }\n  public function valid() ' Other
'{'           Other
' return false !== current($this->values); }\n  public function count() ' Other
'{'           Other
' return count($this->values); }\n}\nreturn array(\'items\' => new ItemsIteratorCountable())\n--EXPECT--\n  * bar\n  * 1/0\n  * 2/1\n  * 1//2\n\n  * foo\n  * 2/1\n  * 1/0\n  * /1/2\n\n\n  * foo/bar\n  * bar/foo\n\n  * foo\n  * bar\n--TEST--\n"for" tag iterates over iterable objects\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'item'        Name.Variable
' '           Text
'in'          Keyword
' '           Text
'items'       Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n  * '      Other
'{{'          Comment.Preproc
' '           Text
'item'        Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n  * '      Other
'{{'          Comment.Preproc
' '           Text
'loop'        Name.Builtin
'.index'      Name.Variable
' '           Text
'}}'          Comment.Preproc
'/'           Other
'{{'          Comment.Preproc
' '           Text
'loop'        Name.Builtin
'.index0'     Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n  * '      Other
'{{'          Comment.Preproc
' '           Text
'loop'        Name.Builtin
'.first'      Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'key'         Name.Variable
','           Operator
' '           Text
'value'       Name.Variable
' '           Text
'in'          Keyword
' '           Text
'items'       Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n  * '      Other
'{{'          Comment.Preproc
' '           Text
'key'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'/'           Other
'{{'          Comment.Preproc
' '           Text
'value'       Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'key'         Name.Variable
' '           Text
'in'          Keyword
' '           Text
'items'       Name.Variable
'|'           Operator
'keys'        Name.Function
' '           Text
'%}'          Comment.Preproc
'\n  * '      Other
'{{'          Comment.Preproc
' '           Text
'key'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nclass ItemsIterator implements Iterator\n' Other

'{'           Other
"\n  protected $values = array('foo' => 'bar', 'bar' => 'foo');\n  public function current() " Other
'{'           Other
' return current($this->values); }\n  public function key() ' Other
'{'           Other
' return key($this->values); }\n  public function next() ' Other
'{'           Other
' return next($this->values); }\n  public function rewind() ' Other
'{'           Other
' return reset($this->values); }\n  public function valid() ' Other
'{'           Other
' return false !== current($this->values); }\n}\nreturn array(\'items\' => new ItemsIterator())\n--EXPECT--\n  * bar\n  * 1/0\n  * 1\n\n  * foo\n  * 2/1\n  * \n\n\n  * foo/bar\n  * bar/foo\n\n  * foo\n  * bar\n--TEST--\n"for" tags can be nested\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'key'         Name.Variable
','           Operator
' '           Text
'item'        Name.Variable
' '           Text
'in'          Keyword
' '           Text
'items'       Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n* '        Other
'{{'          Comment.Preproc
' '           Text
'key'         Name.Variable
' '           Text
'}}'          Comment.Preproc
' ('          Other
'{{'          Comment.Preproc
' '           Text
'loop'        Name.Builtin
'.length'     Name.Variable
' '           Text
'}}'          Comment.Preproc
'):\n'        Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'value'       Name.Variable
' '           Text
'in'          Keyword
' '           Text
'item'        Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n  * '      Other
'{{'          Comment.Preproc
' '           Text
'value'       Name.Variable
' '           Text
'}}'          Comment.Preproc
' ('          Other
'{{'          Comment.Preproc
' '           Text
'loop'        Name.Builtin
'.length'     Name.Variable
' '           Text
'}}'          Comment.Preproc
')\n'         Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'items\' => array(\'a\' => array(\'a1\', \'a2\', \'a3\'), \'b\' => array(\'b1\')))\n--EXPECT--\n* a (2):\n  * a1 (3)\n  * a2 (3)\n  * a3 (3)\n* b (2):\n  * b1 (1)\n--TEST--\n"for" tag iterates over item values\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'item'        Name.Variable
' '           Text
'in'          Keyword
' '           Text
'items'       Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n  * '      Other
'{{'          Comment.Preproc
' '           Text
'item'        Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
"\n--DATA--\nreturn array('items' => array('a', 'b'))\n--EXPECT--\n  * a\n  * b\n--TEST--\nglobal variables\n--TEMPLATE--\n" Other

'{%'          Comment.Preproc
' '           Text
'include'     Keyword
' '           Text
'"included.twig"' Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'from'        Keyword
' '           Text
'"included.twig"' Literal.String.Double
' '           Text
'import'      Name.Variable
' '           Text
'foobar'      Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'foobar'      Name.Variable
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--TEMPLATE(included.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'macro'       Keyword
' '           Text
'foobar'      Name.Variable
'('           Operator
')'           Operator
' '           Text
'%}'          Comment.Preproc
'\ncalled foobar\n' Other

'{%'          Comment.Preproc
' '           Text
'endmacro'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array();\n--EXPECT--\ncalled foobar\n--TEST--\n"if" creates a condition\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'if'          Keyword
' '           Text
'a'           Name.Variable
' '           Text
'is'          Keyword
' '           Text
'defined'     Name.Function
' '           Text
'%}'          Comment.Preproc
'\n  '        Other
'{{'          Comment.Preproc
' '           Text
'a'           Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'elseif'      Keyword
' '           Text
'b'           Name.Variable
' '           Text
'is'          Keyword
' '           Text
'defined'     Name.Function
' '           Text
'%}'          Comment.Preproc
'\n  '        Other
'{{'          Comment.Preproc
' '           Text
'b'           Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'else'        Keyword
' '           Text
'%}'          Comment.Preproc
'\n  NOTHING\n' Other

'{%'          Comment.Preproc
' '           Text
'endif'       Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'a\' => \'a\')\n--EXPECT--\n  a\n--DATA--\nreturn array(\'b\' => \'b\')\n--EXPECT--\n  b\n--DATA--\nreturn array()\n--EXPECT--\n  NOTHING\n--TEST--\n"if" takes an expression as a test\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'if'          Keyword
' '           Text
'a'           Name.Variable
' '           Text
'<'           Operator
' '           Text
'2'           Literal.Number
' '           Text
'%}'          Comment.Preproc
'\n  A1\n'    Other

'{%'          Comment.Preproc
' '           Text
'elseif'      Keyword
' '           Text
'a'           Name.Variable
' '           Text
'>'           Operator
' '           Text
'1'           Literal.Number
'0'           Literal.Number
' '           Text
'%}'          Comment.Preproc
'\n  A2\n'    Other

'{%'          Comment.Preproc
' '           Text
'else'        Keyword
' '           Text
'%}'          Comment.Preproc
'\n  A3\n'    Other

'{%'          Comment.Preproc
' '           Text
'endif'       Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'a\' => 1)\n--EXPECT--\n  A1\n--DATA--\nreturn array(\'a\' => 12)\n--EXPECT--\n  A2\n--DATA--\nreturn array(\'a\' => 7)\n--EXPECT--\n  A3\n--TEST--\n"include" tag\n--TEMPLATE--\nFOO\n' Other

'{%'          Comment.Preproc
' '           Text
'include'     Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n\nBAR\n--TEMPLATE(foo.twig)--\nFOOBAR\n--DATA--\nreturn array()\n--EXPECT--\nFOO\n\nFOOBAR\nBAR\n--TEST--\n"include" tag allows expressions for the template to include\n--TEMPLATE--\nFOO\n' Other

'{%'          Comment.Preproc
' '           Text
'include'     Keyword
' '           Text
'foo'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n\nBAR\n--TEMPLATE(foo.twig)--\nFOOBAR\n--DATA--\nreturn array(\'foo\' => \'foo.twig\')\n--EXPECT--\nFOO\n\nFOOBAR\nBAR\n--TEST--\n"include" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'include'     Keyword
' '           Text
'['           Operator
'"foo.twig"'  Literal.String.Double
','           Operator
' '           Text
'"bar.twig"'  Literal.String.Double
']'           Operator
' '           Text
'ignore'      Name.Variable
' '           Text
'missing'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'include'     Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'ignore'      Name.Variable
' '           Text
'missing'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'include'     Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'ignore'      Name.Variable
' '           Text
'missing'     Name.Variable
' '           Text
'with'        Name.Variable
' '           Text
'{'           Operator
'}'           Operator
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'include'     Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'ignore'      Name.Variable
' '           Text
'missing'     Name.Variable
' '           Text
'with'        Name.Variable
' '           Text
'{'           Operator
'}'           Operator
' '           Text
'only'        Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n--TEST--\n"include" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'"base.twig"' Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(base.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{%'          Comment.Preproc
' '           Text
'include'     Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array();\n--EXCEPTION--\nTwig_Error_Loader: Template "foo.twig" is not defined in "base.twig" at line 3.\n--TEST--\n"include" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'include'     Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array();\n--EXCEPTION--\nTwig_Error_Loader: Template "foo.twig" is not defined in "index.twig" at line 2.\n--TEST--\n"include" tag accept variables and only\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'include'     Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'include'     Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'only'        Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'include'     Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'with'        Name.Variable
' '           Text
'{'           Operator
"'foo1'"      Literal.String.Single
':'           Operator
' '           Text
"'bar'"       Literal.String.Single
'}'           Operator
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'include'     Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'with'        Name.Variable
' '           Text
'{'           Operator
"'foo1'"      Literal.String.Single
':'           Operator
' '           Text
"'bar'"       Literal.String.Single
'}'           Operator
' '           Text
'only'        Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'k'           Name.Variable
','           Operator
' '           Text
'v'           Name.Variable
' '           Text
'in'          Keyword
' '           Text
'_context'    Name.Variable
' '           Text
'%}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'k'           Name.Variable
' '           Text
'}}'          Comment.Preproc
','           Other
'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'foo\' => \'bar\')\n--EXPECT--\nfoo,global,_parent,\nglobal,_parent,\nfoo,global,foo1,_parent,\nfoo1,global,_parent,\n--TEST--\n"include" tag accepts Twig_Template instance\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'include'     Keyword
' '           Text
'foo'         Name.Variable
' '           Text
'%}'          Comment.Preproc
' FOO\n--TEMPLATE(foo.twig)--\nBAR\n--DATA--\nreturn array(\'foo\' => $twig->loadTemplate(\'foo.twig\'))\n--EXPECT--\nBAR FOO\n--TEST--\n"include" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'include'     Keyword
' '           Text
'['           Operator
'"foo.twig"'  Literal.String.Double
','           Operator
' '           Text
'"bar.twig"'  Literal.String.Double
']'           Operator
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'include'     Keyword
' '           Text
'['           Operator
'"bar.twig"'  Literal.String.Double
','           Operator
' '           Text
'"foo.twig"'  Literal.String.Double
']'           Operator
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\nfoo\n--DATA--\nreturn array()\n--EXPECT--\nfoo\nfoo\n--TEST--\n"include" tag accept variables\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'include'     Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'with'        Name.Variable
' '           Text
'{'           Operator
"'foo'"       Literal.String.Single
':'           Operator
' '           Text
"'bar'"       Literal.String.Single
'}'           Operator
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'include'     Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'with'        Name.Variable
' '           Text
'vars'        Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\n' Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\'vars\' => array(\'foo\' => \'bar\'))\n--EXPECT--\nbar\nbar\n--TEST--\n"extends" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'\nFOO\n'     Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nFOO\n--TEST--\nblock_expr2\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'"base2.twig"' Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'element'     Name.Variable
' '           Text
'-'           Text
'%}'          Comment.Preproc
'\n    Element:\n    ' Other
'{{'          Comment.Preproc
'-'           Operator
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'-'           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(base2.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'"base.twig"' Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(base.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'spaceless'   Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'element'     Name.Variable
' '           Text
'-'           Text
'%}'          Comment.Preproc
'\n    <div>\n        ' Other
'{%'          Comment.Preproc
'- '          Text
'if'          Keyword
' '           Text
'item'        Name.Variable
'.children'   Name.Variable
' '           Text
'is'          Keyword
' '           Text
'defined'     Name.Function
' '           Text
'%}'          Comment.Preproc
'\n            ' Other
'{%'          Comment.Preproc
'- '          Text
'for'         Keyword
' '           Text
'item'        Name.Variable
' '           Text
'in'          Keyword
' '           Text
'item'        Name.Variable
'.children'   Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n                ' Other
'{{'          Comment.Preproc
'-'           Operator
' '           Text
'block'       Name.Builtin
'('           Operator
"'element'"   Literal.String.Single
')'           Operator
' '           Text
'-'           Text
'}}'          Comment.Preproc
'\n            ' Other
'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n        '  Other
'{%'          Comment.Preproc
'- '          Text
'endif'       Keyword
' '           Text
'-'           Text
'%}'          Comment.Preproc
'\n    </div>\n' Other

'{%'          Comment.Preproc
'- '          Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endspaceless' Keyword
' '           Text
'%}'          Comment.Preproc
"\n--DATA--\nreturn array(\n    'item' => array(\n        'children' => array(\n            null,\n            null,\n        )\n    )\n)\n--EXPECT--\nElement:<div>Element:<div></div>Element:<div></div></div>\n--TEST--\nblock_expr\n--TEMPLATE--\n" Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'"base.twig"' Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'element'     Name.Variable
' '           Text
'-'           Text
'%}'          Comment.Preproc
'\n    Element:\n    ' Other
'{{'          Comment.Preproc
'-'           Operator
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'-'           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(base.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'spaceless'   Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'element'     Name.Variable
' '           Text
'-'           Text
'%}'          Comment.Preproc
'\n    <div>\n        ' Other
'{%'          Comment.Preproc
'- '          Text
'if'          Keyword
' '           Text
'item'        Name.Variable
'.children'   Name.Variable
' '           Text
'is'          Keyword
' '           Text
'defined'     Name.Function
' '           Text
'%}'          Comment.Preproc
'\n            ' Other
'{%'          Comment.Preproc
'- '          Text
'for'         Keyword
' '           Text
'item'        Name.Variable
' '           Text
'in'          Keyword
' '           Text
'item'        Name.Variable
'.children'   Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n                ' Other
'{{'          Comment.Preproc
'-'           Operator
' '           Text
'block'       Name.Builtin
'('           Operator
"'element'"   Literal.String.Single
')'           Operator
' '           Text
'-'           Text
'}}'          Comment.Preproc
'\n            ' Other
'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n        '  Other
'{%'          Comment.Preproc
'- '          Text
'endif'       Keyword
' '           Text
'-'           Text
'%}'          Comment.Preproc
'\n    </div>\n' Other

'{%'          Comment.Preproc
'- '          Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endspaceless' Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\n    \'item\' => array(\n        \'children\' => array(\n            null,\n            null,\n        )\n    )\n)\n--EXPECT--\nElement:<div>Element:<div></div>Element:<div></div></div>\n--TEST--\n"extends" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'standalone'  Name.Variable
' '           Text
'?'           Operator
' '           Text
'foo'         Name.Variable
' '           Text
':'           Operator
' '           Text
"'bar.twig'"  Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'FOO'         Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'FOO'         Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(bar.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'BAR'         Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'foo\' => \'foo.twig\', \'standalone\' => true)\n--EXPECT--\nFOOFOO\n--TEST--\n"extends" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'foo'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'\nFOO\n'     Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'foo\' => \'foo.twig\')\n--EXPECT--\nFOO\n--TEST--\n"extends" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'FOO'         Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nFOO\n--TEST--\n"extends" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'['           Operator
'"foo.twig"'  Literal.String.Double
','           Operator
' '           Text
'"bar.twig"'  Literal.String.Double
']'           Operator
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(bar.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'\nfoo\n'     Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nfoo\n--TEST--\n"extends" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'"layout.twig"' Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'index '      Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(layout.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'"base.twig"' Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'layout '     Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(base.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'base '       Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nbase layout index\n--TEST--\n"block" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    CONTENT\n    ' Other
'{%'          Comment.Preproc
'- '          Text
'block'       Keyword
' '           Text
'subcontent'  Name.Variable
' '           Text
'-'           Text
'%}'          Comment.Preproc
'\n        SUBCONTENT\n    ' Other
'{%'          Comment.Preproc
'- '          Text
'endblock'    Keyword
' '           Text
'-'           Text
'%}'          Comment.Preproc
'\n    ENDCONTENT\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\n--DATA--\nreturn array()\n--EXPECT--\nCONTENTSUBCONTENTENDCONTENT\n--TEST--\n"block" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'subcontent'  Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n        '  Other
'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'subsubcontent' Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n            SUBSUBCONTENT\n        ' Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'subcontent'  Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n        SUBCONTENT\n    ' Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nSUBSUBCONTENT\n--TEST--\n"extends" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'"layout.twig"' Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'inside'      Name.Variable
' '           Text
'%}'          Comment.Preproc
'INSIDE'      Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'inside'      Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(layout.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'"base.twig"' Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'body'        Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'inside'      Name.Variable
' '           Text
"''"          Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'body'        Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(base.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'body'        Name.Variable
' '           Text
"''"          Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nINSIDE\n--TEST--\n"extends" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'foo'         Name.Variable
' '           Text
'?'           Operator
' '           Text
"'foo.twig'"  Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'bar.twig'"  Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\nFOO\n--TEMPLATE(bar.twig)--\nBAR\n--DATA--\nreturn array(\'foo\' => true)\n--EXPECT--\nFOO\n--DATA--\nreturn array(\'foo\' => false)\n--EXPECT--\nBAR\n--TEST--\n"extends" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--EXCEPTION--\nTwig_Error_Syntax: Cannot extend from a block in "index.twig" at line 3\n--TEST--\n"extends" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'"base.twig"' Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'include'     Keyword
' '           Text
'"included.twig"' Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'footer'      Name.Variable
' '           Text
'%}'          Comment.Preproc
'Footer'      Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(included.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'"base.twig"' Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'Included Content' Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(base.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'Default Content' Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'footer'      Name.Variable
' '           Text
'%}'          Comment.Preproc
'Default Footer' Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nIncluded Content\nDefault Footer\nFooter\n--TEST--\n"extends" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n  '        Other
'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'inside'      Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    INSIDE OVERRIDDEN\n  ' Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n  BEFORE\n  ' Other
'{{'          Comment.Preproc
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n  AFTER\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n  BAR\n'   Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n\nINSIDE OVERRIDDEN\n  \n  BEFORE\n    BAR\n\n  AFTER\n--TEST--\n"extends" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'FOO'         Other
'{{'          Comment.Preproc
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'BAR'         Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nBARFOOBAR\n--TEST--\n"parent" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'use'         Keyword
' '           Text
"'foo.twig'"  Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'BAR'         Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nBAR\n--TEST--\n"parent" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--EXCEPTION--\nTwig_Error_Syntax: Calling "parent" on a template that does not extend nor "use" another template is forbidden in "index.twig" at line 3\n--TEST--\n"extends" tag accepts Twig_Template instance\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'foo'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'FOO\n'       Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'BAR'         Other
'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'foo\' => $twig->loadTemplate(\'foo.twig\'))\n--EXPECT--\nBARFOO\n--TEST--\n"parent" function\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'extends'     Keyword
' '           Text
'"parent.twig"' Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'use'         Keyword
' '           Text
'"use1.twig"' Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'use'         Keyword
' '           Text
'"use2.twig"' Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content_parent' Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content_use1' Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content_use2' Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
' '           Text
'block'       Name.Builtin
'('           Operator
"'content_use1_only'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
' '           Text
'block'       Name.Builtin
'('           Operator
"'content_use2_only'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(parent.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content_parent' Name.Variable
' '           Text
"'content_parent'" Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content_use1' Name.Variable
' '           Text
"'content_parent'" Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content_use2' Name.Variable
' '           Text
"'content_parent'" Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
"''"          Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(use1.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content_use1' Name.Variable
' '           Text
"'content_use1'" Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content_use2' Name.Variable
' '           Text
"'content_use1'" Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content_use1_only' Name.Variable
' '           Text
"'content_use1_only'" Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(use2.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content_use2' Name.Variable
' '           Text
"'content_use2'" Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content_use2_only' Name.Variable
' '           Text
"'content_use2_only'" Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n    content_parent\n    content_use1\n    content_use2\n    content_use1_only\n    content_use2_only\n--TEST--\n"macro" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'import'      Keyword
' '           Text
'_self'       Name.Variable
' '           Text
'as'          Name.Variable
' '           Text
'macros'      Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'macros'      Name.Variable
'.input'      Name.Variable
'('           Operator
"'username'"  Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'macros'      Name.Variable
'.input'      Name.Variable
'('           Operator
"'password'"  Literal.String.Single
','           Operator
' '           Text
'null'        Keyword.Pseudo
','           Operator
' '           Text
"'password'"  Literal.String.Single
','           Operator
' '           Text
'1'           Literal.Number
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'macro'       Keyword
' '           Text
'input'       Name.Variable
'('           Operator
'name'        Name.Variable
','           Operator
' '           Text
'value'       Name.Variable
','           Operator
' '           Text
'type'        Name.Variable
','           Operator
' '           Text
'size'        Name.Variable
')'           Operator
' '           Text
'%}'          Comment.Preproc
'\n  <input type="' Other
'{{'          Comment.Preproc
' '           Text
'type'        Name.Variable
'|'           Operator
'default'     Name.Function
'('           Operator
'"text"'      Literal.String.Double
')'           Operator
' '           Text
'}}'          Comment.Preproc
'" name="'    Other
'{{'          Comment.Preproc
' '           Text
'name'        Name.Variable
' '           Text
'}}'          Comment.Preproc
'" value="'   Other
'{{'          Comment.Preproc
' '           Text
'value'       Name.Variable
'|'           Operator
'e'           Name.Function
'|'           Operator
'default'     Name.Function
'('           Operator
"''"          Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'" size="'    Other
'{{'          Comment.Preproc
' '           Text
'size'        Name.Variable
'|'           Operator
'default'     Name.Function
'('           Operator
'2'           Literal.Number
'0'           Literal.Number
')'           Operator
' '           Text
'}}'          Comment.Preproc
'">\n'        Other

'{%'          Comment.Preproc
' '           Text
'endmacro'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n  <input type="text" name="username" value="" size="20">\n\n  <input type="password" name="password" value="" size="1">\n--TEST--\n"macro" tag supports name for endmacro\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'import'      Keyword
' '           Text
'_self'       Name.Variable
' '           Text
'as'          Name.Variable
' '           Text
'macros'      Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'macros'      Name.Variable
'.foo'        Name.Variable
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'macros'      Name.Variable
'.bar'        Name.Variable
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'macro'       Keyword
' '           Text
'foo'         Name.Variable
'('           Operator
')'           Operator
' '           Text
'%}'          Comment.Preproc
'foo'         Other
'{%'          Comment.Preproc
' '           Text
'endmacro'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'macro'       Keyword
' '           Text
'bar'         Name.Variable
'('           Operator
')'           Operator
' '           Text
'%}'          Comment.Preproc
'bar'         Other
'{%'          Comment.Preproc
' '           Text
'endmacro'    Keyword
' '           Text
'bar'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nfoo\nbar\n\n--TEST--\n"macro" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'import'      Keyword
' '           Text
"'forms.twig'" Literal.String.Single
' '           Text
'as'          Name.Variable
' '           Text
'forms'       Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'forms'       Name.Variable
'.input'      Name.Variable
'('           Operator
"'username'"  Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'forms'       Name.Variable
'.input'      Name.Variable
'('           Operator
"'password'"  Literal.String.Single
','           Operator
' '           Text
'null'        Keyword.Pseudo
','           Operator
' '           Text
"'password'"  Literal.String.Single
','           Operator
' '           Text
'1'           Literal.Number
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--TEMPLATE(forms.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'macro'       Keyword
' '           Text
'input'       Name.Variable
'('           Operator
'name'        Name.Variable
','           Operator
' '           Text
'value'       Name.Variable
','           Operator
' '           Text
'type'        Name.Variable
','           Operator
' '           Text
'size'        Name.Variable
')'           Operator
' '           Text
'%}'          Comment.Preproc
'\n  <input type="' Other
'{{'          Comment.Preproc
' '           Text
'type'        Name.Variable
'|'           Operator
'default'     Name.Function
'('           Operator
'"text"'      Literal.String.Double
')'           Operator
' '           Text
'}}'          Comment.Preproc
'" name="'    Other
'{{'          Comment.Preproc
' '           Text
'name'        Name.Variable
' '           Text
'}}'          Comment.Preproc
'" value="'   Other
'{{'          Comment.Preproc
' '           Text
'value'       Name.Variable
'|'           Operator
'e'           Name.Function
'|'           Operator
'default'     Name.Function
'('           Operator
"''"          Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'" size="'    Other
'{{'          Comment.Preproc
' '           Text
'size'        Name.Variable
'|'           Operator
'default'     Name.Function
'('           Operator
'2'           Literal.Number
'0'           Literal.Number
')'           Operator
' '           Text
'}}'          Comment.Preproc
'">\n'        Other

'{%'          Comment.Preproc
' '           Text
'endmacro'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n  <input type="text" name="username" value="" size="20">\n\n  <input type="password" name="password" value="" size="1">\n--TEST--\n"macro" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'from'        Keyword
' '           Text
"'forms.twig'" Literal.String.Single
' '           Text
'import'      Name.Variable
' '           Text
'foo'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'from'        Keyword
' '           Text
"'forms.twig'" Literal.String.Single
' '           Text
'import'      Name.Variable
' '           Text
'foo'         Name.Variable
' '           Text
'as'          Name.Variable
' '           Text
'foobar'      Name.Variable
','           Operator
' '           Text
'bar'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
'('           Operator
"'foo'"       Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'foobar'      Name.Variable
'('           Operator
"'foo'"       Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'bar'         Name.Variable
'('           Operator
"'foo'"       Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--TEMPLATE(forms.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'macro'       Keyword
' '           Text
'foo'         Name.Variable
'('           Operator
'name'        Name.Variable
')'           Operator
' '           Text
'%}'          Comment.Preproc
'foo'         Other
'{{'          Comment.Preproc
' '           Text
'name'        Name.Variable
' '           Text
'}}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'endmacro'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'macro'       Keyword
' '           Text
'bar'         Name.Variable
'('           Operator
'name'        Name.Variable
')'           Operator
' '           Text
'%}'          Comment.Preproc
'bar'         Other
'{{'          Comment.Preproc
' '           Text
'name'        Name.Variable
' '           Text
'}}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'endmacro'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nfoofoo\nfoofoo\nbarfoo\n--TEST--\n"macro" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'from'        Keyword
' '           Text
"'forms.twig'" Literal.String.Single
' '           Text
'import'      Name.Variable
' '           Text
'foo'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
'('           Operator
"'foo'"       Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
'('           Operator
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--TEMPLATE(forms.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'macro'       Keyword
' '           Text
'foo'         Name.Variable
'('           Operator
'name'        Name.Variable
')'           Operator
' '           Text
'%}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'name'        Name.Variable
'|'           Operator
'default'     Name.Function
'('           Operator
"'foo'"       Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'global'      Name.Variable
' '           Text
'}}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'endmacro'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nfooglobal\nfooglobal\n--TEST--\n"macro" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'import'      Keyword
' '           Text
'_self'       Name.Variable
' '           Text
'as'          Name.Variable
' '           Text
'forms'       Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'forms'       Name.Variable
'.input'      Name.Variable
'('           Operator
"'username'"  Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'forms'       Name.Variable
'.input'      Name.Variable
'('           Operator
"'password'"  Literal.String.Single
','           Operator
' '           Text
'null'        Keyword.Pseudo
','           Operator
' '           Text
"'password'"  Literal.String.Single
','           Operator
' '           Text
'1'           Literal.Number
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'macro'       Keyword
' '           Text
'input'       Name.Variable
'('           Operator
'name'        Name.Variable
','           Operator
' '           Text
'value'       Name.Variable
','           Operator
' '           Text
'type'        Name.Variable
','           Operator
' '           Text
'size'        Name.Variable
')'           Operator
' '           Text
'%}'          Comment.Preproc
'\n  <input type="' Other
'{{'          Comment.Preproc
' '           Text
'type'        Name.Variable
'|'           Operator
'default'     Name.Function
'('           Operator
'"text"'      Literal.String.Double
')'           Operator
' '           Text
'}}'          Comment.Preproc
'" name="'    Other
'{{'          Comment.Preproc
' '           Text
'name'        Name.Variable
' '           Text
'}}'          Comment.Preproc
'" value="'   Other
'{{'          Comment.Preproc
' '           Text
'value'       Name.Variable
'|'           Operator
'e'           Name.Function
'|'           Operator
'default'     Name.Function
'('           Operator
"''"          Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'" size="'    Other
'{{'          Comment.Preproc
' '           Text
'size'        Name.Variable
'|'           Operator
'default'     Name.Function
'('           Operator
'2'           Literal.Number
'0'           Literal.Number
')'           Operator
' '           Text
'}}'          Comment.Preproc
'">\n'        Other

'{%'          Comment.Preproc
' '           Text
'endmacro'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n  <input type="text" name="username" value="" size="20">\n\n  <input type="password" name="password" value="" size="1">\n--TEST--\n"raw" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'raw'         Keyword
' '           Text
'%}'          Comment.Preproc
'\n{{ foo }}\n' Other

'{%'          Comment.Preproc
' '           Text
'endraw'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n' Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n--TEST--\n"raw" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'raw'         Keyword
' '           Text
'%}'          Comment.Preproc
'\n{{ foo }}\n{% endverbatim %}\n--DATA--\nreturn array()\n--EXCEPTION--\nTwig_Error_Syntax: Unexpected end of file: Unclosed "raw" block in "index.twig" at line 2\n--TEST--\n"raw" tag\n--TEMPLATE--\n1***\n\n{%- raw %}\n    {{ \'bla\' }}\n' Other

'{%'          Comment.Preproc
' '           Text
'endraw'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n1***\n2***\n\n' Other

'{%'          Comment.Preproc
'- '          Text
'raw'         Keyword
' -'          Text
'%}'          Comment.Preproc
"\n    {{ 'bla' }}\n" Other

'{%'          Comment.Preproc
' '           Text
'endraw'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n2***\n3***\n\n' Other

'{%'          Comment.Preproc
'- '          Text
'raw'         Keyword
' -'          Text
'%}'          Comment.Preproc
"\n    {{ 'bla' }}\n" Other

'{%'          Comment.Preproc
' '           Text
'endraw'      Keyword
' -'          Text
'%}'          Comment.Preproc
'\n\n3***\n4***\n\n' Other

'{%'          Comment.Preproc
'- '          Text
'raw'         Keyword
' -'          Text
'%}'          Comment.Preproc
"\n    {{ 'bla' }}\n" Other

'{%'          Comment.Preproc
'- '          Text
'endraw'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n4***\n5***\n\n' Other

'{%'          Comment.Preproc
'- '          Text
'raw'         Keyword
' -'          Text
'%}'          Comment.Preproc
"\n    {{ 'bla' }}\n" Other

'{%'          Comment.Preproc
'- '          Text
'endraw'      Keyword
' -'          Text
'%}'          Comment.Preproc
'\n\n5***\n--DATA--\nreturn array()\n--EXPECT--\n1***\n    ' Other
'{{'          Comment.Preproc
' '           Text
"'bla'"       Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n\n\n1***\n2***' Other
'{{'          Comment.Preproc
' '           Text
"'bla'"       Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n\n\n2***\n3***' Other
'{{'          Comment.Preproc
' '           Text
"'bla'"       Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n3***\n4***' Other
'{{'          Comment.Preproc
' '           Text
"'bla'"       Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n\n4***\n5***' Other
'{{'          Comment.Preproc
' '           Text
"'bla'"       Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'5***\n--TEST--\nsandbox tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
'- '          Text
'sandbox'     Keyword
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{%'          Comment.Preproc
'- '          Text
'include'     Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n    a\n'   Other

'{%'          Comment.Preproc
'- '          Text
'endsandbox'  Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\nfoo\n--EXCEPTION--\nTwig_Error_Syntax: Only "include" tags are allowed within a "sandbox" section in "index.twig" at line 4\n--TEST--\nsandbox tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
'- '          Text
'sandbox'     Keyword
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{%'          Comment.Preproc
'- '          Text
'include'     Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n\n    '    Other
'{%'          Comment.Preproc
' '           Text
'if'          Keyword
' '           Text
'1'           Literal.Number
' '           Text
'%}'          Comment.Preproc
'\n        '  Other
'{%'          Comment.Preproc
'- '          Text
'include'     Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{%'          Comment.Preproc
' '           Text
'endif'       Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
'- '          Text
'endsandbox'  Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\nfoo\n--EXCEPTION--\nTwig_Error_Syntax: Only "include" tags are allowed within a "sandbox" section in "index.twig" at line 5\n--TEST--\nsandbox tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
'- '          Text
'sandbox'     Keyword
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{%'          Comment.Preproc
'- '          Text
'include'     Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
'- '          Text
'endsandbox'  Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
'- '          Text
'sandbox'     Keyword
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{%'          Comment.Preproc
'- '          Text
'include'     Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{%'          Comment.Preproc
'- '          Text
'include'     Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
'- '          Text
'endsandbox'  Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
'- '          Text
'sandbox'     Keyword
' '           Text
'%}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'include'     Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'endsandbox'  Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\nfoo\n--DATA--\nreturn array()\n--EXPECT--\nfoo\nfoo\nfoo\nfoo\n--TEST--\n"set" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'set'         Keyword
' '           Text
'foo'         Name.Variable
' '           Text
'='           Operator
' '           Text
"'foo'"       Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'set'         Keyword
' '           Text
'bar'         Name.Variable
' '           Text
'='           Operator
' '           Text
"'foo<br />'" Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'bar'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'set'         Keyword
' '           Text
'foo'         Name.Variable
','           Operator
' '           Text
'bar'         Name.Variable
' '           Text
'='           Operator
' '           Text
"'foo'"       Literal.String.Single
','           Operator
' '           Text
"'bar'"       Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'{{'          Comment.Preproc
' '           Text
'bar'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nfoo\nfoo&lt;br /&gt;\n\n\nfoobar\n--TEST--\n"set" tag block empty capture\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'set'         Keyword
' '           Text
'foo'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'{%'          Comment.Preproc
' '           Text
'endset'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'if'          Keyword
' '           Text
'foo'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'FAIL'        Other
'{%'          Comment.Preproc
' '           Text
'endif'       Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n--TEST--\n"set" tag block capture\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'set'         Keyword
' '           Text
'foo'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'f<br />o<br />o' Other
'{%'          Comment.Preproc
' '           Text
'endset'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nf<br />o<br />o\n--TEST--\n"set" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'set'         Keyword
' '           Text
'foo'         Name.Variable
','           Operator
' '           Text
'bar'         Name.Variable
' '           Text
'='           Operator
' '           Text
"'foo'"       Literal.String.Single
' '           Text
'~'           Operator
' '           Text
"'bar'"       Literal.String.Single
','           Operator
' '           Text
"'bar'"       Literal.String.Single
' '           Text
'~'           Operator
' '           Text
"'foo'"       Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'bar'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nfoobar\nbarfoo\n--TEST--\n"spaceless" tag removes whites between HTML tags\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'spaceless'   Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n    <div>   <div>   foo   </div>   </div>\n\n' Other

'{%'          Comment.Preproc
' '           Text
'endspaceless' Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n<div><div>   foo   </div></div>\n--TEST--\n"§" custom tag\n--TEMPLATE--\n' Other

'{'           Other
'% § %}\n--DATA--\nreturn array()\n--EXPECT--\n§\n--TEST--\nWhitespace trimming on tags.\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'5'           Literal.Number
' '           Text
'*'           Operator
' '           Text
"'{#-'"       Literal.String.Single
'|'           Operator
'length'      Name.Function
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'{{-'"       Literal.String.Single
'|'           Operator
'length'      Name.Function
' '           Text
'*'           Operator
' '           Text
'5'           Literal.Number
' '           Text
'+'           Operator
' '           Text
"'{%-'"       Literal.String.Single
'|'           Operator
'length'      Name.Function
' '           Text
'}}'          Comment.Preproc
'\n\nTrim on control tag:\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'i'           Name.Variable
' '           Text
'in'          Keyword
' '           Text
'range'       Name.Variable
'('           Operator
'1'           Literal.Number
','           Operator
' '           Text
'9'           Literal.Number
')'           Operator
' '           Text
'-'           Text
'%}'          Comment.Preproc
'\n\t'        Other
'{{'          Comment.Preproc
' '           Text
'i'           Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
'- '          Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n\nTrim on output tag:\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'i'           Name.Variable
' '           Text
'in'          Keyword
' '           Text
'range'       Name.Variable
'('           Operator
'1'           Literal.Number
','           Operator
' '           Text
'9'           Literal.Number
')'           Operator
' '           Text
'%}'          Comment.Preproc
'\n\t'        Other
'{{'          Comment.Preproc
'-'           Operator
' '           Text
'i'           Name.Variable
' '           Text
'-'           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n\nTrim comments:\n      \n' Other

'{#- Invisible -#}' Comment
'\n       \nAfter the comment.\n\nTrim leading space:\n' Other

'{%'          Comment.Preproc
' '           Text
'if'          Keyword
' '           Text
'leading'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n\n\t\t'    Other
'{{'          Comment.Preproc
'-'           Operator
' '           Text
'leading'     Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endif'       Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
'- '          Text
'if'          Keyword
' '           Text
'leading'     Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n\t'        Other
'{{'          Comment.Preproc
'-'           Operator
' '           Text
'leading'     Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
'- '          Text
'endif'       Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n\nTrim trailing space:\n' Other

'{%'          Comment.Preproc
' '           Text
'if'          Keyword
' '           Text
'trailing'    Name.Variable
' '           Text
'-'           Text
'%}'          Comment.Preproc
'          \n\t' Other
'{{'          Comment.Preproc
' '           Text
'trailing'    Name.Variable
' '           Text
'-'           Text
'}}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'endif'       Keyword
' '           Text
'-'           Text
'%}'          Comment.Preproc
'\n\nCombined:\n\n' Other

'{%'          Comment.Preproc
'- '          Text
'if'          Keyword
' '           Text
'both'        Name.Variable
' '           Text
'-'           Text
'%}'          Comment.Preproc
'\n<ul>\n\t<li>    ' Other
'{{'          Comment.Preproc
'-'           Operator
' '           Text
'both'        Name.Variable
' '           Text
'-'           Text
'}}'          Comment.Preproc
'   </li>\n</ul>\n\n' Other

'{%'          Comment.Preproc
'- '          Text
'endif'       Keyword
' '           Text
'-'           Text
'%}'          Comment.Preproc
'\n\nend\n--DATA--\nreturn array(\'leading\' => \'leading space\', \'trailing\' => \'trailing space\', \'both\' => \'both\')\n--EXPECT--\n15\n18\n\nTrim on control tag:\n123456789\n\nTrim on output tag:\n123456789\n\nTrim comments:After the comment.\n\nTrim leading space:\nleading space\nleading space\n\nTrim trailing space:\ntrailing spaceCombined:<ul>\n\t<li>both</li>\n</ul>end\n--TEST--\n"use" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'use'         Keyword
' '           Text
'"blocks.twig"' Literal.String.Double
' '           Text
'with'        Name.Variable
' '           Text
'content'     Name.Variable
' '           Text
'as'          Name.Variable
' '           Text
'foo'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'block'       Name.Builtin
'('           Operator
"'foo'"       Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--TEMPLATE(blocks.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
"'foo'"       Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nfoo\n--TEST--\n"use" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'use'         Keyword
' '           Text
'"blocks.twig"' Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'block'       Name.Builtin
'('           Operator
"'content'"   Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--TEMPLATE(blocks.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
"'foo'"       Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nfoo\n--TEST--\n"use" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'use'         Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'use'         Keyword
' '           Text
'"bar.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(bar.twig)--\n--DATA--\nreturn array()\n--EXPECT--\n--TEST--\n"use" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'use'         Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'block'       Name.Builtin
'('           Operator
"'content'"   Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'block'       Name.Builtin
'('           Operator
"'foo'"       Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'block'       Name.Builtin
'('           Operator
"'bar'"       Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'use'         Keyword
' '           Text
'"bar.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
"'foo'"       Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'foo'         Name.Variable
' '           Text
"'foo'"       Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(bar.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
"'bar'"       Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'bar'         Name.Variable
' '           Text
"'bar'"       Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nfoo\nfoo\nbar\n--TEST--\n"use" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'use'         Keyword
' '           Text
'"ancestor.twig"' Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'use'         Keyword
' '           Text
'"parent.twig"' Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'block'       Name.Builtin
'('           Operator
"'container'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--TEMPLATE(parent.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'sub_container' Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    <div class="overriden_sub_container">overriden sub_container</div>\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(ancestor.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'container'   Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    <div class="container">' Other
'{{'          Comment.Preproc
' '           Text
'block'       Name.Builtin
'('           Operator
"'sub_container'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'</div>\n'    Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'sub_container' Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    <div class="sub_container">sub_container</div>\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n<div class="container">    <div class="overriden_sub_container">overriden sub_container</div>\n</div>\n--TEST--\n"use" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'use'         Keyword
' '           Text
'"parent.twig"' Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'block'       Name.Builtin
'('           Operator
"'container'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--TEMPLATE(parent.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'use'         Keyword
' '           Text
'"ancestor.twig"' Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'sub_container' Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    <div class="overriden_sub_container">overriden sub_container</div>\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(ancestor.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'container'   Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    <div class="container">' Other
'{{'          Comment.Preproc
' '           Text
'block'       Name.Builtin
'('           Operator
"'sub_container'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'</div>\n'    Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'sub_container' Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    <div class="sub_container">sub_container</div>\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n<div class="container">    <div class="overriden_sub_container">overriden sub_container</div>\n</div>\n--TEST--\n"use" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'use'         Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'with'        Name.Variable
' '           Text
'content'     Name.Variable
' '           Text
'as'          Name.Variable
' '           Text
'foo_content' Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'use'         Keyword
' '           Text
'"bar.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'block'       Name.Builtin
'('           Operator
"'content'"   Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'block'       Name.Builtin
'('           Operator
"'foo'"       Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'block'       Name.Builtin
'('           Operator
"'bar'"       Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'block'       Name.Builtin
'('           Operator
"'foo_content'" Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
"'foo'"       Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'foo'         Name.Variable
' '           Text
"'foo'"       Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(bar.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
"'bar'"       Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'bar'         Name.Variable
' '           Text
"'bar'"       Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nbar\nfoo\nbar\nfoo\n--TEST--\n"use" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'use'         Keyword
' '           Text
'"foo.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'use'         Keyword
' '           Text
'"bar.twig"'  Literal.String.Double
' '           Text
'%}'          Comment.Preproc
'\n\n'        Other

'{{'          Comment.Preproc
' '           Text
'block'       Name.Builtin
'('           Operator
"'content'"   Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'block'       Name.Builtin
'('           Operator
"'foo'"       Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'block'       Name.Builtin
'('           Operator
"'bar'"       Literal.String.Single
')'           Operator
' '           Text
'}}'          Comment.Preproc
'\n--TEMPLATE(foo.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
"'foo'"       Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'foo'         Name.Variable
' '           Text
"'foo'"       Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(bar.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'content'     Name.Variable
' '           Text
"'bar'"       Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'bar'         Name.Variable
' '           Text
"'bar'"       Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nbar\nfoo\nbar\n--TEST--\n"use" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'use'         Keyword
' '           Text
"'file2.html.twig'" Literal.String.Single
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'foobar'      Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
'-'           Operator
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'-'           Text
'}}'          Comment.Preproc
'\n    Content of block (second override)\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'foobar'      Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(file2.html.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'use'         Keyword
' '           Text
"'file1.html.twig'" Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'foobar'      Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
'-'           Operator
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'-'           Text
'}}'          Comment.Preproc
'\n    Content of block (first override)\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'foobar'      Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(file1.html.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'foobar'      Name.Variable
' '           Text
'-'           Text
'%}'          Comment.Preproc
'\n    Content of block\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'foobar'      Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nContent of block\nContent of block (first override)\nContent of block (second override)\n--TEST--\n"use" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'use'         Keyword
' '           Text
"'file2.html.twig'" Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'use'         Keyword
' '           Text
"'file1.html.twig'" Literal.String.Single
' '           Text
'with'        Name.Variable
' '           Text
'foo'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'foo'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
'-'           Operator
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'-'           Text
'}}'          Comment.Preproc
'\n    Content of foo (second override)\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'foo'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'bar'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
'-'           Operator
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'-'           Text
'}}'          Comment.Preproc
'\n    Content of bar (second override)\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'bar'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(file2.html.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'use'         Keyword
' '           Text
"'file1.html.twig'" Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'foo'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
'-'           Operator
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'-'           Text
'}}'          Comment.Preproc
'\n    Content of foo (first override)\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'foo'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'bar'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
'-'           Operator
' '           Text
'parent'      Name.Builtin
'('           Operator
')'           Operator
' '           Text
'-'           Text
'}}'          Comment.Preproc
'\n    Content of bar (first override)\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'bar'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(file1.html.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'foo'         Name.Variable
' '           Text
'-'           Text
'%}'          Comment.Preproc
'\n    Content of foo\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'foo'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'bar'         Name.Variable
' '           Text
'-'           Text
'%}'          Comment.Preproc
'\n    Content of bar\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'bar'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nContent of foo\nContent of foo (first override)\nContent of foo (second override)\nContent of bar\nContent of bar (second override)\n--TEST--\n"use" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'use'         Keyword
' '           Text
"'file2.html.twig'" Literal.String.Single
' '           Text
'with'        Name.Variable
' '           Text
'foobar'      Name.Variable
' '           Text
'as'          Name.Variable
' '           Text
'base_base_foobar' Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'foobar'      Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
'-'           Operator
' '           Text
'block'       Name.Builtin
'('           Operator
"'base_base_foobar'" Literal.String.Single
')'           Operator
' '           Text
'-'           Text
'}}'          Comment.Preproc
'\n    Content of block (second override)\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'foobar'      Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(file2.html.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'use'         Keyword
' '           Text
"'file1.html.twig'" Literal.String.Single
' '           Text
'with'        Name.Variable
' '           Text
'foobar'      Name.Variable
' '           Text
'as'          Name.Variable
' '           Text
'base_foobar' Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'foobar'      Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n    '      Other
'{{'          Comment.Preproc
'-'           Operator
' '           Text
'block'       Name.Builtin
'('           Operator
"'base_foobar'" Literal.String.Single
')'           Operator
' '           Text
'-'           Text
'}}'          Comment.Preproc
'\n    Content of block (first override)\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'foobar'      Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n--TEMPLATE(file1.html.twig)--\n' Other

'{%'          Comment.Preproc
' '           Text
'block'       Keyword
' '           Text
'foobar'      Name.Variable
' '           Text
'-'           Text
'%}'          Comment.Preproc
'\n    Content of block\n' Other

'{%'          Comment.Preproc
' '           Text
'endblock'    Keyword
' '           Text
'foobar'      Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nContent of block\nContent of block (first override)\nContent of block (second override)\n--TEST--\n"verbatim" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'verbatim'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n{{ foo }}\n' Other

'{%'          Comment.Preproc
' '           Text
'endverbatim' Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n' Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n--TEST--\n"verbatim" tag\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'verbatim'    Keyword
' '           Text
'%}'          Comment.Preproc
'\n{{ foo }}\n{% endraw %}\n--DATA--\nreturn array()\n--EXCEPTION--\nTwig_Error_Syntax: Unexpected end of file: Unclosed "verbatim" block in "index.twig" at line 2\n--TEST--\n"verbatim" tag\n--TEMPLATE--\n1***\n\n{%- verbatim %}\n    {{ \'bla\' }}\n' Other

'{%'          Comment.Preproc
' '           Text
'endverbatim' Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n1***\n2***\n\n' Other

'{%'          Comment.Preproc
'- '          Text
'verbatim'    Keyword
' -'          Text
'%}'          Comment.Preproc
"\n    {{ 'bla' }}\n" Other

'{%'          Comment.Preproc
' '           Text
'endverbatim' Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n2***\n3***\n\n' Other

'{%'          Comment.Preproc
'- '          Text
'verbatim'    Keyword
' -'          Text
'%}'          Comment.Preproc
"\n    {{ 'bla' }}\n" Other

'{%'          Comment.Preproc
' '           Text
'endverbatim' Keyword
' -'          Text
'%}'          Comment.Preproc
'\n\n3***\n4***\n\n' Other

'{%'          Comment.Preproc
'- '          Text
'verbatim'    Keyword
' -'          Text
'%}'          Comment.Preproc
"\n    {{ 'bla' }}\n" Other

'{%'          Comment.Preproc
'- '          Text
'endverbatim' Keyword
' '           Text
'%}'          Comment.Preproc
'\n\n4***\n5***\n\n' Other

'{%'          Comment.Preproc
'- '          Text
'verbatim'    Keyword
' -'          Text
'%}'          Comment.Preproc
"\n    {{ 'bla' }}\n" Other

'{%'          Comment.Preproc
'- '          Text
'endverbatim' Keyword
' -'          Text
'%}'          Comment.Preproc
'\n\n5***\n--DATA--\nreturn array()\n--EXPECT--\n1***\n    ' Other
'{{'          Comment.Preproc
' '           Text
"'bla'"       Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n\n\n1***\n2***' Other
'{{'          Comment.Preproc
' '           Text
"'bla'"       Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n\n\n2***\n3***' Other
'{{'          Comment.Preproc
' '           Text
"'bla'"       Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n3***\n4***' Other
'{{'          Comment.Preproc
' '           Text
"'bla'"       Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n\n4***\n5***' Other
'{{'          Comment.Preproc
' '           Text
"'bla'"       Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'5***\n--TEST--\narray index test\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'for'         Keyword
' '           Text
'key'         Name.Variable
','           Operator
' '           Text
'value'       Name.Variable
' '           Text
'in'          Keyword
' '           Text
'days'        Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'key'         Name.Variable
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'endfor'      Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\nreturn array(\'days\' => array(\n    1  => array(\'money\' => 9),\n    2  => array(\'money\' => 21),\n    3  => array(\'money\' => 38),\n    4  => array(\'money\' => 6),\n    18 => array(\'money\' => 6),\n    19 => array(\'money\' => 3),\n    31 => array(\'money\' => 11),\n));\n--EXPECT--\n1\n2\n3\n4\n18\n19\n31\n--TEST--\n"const" test\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'8'           Literal.Number
' '           Text
'is'          Keyword
' '           Text
'constant'    Name.Function
'('           Operator
"'E_NOTICE'"  Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'no'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'bar'"       Literal.String.Single
' '           Text
'is'          Keyword
' '           Text
'constant'    Name.Function
'('           Operator
"'TwigTestFoo::BAR_NAME'" Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'no'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'value'       Name.Variable
' '           Text
'is'          Keyword
' '           Text
'constant'    Name.Function
'('           Operator
"'TwigTestFoo::BAR_NAME'" Literal.String.Single
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'no'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'2'           Literal.Number
' '           Text
'is'          Keyword
' '           Text
'constant'    Name.Function
'('           Operator
"'ARRAY_AS_PROPS'" Literal.String.Single
','           Operator
' '           Text
'object'      Name.Variable
')'           Operator
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'no'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\'value\' => \'bar\', \'object\' => new ArrayObject(array(\'hi\')));\n--EXPECT--\nok\nok\nok\nok--TEST--\n"defined" test\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'definedVar'  Name.Variable
'                     ' Text
'is'          Keyword
'     '       Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'definedVar'  Name.Variable
'                     ' Text
'is'          Keyword
' '           Text
'not'         Keyword
' '           Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'undefinedVar' Name.Variable
'                   ' Text
'is'          Keyword
'     '       Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'undefinedVar' Name.Variable
'                   ' Text
'is'          Keyword
' '           Text
'not'         Keyword
' '           Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'zeroVar'     Name.Variable
'                        ' Text
'is'          Keyword
'     '       Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'nullVar'     Name.Variable
'                        ' Text
'is'          Keyword
'     '       Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'nested'      Name.Variable
'.definedVar' Name.Variable
'              ' Text
'is'          Keyword
'     '       Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'nested'      Name.Variable
'['           Operator
"'definedVar'" Literal.String.Single
']'           Operator
'           ' Text
'is'          Keyword
'     '       Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'nested'      Name.Variable
'.definedVar' Name.Variable
'              ' Text
'is'          Keyword
' '           Text
'not'         Keyword
' '           Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'nested'      Name.Variable
'.undefinedVar' Name.Variable
'            ' Text
'is'          Keyword
'     '       Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'nested'      Name.Variable
'['           Operator
"'undefinedVar'" Literal.String.Single
']'           Operator
'         '   Text
'is'          Keyword
'     '       Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'nested'      Name.Variable
'.undefinedVar' Name.Variable
'            ' Text
'is'          Keyword
' '           Text
'not'         Keyword
' '           Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'nested'      Name.Variable
'.zeroVar'    Name.Variable
'                 ' Text
'is'          Keyword
'     '       Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'nested'      Name.Variable
'.nullVar'    Name.Variable
'                 ' Text
'is'          Keyword
'     '       Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'nested'      Name.Variable
'.definedArray' Name.Variable
'.0'          Literal.Number
'          '  Text
'is'          Keyword
'     '       Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'nested'      Name.Variable
'['           Operator
"'definedArray'" Literal.String.Single
']'           Operator
'['           Operator
'0'           Literal.Number
']'           Operator
'      '      Text
'is'          Keyword
'     '       Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'object'      Name.Variable
'.foo'        Name.Variable
'                     ' Text
'is'          Keyword
'     '       Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'object'      Name.Variable
'.undefinedMethod' Name.Variable
'         '   Text
'is'          Keyword
'     '       Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'object'      Name.Variable
'.getFoo'     Name.Variable
'('           Operator
')'           Operator
'                ' Text
'is'          Keyword
'     '       Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'object'      Name.Variable
'.getFoo'     Name.Variable
'('           Operator
"'a'"         Literal.String.Single
')'           Operator
'             ' Text
'is'          Keyword
'     '       Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'object'      Name.Variable
'.undefinedMethod' Name.Variable
'('           Operator
')'           Operator
'       '     Text
'is'          Keyword
'     '       Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'object'      Name.Variable
'.undefinedMethod' Name.Variable
'('           Operator
"'a'"         Literal.String.Single
')'           Operator
'    '        Text
'is'          Keyword
'     '       Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'object'      Name.Variable
'.self'       Name.Variable
'.foo'        Name.Variable
'                ' Text
'is'          Keyword
'     '       Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'object'      Name.Variable
'.self'       Name.Variable
'.undefinedMethod' Name.Variable
'    '        Text
'is'          Keyword
'     '       Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'object'      Name.Variable
'.undefinedMethod' Name.Variable
'.self'       Name.Variable
'    '        Text
'is'          Keyword
'     '       Text
'defined'     Name.Function
' '           Text
'?'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\n    \'definedVar\' => \'defined\',\n    \'zeroVar\'    => 0,\n    \'nullVar\'    => null,\n    \'nested\'      => array(\n        \'definedVar\'   => \'defined\',\n        \'zeroVar\'      => 0,\n        \'nullVar\'      => null,\n        \'definedArray\' => array(0),\n    ),\n    \'object\' => new TwigTestFoo(),\n);\n--EXPECT--\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\n--DATA--\nreturn array(\n    \'definedVar\' => \'defined\',\n    \'zeroVar\'    => 0,\n    \'nullVar\'    => null,\n    \'nested\'      => array(\n        \'definedVar\'   => \'defined\',\n        \'zeroVar\'      => 0,\n        \'nullVar\'      => null,\n        \'definedArray\' => array(0),\n    ),\n    \'object\' => new TwigTestFoo(),\n);\n--CONFIG--\nreturn array(\'strict_variables\' => false)\n--EXPECT--\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\nok\n--TEST--\n"empty" test\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
' '           Text
'is'          Keyword
' '           Text
'empty'       Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'bar'         Name.Variable
' '           Text
'is'          Keyword
' '           Text
'empty'       Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'foobar'      Name.Variable
' '           Text
'is'          Keyword
' '           Text
'empty'       Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'array'       Name.Variable
' '           Text
'is'          Keyword
' '           Text
'empty'       Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'zero'        Name.Variable
' '           Text
'is'          Keyword
' '           Text
'empty'       Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'string'      Name.Variable
' '           Text
'is'          Keyword
' '           Text
'empty'       Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'countable_empty' Name.Variable
' '           Text
'is'          Keyword
' '           Text
'empty'       Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'countable_not_empty' Name.Variable
' '           Text
'is'          Keyword
' '           Text
'empty'       Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'markup_empty' Name.Variable
' '           Text
'is'          Keyword
' '           Text
'empty'       Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'markup_not_empty' Name.Variable
' '           Text
'is'          Keyword
' '           Text
'empty'       Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\n\nclass CountableStub implements Countable\n' Other

'{'           Other
'\n    private $items;\n\n    public function __construct(array $items)\n    ' Other
'{'           Other
'\n        $this->items = $items;\n    }\n\n    public function count()\n    ' Other
'{'           Other
'\n        return count($this->items);\n    }\n}\nreturn array(\n    \'foo\' => \'\', \'bar\' => null, \'foobar\' => false, \'array\' => array(), \'zero\' => 0, \'string\' => \'0\',\n    \'countable_empty\' => new CountableStub(array()), \'countable_not_empty\' => new CountableStub(array(1, 2)),\n    \'markup_empty\' => new Twig_Markup(\'\', \'UTF-8\'), \'markup_not_empty\' => new Twig_Markup(\'test\', \'UTF-8\'),\n);\n--EXPECT--\nok\nok\nok\nok\nko\nko\nok\nko\nok\nko\n--TEST--\n"even" test\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'is'          Keyword
' '           Text
'even'        Name.Function
' '           Text
'?'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'2'           Literal.Number
' '           Text
'is'          Keyword
' '           Text
'even'        Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'is'          Keyword
' '           Text
'not'         Keyword
' '           Text
'even'        Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'2'           Literal.Number
' '           Text
'is'          Keyword
' '           Text
'not'         Keyword
' '           Text
'even'        Name.Function
' '           Text
'?'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nok\nok\nok\nok\n--TEST--\nTwig supports the in operator\n--TEMPLATE--\n' Other

'{%'          Comment.Preproc
' '           Text
'if'          Keyword
' '           Text
'bar'         Name.Variable
' '           Text
'in'          Keyword
' '           Text
'foo'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\nTRUE\n'    Other

'{%'          Comment.Preproc
' '           Text
'endif'       Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'if'          Keyword
' '           Text
'not'         Keyword
' '           Text
'('           Operator
'bar'         Name.Variable
' '           Text
'in'          Keyword
' '           Text
'foo'         Name.Variable
')'           Operator
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'else'        Keyword
' '           Text
'%}'          Comment.Preproc
'\nTRUE\n'    Other

'{%'          Comment.Preproc
' '           Text
'endif'       Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'if'          Keyword
' '           Text
'bar'         Name.Variable
' '           Text
'not'         Keyword
' '           Text
'in'          Keyword
' '           Text
'foo'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'else'        Keyword
' '           Text
'%}'          Comment.Preproc
'\nTRUE\n'    Other

'{%'          Comment.Preproc
' '           Text
'endif'       Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'if'          Keyword
' '           Text
"'a'"         Literal.String.Single
' '           Text
'in'          Keyword
' '           Text
'bar'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\nTRUE\n'    Other

'{%'          Comment.Preproc
' '           Text
'endif'       Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'if'          Keyword
' '           Text
"'c'"         Literal.String.Single
' '           Text
'not'         Keyword
' '           Text
'in'          Keyword
' '           Text
'bar'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\nTRUE\n'    Other

'{%'          Comment.Preproc
' '           Text
'endif'       Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'if'          Keyword
' '           Text
"''"          Literal.String.Single
' '           Text
'not'         Keyword
' '           Text
'in'          Keyword
' '           Text
'bar'         Name.Variable
' '           Text
'%}'          Comment.Preproc
'\nTRUE\n'    Other

'{%'          Comment.Preproc
' '           Text
'endif'       Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'if'          Keyword
' '           Text
"''"          Literal.String.Single
' '           Text
'in'          Keyword
' '           Text
"''"          Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\nTRUE\n'    Other

'{%'          Comment.Preproc
' '           Text
'endif'       Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'if'          Keyword
' '           Text
"'0'"         Literal.String.Single
' '           Text
'not'         Keyword
' '           Text
'in'          Keyword
' '           Text
"''"          Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\nTRUE\n'    Other

'{%'          Comment.Preproc
' '           Text
'endif'       Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'if'          Keyword
' '           Text
"'a'"         Literal.String.Single
' '           Text
'not'         Keyword
' '           Text
'in'          Keyword
' '           Text
"'0'"         Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\nTRUE\n'    Other

'{%'          Comment.Preproc
' '           Text
'endif'       Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{%'          Comment.Preproc
' '           Text
'if'          Keyword
' '           Text
"'0'"         Literal.String.Single
' '           Text
'in'          Keyword
' '           Text
"'0'"         Literal.String.Single
' '           Text
'%}'          Comment.Preproc
'\nTRUE\n'    Other

'{%'          Comment.Preproc
' '           Text
'endif'       Keyword
' '           Text
'%}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'false'       Keyword.Pseudo
' '           Text
'in'          Keyword
' '           Text
'['           Operator
'0'           Literal.Number
','           Operator
' '           Text
'1'           Literal.Number
']'           Operator
' '           Text
'?'           Operator
' '           Text
"'TRUE'"      Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'FALSE'"     Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'true'        Keyword.Pseudo
' '           Text
'in'          Keyword
' '           Text
'['           Operator
'0'           Literal.Number
','           Operator
' '           Text
'1'           Literal.Number
']'           Operator
' '           Text
'?'           Operator
' '           Text
"'TRUE'"      Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'FALSE'"     Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"'0'"         Literal.String.Single
' '           Text
'in'          Keyword
' '           Text
'['           Operator
'0'           Literal.Number
','           Operator
' '           Text
'1'           Literal.Number
']'           Operator
' '           Text
'?'           Operator
' '           Text
"'TRUE'"      Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'FALSE'"     Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"''"          Literal.String.Single
' '           Text
'in'          Keyword
' '           Text
'['           Operator
'0'           Literal.Number
','           Operator
' '           Text
'1'           Literal.Number
']'           Operator
' '           Text
'?'           Operator
' '           Text
"'TRUE'"      Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'FALSE'"     Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'0'           Literal.Number
' '           Text
'in'          Keyword
' '           Text
'['           Operator
"''"          Literal.String.Single
','           Operator
' '           Text
'1'           Literal.Number
']'           Operator
' '           Text
'?'           Operator
' '           Text
"'TRUE'"      Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'FALSE'"     Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
"''"          Literal.String.Single
' '           Text
'in'          Keyword
' '           Text
"'foo'"       Literal.String.Single
' '           Text
'?'           Operator
' '           Text
"'TRUE'"      Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'FALSE'"     Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'0'           Literal.Number
' '           Text
'in'          Keyword
' '           Text
"'foo'"       Literal.String.Single
' '           Text
'?'           Operator
' '           Text
"'TRUE'"      Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'FALSE'"     Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'false'       Keyword.Pseudo
' '           Text
'in'          Keyword
' '           Text
"'foo'"       Literal.String.Single
' '           Text
'?'           Operator
' '           Text
"'TRUE'"      Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'FALSE'"     Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'true'        Keyword.Pseudo
' '           Text
'in'          Keyword
' '           Text
"'100'"       Literal.String.Single
' '           Text
'?'           Operator
' '           Text
"'TRUE'"      Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'FALSE'"     Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'['           Operator
']'           Operator
' '           Text
'in'          Keyword
' '           Text
"'Array'"     Literal.String.Single
' '           Text
'?'           Operator
' '           Text
"'TRUE'"      Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'FALSE'"     Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'['           Operator
']'           Operator
' '           Text
'in'          Keyword
' '           Text
'['           Operator
'true'        Keyword.Pseudo
','           Operator
' '           Text
'false'       Keyword.Pseudo
']'           Operator
' '           Text
'?'           Operator
' '           Text
"'TRUE'"      Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'FALSE'"     Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'['           Operator
']'           Operator
' '           Text
'in'          Keyword
' '           Text
'['           Operator
'true'        Keyword.Pseudo
','           Operator
' '           Text
"''"          Literal.String.Single
']'           Operator
' '           Text
'?'           Operator
' '           Text
"'TRUE'"      Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'FALSE'"     Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'['           Operator
']'           Operator
' '           Text
'in'          Keyword
' '           Text
'['           Operator
'true'        Keyword.Pseudo
','           Operator
' '           Text
'['           Operator
']'           Operator
']'           Operator
' '           Text
'?'           Operator
' '           Text
"'TRUE'"      Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'FALSE'"     Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'dir_object'  Name.Variable
' '           Text
'in'          Keyword
' '           Text
"'foo'"       Literal.String.Single
'~'           Operator
'dir_name'    Name.Variable
' '           Text
'?'           Operator
' '           Text
"'TRUE'"      Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'FALSE'"     Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'5'           Literal.Number
' '           Text
'in'          Keyword
' '           Text
'1'           Literal.Number
'2'           Literal.Number
'5'           Literal.Number
' '           Text
'?'           Operator
' '           Text
"'TRUE'"      Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'FALSE'"     Literal.String.Single
' '           Text
'}}'          Comment.Preproc
"\n--DATA--\nreturn array('bar' => 'bar', 'foo' => array('bar' => 'bar'), 'dir_name' => dirname(__FILE__), 'dir_object' => new SplFileInfo(dirname(__FILE__)))\n--EXPECT--\nTRUE\nTRUE\nTRUE\nTRUE\nTRUE\nTRUE\nTRUE\nTRUE\nTRUE\nFALSE\nFALSE\nFALSE\nFALSE\nFALSE\nTRUE\nFALSE\nFALSE\nFALSE\nFALSE\nFALSE\nFALSE\nTRUE\nFALSE\nFALSE\n--TEST--\nTwig supports the in operator when using objects\n--TEMPLATE--\n" Other

'{%'          Comment.Preproc
' '           Text
'if'          Keyword
' '           Text
'object'      Name.Variable
' '           Text
'in'          Keyword
' '           Text
'object_list' Name.Variable
' '           Text
'%}'          Comment.Preproc
'\nTRUE\n'    Other

'{%'          Comment.Preproc
' '           Text
'endif'       Keyword
' '           Text
'%}'          Comment.Preproc
'\n--DATA--\n$foo = new TwigTestFoo();\n$foo1 = new TwigTestFoo();\n\n$foo->position = $foo1;\n$foo1->position = $foo;\n\nreturn array(\n    \'object\'      => $foo,\n    \'object_list\' => array($foo1, $foo),\n);\n--EXPECT--\nTRUE\n--TEST--\n"iterable" test\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'foo'         Name.Variable
' '           Text
'is'          Keyword
' '           Text
'iterable'    Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'traversable' Name.Variable
' '           Text
'is'          Keyword
' '           Text
'iterable'    Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'obj'         Name.Variable
' '           Text
'is'          Keyword
' '           Text
'iterable'    Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'val'         Name.Variable
' '           Text
'is'          Keyword
' '           Text
'iterable'    Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array(\n    \'foo\' => array(),\n    \'traversable\' => new ArrayIterator(array()),\n    \'obj\' => new stdClass(),\n    \'val\' => \'test\',\n);\n--EXPECT--\nok\nok\nko\nko--TEST--\n"odd" test\n--TEMPLATE--\n' Other

'{{'          Comment.Preproc
' '           Text
'1'           Literal.Number
' '           Text
'is'          Keyword
' '           Text
'odd'         Name.Function
' '           Text
'?'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n'          Other

'{{'          Comment.Preproc
' '           Text
'2'           Literal.Number
' '           Text
'is'          Keyword
' '           Text
'odd'         Name.Function
' '           Text
'?'           Operator
' '           Text
"'ko'"        Literal.String.Single
' '           Text
':'           Operator
' '           Text
"'ok'"        Literal.String.Single
' '           Text
'}}'          Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nok\nok\n' Other
