==================
Line comment (lineCommentA.dhall)
==================

-- foo

1

---

(expression
  (line_comment (line_comment_prefix) (line_comment_content))
  (primitive_expression (numeric_literal (natural_literal))))

==================
Line comment ending in CLRF (lineCommentCRLFA.dhall)
==================

-- foo

1

---

(expression
  (line_comment (line_comment_prefix) (line_comment_content))
  (primitive_expression (numeric_literal (natural_literal))))

==================
Trailing line comments terminate without newline (unit/TrailingLineCommentWithoutNewlineA.dhall)
==================

-- This test verifies that a trailing line comment does not require a newline
1--

---

(expression
  (line_comment (line_comment_prefix) (line_comment_content))
  (primitive_expression (numeric_literal (natural_literal)))
  (line_comment (line_comment_prefix) (line_comment_content)))

==================
Block comment (blockCommentA.dhall)
==================

{- foo -}

1

---

(expression
  (block_comment
    (block_comment_open)
    (block_comment_content)
    (block_comment_close))
  (primitive_expression (numeric_literal (natural_literal))))

==================
Nested block comments (nestedBlockCommentA.dhall)
==================

{- foo {- bar -} baz -}

1

---

(expression
  (block_comment
    (block_comment_open)
    (block_comment_content)
    (block_comment_close))
  (primitive_expression (numeric_literal (natural_literal))))

==================
Mixed comments
==================

{- foo -}
-- bar
{- --baz -}

1

---

(expression
  (block_comment
    (block_comment_open)
    (block_comment_content)
    (block_comment_close))
  (line_comment (line_comment_prefix) (line_comment_content))
  (block_comment
    (block_comment_open)
    (block_comment_content)
    (block_comment_close))
  (primitive_expression (numeric_literal (natural_literal))))

==================
Unicode comment (unicodeCommentA.dhall)
==================

{- ∀(a : Type) → a -}

1

---

(expression
  (block_comment
    (block_comment_open)
    (block_comment_content)
    (block_comment_close))
  (primitive_expression (numeric_literal (natural_literal))))

==================
Unterminated block comment
==================

{- foo {- bar -}

1

---

(expression
  (ERROR (block_comment_open))
  (application_expression
    (primitive_expression (identifier (label)))
    (block_comment
      (block_comment_open)
      (block_comment_content)
      (block_comment_close))
    (primitive_expression (numeric_literal (natural_literal)))))
