--TEST--
"source" function
--TEMPLATE--
FOO
{{ source("foo.twig") }}
BAR
--TEMPLATE(foo.twig)--
{{ foo }}
--DATA--
return array()
--EXPECT--
FOO
{{ foo }}
BAR
--TEST--
"template_from_string" function
--TEMPLATE--
{% include template_from_string(template) %}
{% include template_from_string("Hello {{ name }}") %}
{% include template_from_string('{% extends "parent.twig" %}{% block content %}Hello {{ name }}{% endblock %}') %}
--TEMPLATE(parent.twig)--
{% block content %}{% endblock %}
--DATA--
return array('name' => 'Fabien', 'template' => "Hello {{ name }}")
--EXPECT--
Hello Fabien
Hello Fabien
Hello Fabien
--TEST--
macro
--TEMPLATE--
{% from _self import test %}
{% macro test(a, b = 'bar') -%}
{{ a }}{{ b }}
{%- endmacro %}
{{ test('foo') }}
{{ test('bar', 'foo') }}
--DATA--
return array();
--EXPECT--
foobar
barfoo
--TEST--
macro
--TEMPLATE--
{% import _self as macros %}
{% macro foo(data) %}
{{ data }}
{% endmacro %}
{% macro bar() %}
{% endmacro %}
{{ macros.foo(macros.bar()) }}
--DATA--
return array();
--EXPECT--
--TEST--
macro
--TEMPLATE--
{% from _self import test %}
{% macro test(this) -%}
{{ this }}
{%- endmacro %}
{{ test(this) }}
--DATA--
return array('this' => 'foo');
--EXPECT--
foo
--TEST--
macro
--TEMPLATE--
{% import _self as test %}
{% from _self import test %}
{% macro test(a, b) -%}
{{ a|default('a') }}
{{- b|default('b') }}
{%- endmacro %}
{{ test.test() }}
{{ test() }}
{{ test.test(1, "c") }}
{{ test(1, "c") }}
--DATA--
return array();
--EXPECT--
a b
a b
1 c
1 c
--TEST--
macro with a filter
--TEMPLATE--
{% import _self as test %}
{% macro test() %}
{% filter escape %}foo {% endfilter %}
{% endmacro %}
{{ test.test() }}
--DATA--
return array();
--EXPECT--
foo<br />
--TEST--
Twig outputs 0 nodes correctly
--TEMPLATE--
{{ foo }}0{{ foo }}
--DATA--
return array('foo' => 'foo')
--EXPECT--
foo0foo
--TEST--
error in twig extension
--TEMPLATE--
{{ object.region is not null ? object.regionChoices[object.region] }}
--EXPECT--
house.region.s
--TEST--
Twig is able to deal with SimpleXMLElement instances as variables
--CONDITION--
version_compare(phpversion(), '5.3.0', '>=')
--TEMPLATE--
Hello '{{ images.image.0.group }}'!
{{ images.image.0.group.attributes.myattr }}
{{ images.children().image.count() }}
{% for image in images %}
- {{ image.group }}
{% endfor %}
--DATA--
return array('images' => new SimpleXMLElement('foobar'))
--EXPECT--
Hello 'foo'!
example
2
- foo
- bar
--TEST--
Twig does not confuse strings with integers in getAttribute()
--TEMPLATE--
{{ hash['2e2'] }}
--DATA--
return array('hash' => array('2e2' => 'works'))
--EXPECT--
works
--TEST--
"autoescape" tag applies escaping on its children
--TEMPLATE--
{% autoescape %}
{{ var }}
{% endautoescape %}
{% autoescape 'html' %}
{{ var }}
{% endautoescape %}
{% autoescape false %}
{{ var }}
{% endautoescape %}
{% autoescape true %}
{{ var }}
{% endautoescape %}
{% autoescape false %}
{{ var }}
{% endautoescape %}
--DATA--
return array('var' => ' ')
--EXPECT--
<br />
<br />
<br />
--TEST--
"autoescape" tag applies escaping on embedded blocks
--TEMPLATE--
{% autoescape 'html' %}
{% block foo %}
{{ var }}
{% endblock %}
{% endautoescape %}
--DATA--
return array('var' => ' ')
--EXPECT--
<br />
--TEST--
"autoescape" tag does not double-escape
--TEMPLATE--
{% autoescape 'html' %}
{{ var|escape }}
{% endautoescape %}
--DATA--
return array('var' => ' ')
--EXPECT--
<br />
--TEST--
"autoescape" tag applies escaping after calling functions
--TEMPLATE--
autoescape false
{% autoescape false %}
safe_br
{{ safe_br() }}
unsafe_br
{{ unsafe_br() }}
{% endautoescape %}
autoescape 'html'
{% autoescape 'html' %}
safe_br
{{ safe_br() }}
unsafe_br
{{ unsafe_br() }}
unsafe_br()|raw
{{ (unsafe_br())|raw }}
safe_br()|escape
{{ (safe_br())|escape }}
safe_br()|raw
{{ (safe_br())|raw }}
unsafe_br()|escape
{{ (unsafe_br())|escape }}
{% endautoescape %}
autoescape js
{% autoescape 'js' %}
safe_br
{{ safe_br() }}
{% endautoescape %}
--DATA--
return array()
--EXPECT--
autoescape false
safe_br
unsafe_br
autoescape 'html'
safe_br
unsafe_br
<br />
unsafe_br()|raw
safe_br()|escape
<br />
safe_br()|raw
unsafe_br()|escape
<br />
autoescape js
safe_br
\x3Cbr\x20\x2F\x3E
--TEST--
"autoescape" tag does not apply escaping on literals
--TEMPLATE--
{% autoescape 'html' %}
1. Simple literal
{{ " " }}
2. Conditional expression with only literals
{{ true ? " " : " " }}
3. Conditional expression with a variable
{{ true ? " " : someVar }}
4. Nested conditionals with only literals
{{ true ? (true ? " " : " ") : "\n" }}
5. Nested conditionals with a variable
{{ true ? (true ? " " : someVar) : "\n" }}
6. Nested conditionals with a variable marked safe
{{ true ? (true ? " " : someVar|raw) : "\n" }}
{% endautoescape %}
--DATA--
return array()
--EXPECT--
1. Simple literal
2. Conditional expression with only literals
3. Conditional expression with a variable
<br />
4. Nested conditionals with only literals
5. Nested conditionals with a variable
<br />
6. Nested conditionals with a variable marked safe
--TEST--
"autoescape" tags can be nested at will
--TEMPLATE--
{{ var }}
{% autoescape 'html' %}
{{ var }}
{% autoescape false %}
{{ var }}
{% autoescape 'html' %}
{{ var }}
{% endautoescape %}
{{ var }}
{% endautoescape %}
{{ var }}
{% endautoescape %}
{{ var }}
--DATA--
return array('var' => ' ')
--EXPECT--
<br />
<br />
<br />
<br />
<br />
--TEST--
"autoescape" tag applies escaping to object method calls
--TEMPLATE--
{% autoescape 'html' %}
{{ user.name }}
{{ user.name|lower }}
{{ user }}
{% endautoescape %}
--EXPECT--
Fabien<br />
fabien<br />
Fabien<br />
--TEST--
"autoescape" tag does not escape when raw is used as a filter
--TEMPLATE--
{% autoescape 'html' %}
{{ var|raw }}
{% endautoescape %}
--DATA--
return array('var' => ' ')
--EXPECT--
--TEST--
"autoescape" tag accepts an escaping strategy
--TEMPLATE--
{% autoescape true js %}{{ var }}{% endautoescape %}
{% autoescape true html %}{{ var }}{% endautoescape %}
{% autoescape 'js' %}{{ var }}{% endautoescape %}
{% autoescape 'html' %}{{ var }}{% endautoescape %}
--DATA--
return array('var' => ' "')
--EXPECT--
\x3Cbr\x20\x2F\x3E\x22
<br />"
\x3Cbr\x20\x2F\x3E\x22
<br />"
--TEST--
escape types
--TEMPLATE--
1. autoescape 'html' |escape('js')
{% autoescape 'html' %}
{% endautoescape %}
2. autoescape 'html' |escape('js')
{% autoescape 'html' %}
{% endautoescape %}
3. autoescape 'js' |escape('js')
{% autoescape 'js' %}
{% endautoescape %}
4. no escape
{% autoescape false %}
{% endautoescape %}
5. |escape('js')|escape('html')
{% autoescape false %}
{% endautoescape %}
6. autoescape 'html' |escape('js')|escape('html')
{% autoescape 'html' %}
{% endautoescape %}
--DATA--
return array('msg' => "<>\n'\"")
--EXPECT--
1. autoescape 'html' |escape('js')
2. autoescape 'html' |escape('js')
3. autoescape 'js' |escape('js')
4. no escape
5. |escape('js')|escape('html')
6. autoescape 'html' |escape('js')|escape('html')
--TEST--
"autoescape" tag do not applies escaping on filter arguments
--TEMPLATE--
{% autoescape 'html' %}
{{ var|nl2br(" ") }}
{{ var|nl2br(" "|escape) }}
{{ var|nl2br(sep) }}
{{ var|nl2br(sep|raw) }}
{{ var|nl2br(sep|escape) }}
{% endautoescape %}
--DATA--
return array('var' => "\nTwig", 'sep' => ' ')
--EXPECT--
<Fabien>
Twig
<Fabien><br />
Twig
<Fabien>
Twig
<Fabien>
Twig
<Fabien><br />
Twig
--TEST--
"autoescape" tag applies escaping after calling filters
--TEMPLATE--
{% autoescape 'html' %}
(escape_and_nl2br is an escaper filter)
1. Don't escape escaper filter output
( var is escaped by |escape_and_nl2br, line-breaks are added,
the output is not escaped )
{{ var|escape_and_nl2br }}
2. Don't escape escaper filter output
( var is escaped by |escape_and_nl2br, line-breaks are added,
the output is not escaped, |raw is redundant )
{{ var|escape_and_nl2br|raw }}
3. Explicit escape
( var is escaped by |escape_and_nl2br, line-breaks are added,
the output is explicitly escaped by |escape )
{{ var|escape_and_nl2br|escape }}
4. Escape non-escaper filter output
( var is upper-cased by |upper,
the output is auto-escaped )
{{ var|upper }}
5. Escape if last filter is not an escaper
( var is escaped by |escape_and_nl2br, line-breaks are added,
the output is upper-cased by |upper,
the output is auto-escaped as |upper is not an escaper )
{{ var|escape_and_nl2br|upper }}
6. Don't escape escaper filter output
( var is upper cased by upper,
the output is escaped by |escape_and_nl2br, line-breaks are added,
the output is not escaped as |escape_and_nl2br is an escaper )
{{ var|upper|escape_and_nl2br }}
7. Escape if last filter is not an escaper
( the output of |format is "" ~ var ~ "",
the output is auto-escaped )
{{ "%s"|format(var) }}
8. Escape if last filter is not an escaper
( the output of |format is "" ~ var ~ "",
|raw is redundant,
the output is auto-escaped )
{{ "%s"|raw|format(var) }}
9. Don't escape escaper filter output
( the output of |format is "" ~ var ~ "",
the output is not escaped due to |raw filter at the end )
{{ "%s"|format(var)|raw }}
10. Don't escape escaper filter output
( the output of |format is "" ~ var ~ "",
the output is not escaped due to |raw filter at the end,
the |raw filter on var is redundant )
{{ "%s"|format(var|raw)|raw }}
{% endautoescape %}
--DATA--
return array('var' => "\nTwig")
--EXPECT--
(escape_and_nl2br is an escaper filter)
1. Don't escape escaper filter output
( var is escaped by |escape_and_nl2br, line-breaks are added,
the output is not escaped )
<Fabien>
Twig
2. Don't escape escaper filter output
( var is escaped by |escape_and_nl2br, line-breaks are added,
the output is not escaped, |raw is redundant )
<Fabien>
Twig
3. Explicit escape
( var is escaped by |escape_and_nl2br, line-breaks are added,
the output is explicitly escaped by |escape )
<Fabien><br />
Twig
4. Escape non-escaper filter output
( var is upper-cased by |upper,
the output is auto-escaped )
<FABIEN>
TWIG
5. Escape if last filter is not an escaper
( var is escaped by |escape_and_nl2br, line-breaks are added,
the output is upper-cased by |upper,
the output is auto-escaped as |upper is not an escaper )
<FABIEN><BR />
TWIG
6. Don't escape escaper filter output
( var is upper cased by upper,
the output is escaped by |escape_and_nl2br, line-breaks are added,
the output is not escaped as |escape_and_nl2br is an escaper )
<FABIEN>
TWIG
7. Escape if last filter is not an escaper
( the output of |format is "" ~ var ~ "",
the output is auto-escaped )
<b><Fabien>
Twig</b>
8. Escape if last filter is not an escaper
( the output of |format is "" ~ var ~ "",
|raw is redundant,
the output is auto-escaped )
<b><Fabien>
Twig</b>
9. Don't escape escaper filter output
( the output of |format is "" ~ var ~ "",
the output is not escaped due to |raw filter at the end )
Twig
10. Don't escape escaper filter output
( the output of |format is "" ~ var ~ "",
the output is not escaped due to |raw filter at the end,
the |raw filter on var is redundant )
Twig
--TEST--
"autoescape" tag applies escaping after calling filters, and before calling pre_escape filters
--TEMPLATE--
{% autoescape 'html' %}
(nl2br is pre_escaped for "html" and declared safe for "html")
1. Pre-escape and don't post-escape
( var|escape|nl2br )
{{ var|nl2br }}
2. Don't double-pre-escape
( var|escape|nl2br )
{{ var|escape|nl2br }}
3. Don't escape safe values
( var|raw|nl2br )
{{ var|raw|nl2br }}
4. Don't escape safe values
( var|escape|nl2br|nl2br )
{{ var|nl2br|nl2br }}
5. Re-escape values that are escaped for an other contexts
( var|escape_something|escape|nl2br )
{{ var|escape_something|nl2br }}
6. Still escape when using filters not declared safe
( var|escape|nl2br|upper|escape )
{{ var|nl2br|upper }}
{% endautoescape %}
--DATA--
return array('var' => "\nTwig")
--EXPECT--
(nl2br is pre_escaped for "html" and declared safe for "html")
1. Pre-escape and don't post-escape
( var|escape|nl2br )
<Fabien>
Twig
2. Don't double-pre-escape
( var|escape|nl2br )
<Fabien>
Twig
3. Don't escape safe values
( var|raw|nl2br )
Twig
4. Don't escape safe values
( var|escape|nl2br|nl2br )
<Fabien>
Twig
5. Re-escape values that are escaped for an other contexts
( var|escape_something|escape|nl2br )
<FABIEN>
TWIG
6. Still escape when using filters not declared safe
( var|escape|nl2br|upper|escape )
<FABIEN><BR />
TWIG
--TEST--
"autoescape" tag handles filters preserving the safety
--TEMPLATE--
{% autoescape 'html' %}
(preserves_safety is preserving safety for "html")
1. Unsafe values are still unsafe
( var|preserves_safety|escape )
{{ var|preserves_safety }}
2. Safe values are still safe
( var|escape|preserves_safety )
{{ var|escape|preserves_safety }}
3. Re-escape values that are escaped for an other contexts
( var|escape_something|preserves_safety|escape )
{{ var|escape_something|preserves_safety }}
4. Still escape when using filters not declared safe
( var|escape|preserves_safety|replace({'FABIEN': 'FABPOT'})|escape )
{{ var|escape|preserves_safety|replace({'FABIEN': 'FABPOT'}) }}
{% endautoescape %}
--DATA--
return array('var' => "\nTwig")
--EXPECT--
(preserves_safety is preserving safety for "html")
1. Unsafe values are still unsafe
( var|preserves_safety|escape )
<FABIEN>
TWIG
2. Safe values are still safe
( var|escape|preserves_safety )
<FABIEN>
TWIG
3. Re-escape values that are escaped for an other contexts
( var|escape_something|preserves_safety|escape )
<FABIEN>
TWIG
4. Still escape when using filters not declared safe
( var|escape|preserves_safety|replace({'FABIEN': 'FABPOT'})|escape )
<FABPOT>
TWIG
--TEST--
"block" tag
--TEMPLATE--
{% block title1 %}FOO{% endblock %}
{% block title2 foo|lower %}
--TEMPLATE(foo.twig)--
{% block content %}{% endblock %}
--DATA--
return array('foo' => 'bar')
--EXPECT--
FOObar
--TEST--
"block" tag
--TEMPLATE--
{% block content %}
{% block content %}
{% endblock %}
{% endblock %}
--DATA--
return array()
--EXCEPTION--
Twig_Error_Syntax: The block 'content' has already been defined line 2 in "index.twig" at line 3
--TEST--
"§" special chars in a block name
--TEMPLATE--
{% block § %}
§
{% endblock § %}
--DATA--
return array()
--EXPECT--
§
--TEST--
"embed" tag
--TEMPLATE--
FOO
{% embed "foo.twig" %}
{% block c1 %}
{{ parent() }}
block1extended
{% endblock %}
{% endembed %}
BAR
--TEMPLATE(foo.twig)--
A
{% block c1 %}
block1
{% endblock %}
B
{% block c2 %}
block2
{% endblock %}
C
--DATA--
return array()
--EXPECT--
FOO
A
block1
block1extended
B
block2
C
BAR
--TEST--
"embed" tag
--TEMPLATE(index.twig)--
FOO
{% embed "foo.twig" %}
{% block c1 %}
{{ nothing }}
{% endblock %}
{% endembed %}
BAR
--TEMPLATE(foo.twig)--
{% block c1 %}{% endblock %}
--DATA--
return array()
--EXCEPTION--
Twig_Error_Runtime: Variable "nothing" does not exist in "index.twig" at line 5
--TEST--
"embed" tag
--TEMPLATE--
FOO
{% embed "foo.twig" %}
{% block c1 %}
{{ parent() }}
block1extended
{% endblock %}
{% endembed %}
{% embed "foo.twig" %}
{% block c1 %}
{{ parent() }}
block1extended
{% endblock %}
{% endembed %}
BAR
--TEMPLATE(foo.twig)--
A
{% block c1 %}
block1
{% endblock %}
B
{% block c2 %}
block2
{% endblock %}
C
--DATA--
return array()
--EXPECT--
FOO
A
block1
block1extended
B
block2
C
A
block1
block1extended
B
block2
C
BAR
--TEST--
"embed" tag
--TEMPLATE--
{% embed "foo.twig" %}
{% block c1 %}
{{ parent() }}
{% embed "foo.twig" %}
{% block c1 %}
{{ parent() }}
block1extended
{% endblock %}
{% endembed %}
{% endblock %}
{% endembed %}
--TEMPLATE(foo.twig)--
A
{% block c1 %}
block1
{% endblock %}
B
{% block c2 %}
block2
{% endblock %}
C
--DATA--
return array()
--EXPECT--
A
block1
A
block1
block1extended
B
block2
C
B
block2
C
--TEST--
"embed" tag
--TEMPLATE--
{% extends "base.twig" %}
{% block c1 %}
{{ parent() }}
blockc1baseextended
{% endblock %}
{% block c2 %}
{{ parent() }}
{% embed "foo.twig" %}
{% block c1 %}
{{ parent() }}
block1extended
{% endblock %}
{% endembed %}
{% endblock %}
--TEMPLATE(base.twig)--
A
{% block c1 %}
blockc1base
{% endblock %}
{% block c2 %}
blockc2base
{% endblock %}
B
--TEMPLATE(foo.twig)--
A
{% block c1 %}
block1
{% endblock %}
B
{% block c2 %}
block2
{% endblock %}
C
--DATA--
return array()
--EXPECT--
A
blockc1base
blockc1baseextended
blockc2base
A
block1
block1extended
B
block2
CB--TEST--
"filter" tag applies a filter on its children
--TEMPLATE--
{% filter upper %}
Some text with a {{ var }}
{% endfilter %}
--DATA--
return array('var' => 'var')
--EXPECT--
SOME TEXT WITH A VAR
--TEST--
"filter" tag applies a filter on its children
--TEMPLATE--
{% filter json_encode|raw %}test{% endfilter %}
--DATA--
return array()
--EXPECT--
"test"
--TEST--
"filter" tags accept multiple chained filters
--TEMPLATE--
{% filter lower|title %}
{{ var }}
{% endfilter %}
--DATA--
return array('var' => 'VAR')
--EXPECT--
Var
--TEST--
"filter" tags can be nested at will
--TEMPLATE--
{% filter lower|title %}
{{ var }}
{% filter upper %}
{{ var }}
{% endfilter %}
{{ var }}
{% endfilter %}
--DATA--
return array('var' => 'var')
--EXPECT--
Var
Var
Var
--TEST--
"filter" tag applies the filter on "for" tags
--TEMPLATE--
{% filter upper %}
{% for item in items %}
{{ item }}
{% endfor %}
{% endfilter %}
--DATA--
return array('items' => array('a', 'b'))
--EXPECT--
A
B
--TEST--
"filter" tag applies the filter on "if" tags
--TEMPLATE--
{% filter upper %}
{% if items %}
{{ items|join(', ') }}
{% endif %}
{% if items.3 is defined %}
FOO
{% else %}
{{ items.1 }}
{% endif %}
{% if items.3 is defined %}
FOO
{% elseif items.1 %}
{{ items.0 }}
{% endif %}
{% endfilter %}
--DATA--
return array('items' => array('a', 'b'))
--EXPECT--
A, B
B
A
--TEST--
"for" tag takes a condition
--TEMPLATE--
{% for i in 1..5 if i is odd -%}
{{ loop.index }}.{{ i }}{{ foo.bar }}
{% endfor %}
--DATA--
return array('foo' => array('bar' => 'X'))
--CONFIG--
return array('strict_variables' => false)
--EXPECT--
1.1X
2.3X
3.5X
--TEST--
"for" tag keeps the context safe
--TEMPLATE--
{% for item in items %}
{% for item in items %}
* {{ item }}
{% endfor %}
* {{ item }}
{% endfor %}
--DATA--
return array('items' => array('a', 'b'))
--EXPECT--
* a
* b
* a
* a
* b
* b
--TEST--
"for" tag can use an "else" clause
--TEMPLATE--
{% for item in items %}
* {{ item }}
{% else %}
no item
{% endfor %}
--DATA--
return array('items' => array('a', 'b'))
--EXPECT--
* a
* b
--DATA--
return array('items' => array())
--EXPECT--
no item
--DATA--
return array()
--CONFIG--
return array('strict_variables' => false)
--EXPECT--
no item
--TEST--
"for" tag does not reset inner variables
--TEMPLATE--
{% for i in 1..2 %}
{% for j in 0..2 %}
{{k}}{% set k = k+1 %} {{ loop.parent.loop.index }}
{% endfor %}
{% endfor %}
--DATA--
return array('k' => 0)
--EXPECT--
0 1
1 1
2 1
3 2
4 2
5 2
--TEST--
"for" tag can iterate over keys and values
--TEMPLATE--
{% for key, item in items %}
* {{ key }}/{{ item }}
{% endfor %}
--DATA--
return array('items' => array('a', 'b'))
--EXPECT--
* 0/a
* 1/b
--TEST--
"for" tag can iterate over keys
--TEMPLATE--
{% for key in items|keys %}
* {{ key }}
{% endfor %}
--DATA--
return array('items' => array('a', 'b'))
--EXPECT--
* 0
* 1
--TEST--
"for" tag adds a loop variable to the context locally
--TEMPLATE--
{% for item in items %}
{% endfor %}
{% if loop is not defined %}WORKS{% endif %}
--DATA--
return array('items' => array())
--EXPECT--
WORKS
--TEST--
"for" tag adds a loop variable to the context
--TEMPLATE--
{% for item in items %}
* {{ loop.index }}/{{ loop.index0 }}
* {{ loop.revindex }}/{{ loop.revindex0 }}
* {{ loop.first }}/{{ loop.last }}/{{ loop.length }}
{% endfor %}
--DATA--
return array('items' => array('a', 'b'))
--EXPECT--
* 1/0
* 2/1
* 1//2
* 2/1
* 1/0
* /1/2
--TEST--
"for" tag
--TEMPLATE--
{% for i, item in items if loop.last > 0 %}
{% endfor %}
--DATA--
return array('items' => array('a', 'b'))
--EXCEPTION--
Twig_Error_Syntax: The "loop" variable cannot be used in a looping condition in "index.twig" at line 2
--TEST--
"for" tag
--TEMPLATE--
{% for i, item in items if i > 0 %}
{{ loop.last }}
{% endfor %}
--DATA--
return array('items' => array('a', 'b'))
--EXCEPTION--
Twig_Error_Syntax: The "loop.last" variable is not defined when looping with a condition in "index.twig" at line 3
--TEST--
"for" tag can use an "else" clause
--TEMPLATE--
{% for item in items %}
{% for item in items1 %}
* {{ item }}
{% else %}
no {{ item }}
{% endfor %}
{% else %}
no item1
{% endfor %}
--DATA--
return array('items' => array('a', 'b'), 'items1' => array())
--EXPECT--
no a
no b
--TEST--
"for" tag iterates over iterable and countable objects
--TEMPLATE--
{% for item in items %}
* {{ item }}
* {{ loop.index }}/{{ loop.index0 }}
* {{ loop.revindex }}/{{ loop.revindex0 }}
* {{ loop.first }}/{{ loop.last }}/{{ loop.length }}
{% endfor %}
{% for key, value in items %}
* {{ key }}/{{ value }}
{% endfor %}
{% for key in items|keys %}
* {{ key }}
{% endfor %}
--DATA--
class ItemsIteratorCountable implements Iterator, Countable
{
protected $values = array('foo' => 'bar', 'bar' => 'foo');
public function current() { return current($this->values); }
public function key() { return key($this->values); }
public function next() { return next($this->values); }
public function rewind() { return reset($this->values); }
public function valid() { return false !== current($this->values); }
public function count() { return count($this->values); }
}
return array('items' => new ItemsIteratorCountable())
--EXPECT--
* bar
* 1/0
* 2/1
* 1//2
* foo
* 2/1
* 1/0
* /1/2
* foo/bar
* bar/foo
* foo
* bar
--TEST--
"for" tag iterates over iterable objects
--TEMPLATE--
{% for item in items %}
* {{ item }}
* {{ loop.index }}/{{ loop.index0 }}
* {{ loop.first }}
{% endfor %}
{% for key, value in items %}
* {{ key }}/{{ value }}
{% endfor %}
{% for key in items|keys %}
* {{ key }}
{% endfor %}
--DATA--
class ItemsIterator implements Iterator
{
protected $values = array('foo' => 'bar', 'bar' => 'foo');
public function current() { return current($this->values); }
public function key() { return key($this->values); }
public function next() { return next($this->values); }
public function rewind() { return reset($this->values); }
public function valid() { return false !== current($this->values); }
}
return array('items' => new ItemsIterator())
--EXPECT--
* bar
* 1/0
* 1
* foo
* 2/1
*
* foo/bar
* bar/foo
* foo
* bar
--TEST--
"for" tags can be nested
--TEMPLATE--
{% for key, item in items %}
* {{ key }} ({{ loop.length }}):
{% for value in item %}
* {{ value }} ({{ loop.length }})
{% endfor %}
{% endfor %}
--DATA--
return array('items' => array('a' => array('a1', 'a2', 'a3'), 'b' => array('b1')))
--EXPECT--
* a (2):
* a1 (3)
* a2 (3)
* a3 (3)
* b (2):
* b1 (1)
--TEST--
"for" tag iterates over item values
--TEMPLATE--
{% for item in items %}
* {{ item }}
{% endfor %}
--DATA--
return array('items' => array('a', 'b'))
--EXPECT--
* a
* b
--TEST--
global variables
--TEMPLATE--
{% include "included.twig" %}
{% from "included.twig" import foobar %}
{{ foobar() }}
--TEMPLATE(included.twig)--
{% macro foobar() %}
called foobar
{% endmacro %}
--DATA--
return array();
--EXPECT--
called foobar
--TEST--
"if" creates a condition
--TEMPLATE--
{% if a is defined %}
{{ a }}
{% elseif b is defined %}
{{ b }}
{% else %}
NOTHING
{% endif %}
--DATA--
return array('a' => 'a')
--EXPECT--
a
--DATA--
return array('b' => 'b')
--EXPECT--
b
--DATA--
return array()
--EXPECT--
NOTHING
--TEST--
"if" takes an expression as a test
--TEMPLATE--
{% if a < 2 %}
A1
{% elseif a > 10 %}
A2
{% else %}
A3
{% endif %}
--DATA--
return array('a' => 1)
--EXPECT--
A1
--DATA--
return array('a' => 12)
--EXPECT--
A2
--DATA--
return array('a' => 7)
--EXPECT--
A3
--TEST--
"include" tag
--TEMPLATE--
FOO
{% include "foo.twig" %}
BAR
--TEMPLATE(foo.twig)--
FOOBAR
--DATA--
return array()
--EXPECT--
FOO
FOOBAR
BAR
--TEST--
"include" tag allows expressions for the template to include
--TEMPLATE--
FOO
{% include foo %}
BAR
--TEMPLATE(foo.twig)--
FOOBAR
--DATA--
return array('foo' => 'foo.twig')
--EXPECT--
FOO
FOOBAR
BAR
--TEST--
"include" tag
--TEMPLATE--
{% include ["foo.twig", "bar.twig"] ignore missing %}
{% include "foo.twig" ignore missing %}
{% include "foo.twig" ignore missing with {} %}
{% include "foo.twig" ignore missing with {} only %}
--DATA--
return array()
--EXPECT--
--TEST--
"include" tag
--TEMPLATE--
{% extends "base.twig" %}
{% block content %}
{{ parent() }}
{% endblock %}
--TEMPLATE(base.twig)--
{% block content %}
{% include "foo.twig" %}
{% endblock %}
--DATA--
return array();
--EXCEPTION--
Twig_Error_Loader: Template "foo.twig" is not defined in "base.twig" at line 3.
--TEST--
"include" tag
--TEMPLATE--
{% include "foo.twig" %}
--DATA--
return array();
--EXCEPTION--
Twig_Error_Loader: Template "foo.twig" is not defined in "index.twig" at line 2.
--TEST--
"include" tag accept variables and only
--TEMPLATE--
{% include "foo.twig" %}
{% include "foo.twig" only %}
{% include "foo.twig" with {'foo1': 'bar'} %}
{% include "foo.twig" with {'foo1': 'bar'} only %}
--TEMPLATE(foo.twig)--
{% for k, v in _context %}{{ k }},{% endfor %}
--DATA--
return array('foo' => 'bar')
--EXPECT--
foo,global,_parent,
global,_parent,
foo,global,foo1,_parent,
foo1,global,_parent,
--TEST--
"include" tag accepts Twig_Template instance
--TEMPLATE--
{% include foo %} FOO
--TEMPLATE(foo.twig)--
BAR
--DATA--
return array('foo' => $twig->loadTemplate('foo.twig'))
--EXPECT--
BAR FOO
--TEST--
"include" tag
--TEMPLATE--
{% include ["foo.twig", "bar.twig"] %}
{% include ["bar.twig", "foo.twig"] %}
--TEMPLATE(foo.twig)--
foo
--DATA--
return array()
--EXPECT--
foo
foo
--TEST--
"include" tag accept variables
--TEMPLATE--
{% include "foo.twig" with {'foo': 'bar'} %}
{% include "foo.twig" with vars %}
--TEMPLATE(foo.twig)--
{{ foo }}
--DATA--
return array('vars' => array('foo' => 'bar'))
--EXPECT--
bar
bar
--TEST--
"extends" tag
--TEMPLATE--
{% extends "foo.twig" %}
{% block content %}
FOO
{% endblock %}
--TEMPLATE(foo.twig)--
{% block content %}{% endblock %}
--DATA--
return array()
--EXPECT--
FOO
--TEST--
block_expr2
--TEMPLATE--
{% extends "base2.twig" %}
{% block element -%}
Element:
{{- parent() -}}
{% endblock %}
--TEMPLATE(base2.twig)--
{% extends "base.twig" %}
--TEMPLATE(base.twig)--
{% spaceless %}
{% block element -%}
{%- if item.children is defined %}
{%- for item in item.children %}
{{- block('element') -}}
{% endfor %}
{%- endif -%}
--TEST--
"§" custom tag
--TEMPLATE--
{% § %}
--DATA--
return array()
--EXPECT--
§
--TEST--
Whitespace trimming on tags.
--TEMPLATE--
{{ 5 * '{#-'|length }}
{{ '{{-'|length * 5 + '{%-'|length }}
Trim on control tag:
{% for i in range(1, 9) -%}
{{ i }}
{%- endfor %}
Trim on output tag:
{% for i in range(1, 9) %}
{{- i -}}
{% endfor %}
Trim comments:
{#- Invisible -#}
After the comment.
Trim leading space:
{% if leading %}
{{- leading }}
{% endif %}
{%- if leading %}
{{- leading }}
{%- endif %}
Trim trailing space:
{% if trailing -%}
{{ trailing -}}
{% endif -%}
Combined:
{%- if both -%}
{{- both -}}
{%- endif -%}
end
--DATA--
return array('leading' => 'leading space', 'trailing' => 'trailing space', 'both' => 'both')
--EXPECT--
15
18
Trim on control tag:
123456789
Trim on output tag:
123456789
Trim comments:After the comment.
Trim leading space:
leading space
leading space
Trim trailing space:
trailing spaceCombined:
both
end
--TEST--
"use" tag
--TEMPLATE--
{% use "blocks.twig" with content as foo %}
{{ block('foo') }}
--TEMPLATE(blocks.twig)--
{% block content 'foo' %}
--DATA--
return array()
--EXPECT--
foo
--TEST--
"use" tag
--TEMPLATE--
{% use "blocks.twig" %}
{{ block('content') }}
--TEMPLATE(blocks.twig)--
{% block content 'foo' %}
--DATA--
return array()
--EXPECT--
foo
--TEST--
"use" tag
--TEMPLATE--
{% use "foo.twig" %}
--TEMPLATE(foo.twig)--
{% use "bar.twig" %}
--TEMPLATE(bar.twig)--
--DATA--
return array()
--EXPECT--
--TEST--
"use" tag
--TEMPLATE--
{% use "foo.twig" %}
{{ block('content') }}
{{ block('foo') }}
{{ block('bar') }}
--TEMPLATE(foo.twig)--
{% use "bar.twig" %}
{% block content 'foo' %}
{% block foo 'foo' %}
--TEMPLATE(bar.twig)--
{% block content 'bar' %}
{% block bar 'bar' %}
--DATA--
return array()
--EXPECT--
foo
foo
bar
--TEST--
"use" tag
--TEMPLATE--
{% use "ancestor.twig" %}
{% use "parent.twig" %}
{{ block('container') }}
--TEMPLATE(parent.twig)--
{% block sub_container %}
\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
"' '" Literal.String.Single
'|' Operator
'escape' Name.Function
'(' Operator
"'html_attr'" Literal.String.Single
')' Operator
' ' Text
'}}' Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n<br />\n--TEST--\n"escape" filter\n--TEMPLATE--\n' Other
'{{' Comment.Preproc
' ' Text
'"愛していますか? "' Literal.String.Double
'|' Operator
'e' Name.Function
' ' Text
'}}' Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n愛していますか? <br />\n--TEST--\n"escape" filter\n--TEMPLATE--\n' Other
'{{' Comment.Preproc
' ' Text
'"foo "' Literal.String.Double
'|' Operator
'e' Name.Function
' ' Text
'}}' Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\nfoo <br />\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 \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<br />\n\\x20\\x20\\x20\\x20foo\\x3Cbr\\x20\\x2F\\x3E\\x0A\n foo \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 HTML\\nit will be escaped.")\n--EXPECT--\nI like Twig. \nYou will like it too. \n \nEverybody like it!\nIf you have some <strong>HTML</strong> \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 HTML it will be escaped. ")\n--EXPECT--\nI like Twig.\nIf you have some <strong>HTML</strong> 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&number=3&sp%C3%A9%C3%9Fi%25l=e%25c0d%40d&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&number=3&sp%C3%A9%C3%9Fi%25l=e%25c0d%40d&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
Test
\n--DATA--\nreturn array()\n--EXPECT--\n
Test
\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
'' Other
'{{' Comment.Preproc
' ' Text
'block' Name.Builtin
'(' Operator
"'children'" Literal.String.Single
')' Operator
' ' Text
'}}' Comment.Preproc
'' 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
'
' Other
'{{' Comment.Preproc
' ' Text
'block' Name.Builtin
'(' Operator
"'children'" Literal.String.Single
')' Operator
' ' Text
'}}' Comment.Preproc
'
' 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
'
' 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
'
' 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
"1"
"2"
"3.1"
"3.2.1"
"3.2.2"
"3.4"
\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
' \n--DATA--\nreturn array()\n--EXPECT--\nFOO\n\n' Other
'{{' Comment.Preproc
' ' Text
'foo' Name.Variable
' ' Text
'}}' Comment.Preproc
' \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 \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 \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
' \n ' Other
'{{' Comment.Preproc
'-' Operator
' ' Text
'b' Name.Variable
'|' Operator
'default' Name.Function
'(' Operator
"'b'" Literal.String.Single
')' Operator
' ' 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' 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 b \na b \n1 c \n1 c \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 ' 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<br />\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(\'foobar\'))\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
' \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
' \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
' \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
' \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
' \n' Other
'{%' Comment.Preproc
' ' Text
'endautoescape' Keyword
' ' Text
'%}' Comment.Preproc
'\n--DATA--\nreturn array(\'var\' => \' \')\n--EXPECT--\n<br /> \n<br /> \n
\n<br /> \n
\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\' => \' \')\n--EXPECT--\n<br />\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\' => \' \')\n--EXPECT--\n<br />\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 \n\nunsafe_br\n \n\n\nautoescape \'html\'\n\nsafe_br\n \n\nunsafe_br\n<br />\n\nunsafe_br()|raw\n \n\nsafe_br()|escape\n<br />\n\nsafe_br()|raw\n \n\nunsafe_br()|escape\n<br />\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
'" "' Literal.String.Double
' ' Text
'}}' Comment.Preproc
'\n\n2. Conditional expression with only literals\n' Other
'{{' Comment.Preproc
' ' Text
'true' Keyword.Pseudo
' ' Text
'?' Operator
' ' Text
'" "' Literal.String.Double
' ' Text
':' Operator
' ' Text
'" "' Literal.String.Double
' ' Text
'}}' Comment.Preproc
'\n\n3. Conditional expression with a variable\n' Other
'{{' Comment.Preproc
' ' Text
'true' Keyword.Pseudo
' ' Text
'?' Operator
' ' Text
'" "' 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
'" "' Literal.String.Double
' ' Text
':' Operator
' ' Text
'" "' 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
'" "' 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
'" "' 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 \n\n2. Conditional expression with only literals\n \n\n3. Conditional expression with a variable\n<br />\n\n4. Nested conditionals with only literals\n \n\n5. Nested conditionals with a variable\n<br />\n\n6. Nested conditionals with a variable marked safe\n \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\' => \' \')\n--EXPECT--\n<br />\n <br />\n \n <br />\n \n <br />\n<br />\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<br />\nfabien<br />\nFabien<br />\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\' => \' \')\n--EXPECT--\n \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\' => \' "\')\n--EXPECT--\n\\x3Cbr\\x20\\x2F\\x3E\\x22\n<br />"\n\\x3Cbr\\x20\\x2F\\x3E\\x22\n<br />"\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\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\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\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\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\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\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\n\n2. autoescape \'html\' |escape(\'js\')\n\n\n\n3. autoescape \'js\' |escape(\'js\')\n\n\n\n4. no escape\n\n\n\n5. |escape(\'js\')|escape(\'html\')\n\n\n\n6. autoescape \'html\' |escape(\'js\')|escape(\'html\')\n\n\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
'" "' Literal.String.Double
')' Operator
' ' Text
'}}' Comment.Preproc
'\n' Other
'{{' Comment.Preproc
' ' Text
'var' Name.Variable
'|' Operator
'nl2br' Name.Function
'(' Operator
'" "' 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\' => "\\nTwig", \'sep\' => \' \')\n--EXPECT--\n<Fabien> \nTwig\n<Fabien><br />\nTwig\n<Fabien> \nTwig\n<Fabien> \nTwig\n<Fabien><br />\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 "" ~ var ~ "",\n the output is auto-escaped )\n' Other
'{{' Comment.Preproc
' ' Text
'"%s"' 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 "" ~ var ~ "",\n |raw is redundant,\n the output is auto-escaped )\n' Other
'{{' Comment.Preproc
' ' Text
'"%s"' 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 "" ~ var ~ "",\n the output is not escaped due to |raw filter at the end )\n' Other
'{{' Comment.Preproc
' ' Text
'"%s"' 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 "" ~ var ~ "",\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
'"%s"' 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\' => "\\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<Fabien> \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<Fabien> \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<Fabien><br />\nTwig\n\n4. Escape non-escaper filter output\n( var is upper-cased by |upper,\n the output is auto-escaped )\n<FABIEN>\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<FABIEN><BR />\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<FABIEN> \nTWIG\n\n7. Escape if last filter is not an escaper\n( the output of |format is "" ~ var ~ "",\n the output is auto-escaped )\n<b><Fabien>\nTwig</b>\n\n8. Escape if last filter is not an escaper\n( the output of |format is "" ~ var ~ "",\n |raw is redundant,\n the output is auto-escaped )\n<b><Fabien>\nTwig</b>\n\n9. Don\'t escape escaper filter output\n( the output of |format is "" ~ var ~ "",\n the output is not escaped due to |raw filter at the end )\n\nTwig\n\n10. Don\'t escape escaper filter output\n( the output of |format is "" ~ var ~ "",\n the output is not escaped due to |raw filter at the end,\n the |raw filter on var is redundant )\n\nTwig\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\' => "\\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<Fabien> \nTwig\n\n2. Don\'t double-pre-escape\n( var|escape|nl2br )\n<Fabien> \nTwig\n\n3. Don\'t escape safe values\n( var|raw|nl2br )\n \nTwig\n\n4. Don\'t escape safe values\n( var|escape|nl2br|nl2br )\n<Fabien>
\nTwig\n\n5. Re-escape values that are escaped for an other contexts\n( var|escape_something|escape|nl2br )\n<FABIEN> \nTWIG\n\n6. Still escape when using filters not declared safe\n( var|escape|nl2br|upper|escape )\n<FABIEN><BR />\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\' => "\\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<FABIEN>\nTWIG\n\n2. Safe values are still safe\n( var|escape|preserves_safety )\n<FABIEN>\nTWIG\n\n3. Re-escape values that are escaped for an other contexts\n( var|escape_something|preserves_safety|escape )\n<FABIEN>\nTWIG\n\n4. Still escape when using filters not declared safe\n( var|escape|preserves_safety|replace(' Other
'{' Other
'\'FABIEN\': \'FABPOT\'})|escape )\n<FABPOT>\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
\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
\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:
Element:Element:
\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
\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
\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:
Element:Element:
\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 \n' Other
'{%' Comment.Preproc
' ' Text
'endmacro' Keyword
' ' Text
'%}' Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n \n\n \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 \n' Other
'{%' Comment.Preproc
' ' Text
'endmacro' Keyword
' ' Text
'%}' Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n \n\n \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 \n' Other
'{%' Comment.Preproc
' ' Text
'endmacro' Keyword
' ' Text
'%}' Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n \n\n \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 '" 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<br />\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 o 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 o 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
foo
\n\n' Other
'{%' Comment.Preproc
' ' Text
'endspaceless' Keyword
' ' Text
'%}' Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n
foo
\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
\n\t
' Other
'{{' Comment.Preproc
'-' Operator
' ' Text
'both' Name.Variable
' ' Text
'-' Text
'}}' Comment.Preproc
'
\n
\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:
\n\t
both
\n
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
overriden sub_container
\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
' Other
'{{' Comment.Preproc
' ' Text
'block' Name.Builtin
'(' Operator
"'sub_container'" Literal.String.Single
')' Operator
' ' Text
'}}' Comment.Preproc
'
\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
sub_container
\n' Other
'{%' Comment.Preproc
' ' Text
'endblock' Keyword
' ' Text
'%}' Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n
overriden sub_container
\n
\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
overriden sub_container
\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
' Other
'{{' Comment.Preproc
' ' Text
'block' Name.Builtin
'(' Operator
"'sub_container'" Literal.String.Single
')' Operator
' ' Text
'}}' Comment.Preproc
'
\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
sub_container
\n' Other
'{%' Comment.Preproc
' ' Text
'endblock' Keyword
' ' Text
'%}' Comment.Preproc
'\n--DATA--\nreturn array()\n--EXPECT--\n
overriden sub_container
\n
\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