==================
Inline Comment
==================

<html>
  {% # render "string" % -  -%}
</html>

---
(program
 (template_content)
 (comment)
 (template_content))

==================
Multiline Inline Comment
==================

<html>
  {%
    # this is a comment
    # render "string" %
    # :)
  %}
</html>

---
(program
 (template_content)
 (comment)
 (template_content))

==================
Paired Tag Comment
==================

<html>
  {% if true %}
    {% comment %}
      {% render "file" %}
      {{ data.page.title | reverse }}
      <div>hi</div>
      {{ data.page }}
      content
    {%- endcomment %}
  {% endif %}
</html>

---
  (program
   (template_content)
   (if_statement
    condition: (boolean)
    consequence: (block
      (comment)))
   (template_content))

==================
Nested Comments
==================

{% comment %}
{% comment %}
{% comment %}
{% render "file" %}
{% endcomment %}
{% endcomment %}
{% endcomment %}

---
  (program
   (comment)
   (template_content))

==================
Two Comment Opened, One Unclosed
==================
{% comment %}
{% comment %}
{% endcomment %}
---
(program
  (ERROR))

==================
Comment Opened and Unclosed
==================
{% comment %}
---
(program
  (ERROR))

==================
Comment Closed Only
==================
{% endcomment %}
---
(program
  (custom_unpaired_statement))

==================
One Comment Opened, Two Closed
==================

{% comment %}
{% endcomment %}
{% endcomment %}

---
(program
  (comment)
  (custom_unpaired_statement)
  (template_content))

==================
Comment Opened and Unclosed with Template
==================
<html>
{% comment %}
<html/>

---
(program
  (template_content)
  (ERROR
    (identifier)))

==================
Liquid Inline Comment
==================

<html>
  {% liquid
    assign value = "string"
    # render "file1"
    render "file2"
  %}
</html>

---
  (program
   (template_content)
   (liquid_tag
    (assignment_statement
     (identifier)
     (string))
    (comment)
    (render_statement
     (string)))
   (template_content))

==================
Liquid Multi-line Inline Comment
==================

<html>
  {% liquid
    assign value = "string"
    # render "file1"
    # this renders a string
    # cool
    render "file2"
  %}
</html>

---
  (program
   (template_content)
   (liquid_tag
    (assignment_statement
     (identifier)
     (string))
    (comment)
    (comment)
    (comment)
    (render_statement
     (string)))
   (template_content))

==================
Liquid Paired Comment
==================

<html>
  {% liquid
    assign value = "string"
    comment
      render "file1"
      echo "renders a string"
    endcomment
    render "file2"
  %}
</html>

---
  (program
   (template_content)
   (liquid_tag
    (assignment_statement
     (identifier)
     (string))
    (comment)
    (render_statement
     (string)))
   (template_content))

==================
Liquid Nested Paired Comment
==================

<html>
  {% liquid
    assign value = "string"
    comment
    comment
    comment
      render "file1"
      echo "renders a string"
    endcomment
    endcomment
    endcomment
    render "file2"
  %}
</html>

---
  (program
   (template_content)
   (liquid_tag
    (assignment_statement
     (identifier)
     (string))
    (comment)
    (render_statement
     (string)))
   (template_content))

==================
Raw Tag
==================

<html>
  {% raw %}
    {% render "something" %}
    {{ data.page.title | reverse }}
    <div>hi</div>
    {{ data.page }}
    content
  {% endraw %}
</html>

---
  (program
   (template_content)
   (raw_statement
    (raw_content))
   (template_content))

==================
Nested Raw
==================

{% raw %}
{% raw %}
{% raw %}
{% render "file" %}
{% endraw %}
{% endraw %}
{% endraw %}

---

(program
 (raw_statement
  (raw_content)
  (raw_statement
   (raw_content)
   (raw_statement
    (raw_content))))
 (template_content))

==================
Raw/Comment Nesting
==================

{% comment %}
{% raw %}
{% endraw %}
{% endcomment %}
{% raw %}
{% comment %}
{% endcomment %}
{% endraw %}

---
  (program
   (comment)
   (raw_statement
    (raw_content))
   (template_content))

