==================
If Basic
==================

{% if user.is_authenticated %}
Hi
{% endif %}

---

(template
  (content)
  (if_group
    (if_clause
      (if_block
        (predicate
          (filtered_value
            (value
              (variable_attribute
                (identifier)
                (attribute))))))
      (template
        (content)))
    (endif_block))
  (content))

==================
If With Not
==================

{% if not done %}
working
{% endif %}

---

(template
  (content)
  (if_group
    (if_clause
      (if_block
        (predicate
          (filtered_value
            (value
              (variable_attribute
                (identifier))))))
      (template
        (content)))
    (endif_block))
  (content))

==================
If With Elif And Else
==================

{% if count == 1 %}
one
{% elif count == 2 %}
two
{% else %}
other
{% endif %}

---

(template
  (content)
  (if_group
    (if_clause
      (if_block
        (predicate
          (filtered_value
            (value
              (variable_attribute
                (identifier))))
          (binaryOperator)
          (filtered_value
            (value
              (literal
                (number))))))
      (template
        (content)))
    (elif_clause
      (elif_block
        (predicate
          (filtered_value
            (value
              (variable_attribute
                (identifier))))
          (binaryOperator)
          (filtered_value
            (value
              (literal
                (number))))))
      (template
        (content)))
    (else_clause
      (else_block)
      (template
        (content)))
    (endif_block))
  (content))

==================
If With Complex Predicate
==================

{% if not done and count in valid_counts and status is not none or tags|length >= 3 %}
yes
{% endif %}

---

(template
  (content)
  (if_group
    (if_clause
      (if_block
        (predicate
          (filtered_value
            (value
              (variable_attribute
                (identifier))))
          (binaryOperator)
          (filtered_value
            (value
              (variable_attribute
                (identifier))))
          (binaryOperator)
          (filtered_value
            (value
              (variable_attribute
                (identifier))))
          (binaryOperator)
          (filtered_value
            (value
              (variable_attribute
                (identifier))))
          (binaryOperator)
          (filtered_value
            (value
              (variable_attribute
                (identifier))))
          (binaryOperator)
          (filtered_value
            (value
              (variable_attribute
                (identifier)))
            (filter_expression
              (filter)))
          (binaryOperator)
          (filtered_value
            (value
              (literal
                (number))))))
      (template
        (content)))
    (endif_block))
  (content))

==================
If Operator Adjacent To Value
:error
==================

{% if 1and 2 %}yes{% endif %}

---

==================
If Is Not None
==================

{% if status is not None %}yes{% endif %}

---

(template
  (content)
  (if_group
    (if_clause
      (if_block
        (predicate
          (filtered_value
            (value
              (variable_attribute
                (identifier))))
          (binaryOperator)
          (filtered_value
            (value
              (literal
                (none))))))
      (template
        (content)))
    (endif_block))
  (content))

==================
If Is
==================

{% if x is y %}a{% endif %}

---

(template
  (content)
  (if_group
    (if_clause
      (if_block
        (predicate
          (filtered_value
            (value
              (variable_attribute
                (identifier))))
          (binaryOperator)
          (filtered_value
            (value
              (variable_attribute
                (identifier))))))
      (template
        (content)))
    (endif_block))
  (content))

==================
If Is Not
==================

{% if x is not y %}a{% endif %}

---

(template
  (content)
  (if_group
    (if_clause
      (if_block
        (predicate
          (filtered_value
            (value
              (variable_attribute
                (identifier))))
          (binaryOperator)
          (filtered_value
            (value
              (variable_attribute
                (identifier))))))
      (template
        (content)))
    (endif_block))
  (content))

==================
If Is Not Not
==================

{% if x is not not y %}a{% endif %}

---

(template
  (content)
  (if_group
    (if_clause
      (if_block
        (predicate
          (filtered_value
            (value
              (variable_attribute
                (identifier))))
          (binaryOperator)
          (filtered_value
            (value
              (variable_attribute
                (identifier))))))
      (template
        (content)))
    (endif_block))
  (content))

==================
If With A Repeated Not
==================

{% if not not x %}a{% endif %}

---

(template
  (content)
  (if_group
    (if_clause
      (if_block
        (predicate
          (filtered_value
            (value
              (variable_attribute
                (identifier))))))
      (template
        (content)))
    (endif_block))
  (content))

==================
If Not Before A Name Beginning With In
==================

{% if not in_stock %}a{% endif %}

---

(template
  (content)
  (if_group
    (if_clause
      (if_block
        (predicate
          (filtered_value
            (value
              (variable_attribute
                (identifier))))))
      (template
        (content)))
    (endif_block))
  (content))

==================
If Is Before A Name Beginning With Not
==================

{% if x is nothing %}a{% endif %}

---

(template
  (content)
  (if_group
    (if_clause
      (if_block
        (predicate
          (filtered_value
            (value
              (variable_attribute
                (identifier))))
          (binaryOperator)
          (filtered_value
            (value
              (variable_attribute
                (identifier))))))
      (template
        (content)))
    (endif_block))
  (content))
