================================================================================
for tuple expression
================================================================================

foo = [for v in ["a", "b"]: v]

--------------------------------------------------------------------------------

(config_file
  (body
    (attribute
      (identifier)
      (expression
        (for_expr
          (for_tuple_expr
            (tuple_start)
            (for_intro
              (identifier)
              (expression
                (collection_value
                  (tuple
                    (tuple_start)
                    (expression
                      (literal_value
                        (string_lit
                          (quoted_template_start)
                          (template_literal)
                          (quoted_template_end))))
                    (expression
                      (literal_value
                        (string_lit
                          (quoted_template_start)
                          (template_literal)
                          (quoted_template_end))))
                    (tuple_end)))))
            (expression
              (variable_expr
                (identifier)))
            (tuple_end)))))))

================================================================================
for tuple expression with index
================================================================================

foo = [for i, v in ["a", "b"]: i]

--------------------------------------------------------------------------------

(config_file
  (body
    (attribute
      (identifier)
      (expression
        (for_expr
          (for_tuple_expr
            (tuple_start)
            (for_intro
              (identifier)
              (identifier)
              (expression
                (collection_value
                  (tuple
                    (tuple_start)
                    (expression
                      (literal_value
                        (string_lit
                          (quoted_template_start)
                          (template_literal)
                          (quoted_template_end))))
                    (expression
                      (literal_value
                        (string_lit
                          (quoted_template_start)
                          (template_literal)
                          (quoted_template_end))))
                    (tuple_end)))))
            (expression
              (variable_expr
                (identifier)))
            (tuple_end)))))))

================================================================================
for tuple expression with predicate
================================================================================

foo = [for i, v in ["a", "b", "c"]: v if pred(i)]

--------------------------------------------------------------------------------

(config_file
  (body
    (attribute
      (identifier)
      (expression
        (for_expr
          (for_tuple_expr
            (tuple_start)
            (for_intro
              (identifier)
              (identifier)
              (expression
                (collection_value
                  (tuple
                    (tuple_start)
                    (expression
                      (literal_value
                        (string_lit
                          (quoted_template_start)
                          (template_literal)
                          (quoted_template_end))))
                    (expression
                      (literal_value
                        (string_lit
                          (quoted_template_start)
                          (template_literal)
                          (quoted_template_end))))
                    (expression
                      (literal_value
                        (string_lit
                          (quoted_template_start)
                          (template_literal)
                          (quoted_template_end))))
                    (tuple_end)))))
            (expression
              (variable_expr
                (identifier)))
            (for_cond
              (expression
                (function_call
                  (identifier)
                  (function_arguments
                    (expression
                      (variable_expr
                        (identifier)))))))
            (tuple_end)))))))

================================================================================
for object expression
================================================================================

foo = {for i, v in ["a", "b"]: v => i}

--------------------------------------------------------------------------------

(config_file
  (body
    (attribute
      (identifier)
      (expression
        (for_expr
          (for_object_expr
            (object_start)
            (for_intro
              (identifier)
              (identifier)
              (expression
                (collection_value
                  (tuple
                    (tuple_start)
                    (expression
                      (literal_value
                        (string_lit
                          (quoted_template_start)
                          (template_literal)
                          (quoted_template_end))))
                    (expression
                      (literal_value
                        (string_lit
                          (quoted_template_start)
                          (template_literal)
                          (quoted_template_end))))
                    (tuple_end)))))
            (expression
              (variable_expr
                (identifier)))
            (expression
              (variable_expr
                (identifier)))
            (object_end)))))))

================================================================================
for object expression 2
================================================================================

foo = {for i, v in ["a", "b"]: v => i...}

--------------------------------------------------------------------------------

(config_file
  (body
    (attribute
      (identifier)
      (expression
        (for_expr
          (for_object_expr
            (object_start)
            (for_intro
              (identifier)
              (identifier)
              (expression
                (collection_value
                  (tuple
                    (tuple_start)
                    (expression
                      (literal_value
                        (string_lit
                          (quoted_template_start)
                          (template_literal)
                          (quoted_template_end))))
                    (expression
                      (literal_value
                        (string_lit
                          (quoted_template_start)
                          (template_literal)
                          (quoted_template_end))))
                    (tuple_end)))))
            (expression
              (variable_expr
                (identifier)))
            (expression
              (variable_expr
                (identifier)))
            (ellipsis)
            (object_end)))))))
