diff --git a/test/corpus/for.txt b/test/corpus/for.txt index 1399895..6df1723 100644 --- a/test/corpus/for.txt +++ b/test/corpus/for.txt @@ -104,6 +104,120 @@ For With Empty (endfor_tag)) (content)) +================== +For Does Not Take An Else +================== + +{% for a in b %}x{% else %}y{% endfor %} + +--- + +(template + (content) + (for_group + (for_block + (for_tag + variable: (identifier) + (filtered_value + (value + (variable_attribute + (identifier))))) + (template + (content) + (unexpected_tag) + (content))) + (endfor_tag)) + (content)) + +================== +For With Empty Twice +================== + +{% for a in b %}x{% empty %}y{% empty %}z{% endfor %} + +--- + +(template + (content) + (for_group + (for_block + (for_tag + variable: (identifier) + (filtered_value + (value + (variable_attribute + (identifier))))) + (template + (content))) + (empty_block + (empty_tag) + (template + (content) + (unexpected_tag) + (content))) + (endfor_tag)) + (content)) + +================== +For With An Empty Clause And No Body +================== + +{% for a in b %}{% empty %}{% endfor %} + +--- + +(template + (content) + (for_group + (for_block + (for_tag + variable: (identifier) + (filtered_value + (value + (variable_attribute + (identifier)))))) + (empty_block + (empty_tag)) + (endfor_tag)) + (content)) + +================== +For With A Nested If In Its Empty Clause +================== + +{% for a in b %}x{% empty %}{% if q %}y{% endif %}{% endfor %} + +--- + +(template + (content) + (for_group + (for_block + (for_tag + variable: (identifier) + (filtered_value + (value + (variable_attribute + (identifier))))) + (template + (content))) + (empty_block + (empty_tag) + (template + (if_group + (if_block + (if_tag + (predicate + (filtered_value + (value + (variable_attribute + (identifier)))))) + (template + (content))) + (endif_tag)))) + (endfor_tag)) + (content)) + ================== For With A Tag In Its Body ================== @@ -178,6 +292,104 @@ For With A Nested For (endfor_tag)) (content)) +================== +For With A Nested With +================== + +{% for a in b %}{% with c=1 %}y{% endwith %}{% endfor %} + +--- + +(template + (content) + (for_group + (for_block + (for_tag + variable: (identifier) + (filtered_value + (value + (variable_attribute + (identifier))))) + (template + (with_group + (with_block + (with_tag + variable: (identifier) + (filtered_value + (value + (literal + (number))))) + (template + (content))) + (endwith_tag)))) + (endfor_tag)) + (content)) + +================== +For With A Cycle In Its Body +================== + +{% for a in b %}{% cycle 1 2 %}{% endfor %} + +--- + +(template + (content) + (for_group + (for_block + (for_tag + variable: (identifier) + (filtered_value + (value + (variable_attribute + (identifier))))) + (template + (cycle_tag + (filtered_value + (value + (literal + (number)))) + (filtered_value + (value + (literal + (number))))))) + (endfor_tag)) + (content)) + +================== +For With Multiple Variables And A Nested If +================== + +{% for a, b in c %}{% if x %}y{% endif %}{% endfor %} + +--- + +(template + (content) + (for_group + (for_block + (for_tag + variable: (identifier) + variable: (identifier) + (filtered_value + (value + (variable_attribute + (identifier))))) + (template + (if_group + (if_block + (if_tag + (predicate + (filtered_value + (value + (variable_attribute + (identifier)))))) + (template + (content))) + (endif_tag)))) + (endfor_tag)) + (content)) + ================== For With Tags In Both Branches ================== diff --git a/test/corpus/if.txt b/test/corpus/if.txt index 991383d..929e331 100644 --- a/test/corpus/if.txt +++ b/test/corpus/if.txt @@ -101,6 +101,153 @@ other (endif_tag)) (content)) +================== +If With Elif +================== + +{% if x %}a{% elif y %}b{% endif %} + +--- + +(template + (content) + (if_group + (if_block + (if_tag + (predicate + (filtered_value + (value + (variable_attribute + (identifier)))))) + (template + (content))) + (elif_block + (elif_tag + (predicate + (filtered_value + (value + (variable_attribute + (identifier)))))) + (template + (content))) + (endif_tag)) + (content)) + +================== +If With Else +================== + +{% if x %}a{% else %}b{% endif %} + +--- + +(template + (content) + (if_group + (if_block + (if_tag + (predicate + (filtered_value + (value + (variable_attribute + (identifier)))))) + (template + (content))) + (else_block + (else_tag) + (template + (content))) + (endif_tag)) + (content)) + +================== +If With An Elif Missing Its Condition +================== + +{% if x %}a{% elif %}b{% endif %} + +--- + +(template + (content) + (if_group + (if_block + (if_tag + (predicate + (filtered_value + (value + (variable_attribute + (identifier)))))) + (template + (content) + (unexpected_tag) + (content))) + (endif_tag)) + (content)) + +================== +If With An Elif After An Else +================== + +{% if x %}a{% else %}b{% elif y %}c{% endif %} + +--- + +(template + (content) + (if_group + (if_block + (if_tag + (predicate + (filtered_value + (value + (variable_attribute + (identifier)))))) + (template + (content) + (unexpected_tag) + (content))) + (elif_block + (elif_tag + (predicate + (filtered_value + (value + (variable_attribute + (identifier)))))) + (template + (content))) + (endif_tag)) + (content)) + +================== +If With Two Elses +================== + +{% if x %}a{% else %}b{% else %}c{% endif %} + +--- + +(template + (content) + (if_group + (if_block + (if_tag + (predicate + (filtered_value + (value + (variable_attribute + (identifier)))))) + (template + (content))) + (else_block + (else_tag) + (template + (content) + (unexpected_tag) + (content))) + (endif_tag)) + (content)) + ================== If With Complex Predicate ================== diff --git a/test/corpus/with.txt b/test/corpus/with.txt index 1e91de5..fc14c72 100644 --- a/test/corpus/with.txt +++ b/test/corpus/with.txt @@ -66,6 +66,31 @@ With Multiple Variables (endwith_tag)) (content)) +================== +With Does Not Take An Else +================== + +{% with x=1 %}a{% else %}b{% endwith %} + +--- + +(template + (content) + (with_group + (with_block + (with_tag + variable: (identifier) + (filtered_value + (value + (literal + (number))))) + (template + (content) + (unexpected_tag) + (content))) + (endwith_tag)) + (content)) + ================== With A Binding Twice ==================