==================
Basic variable assignment
==================

x = 1

---

(chunk
  (assign_stmt
    (varlist
      (var
        (name)))
    (explist
      (number))))

==================
Multiple variable assignment
==================

a, b = 1, true

---

(chunk
  (assign_stmt
    (varlist
      (var
        (name))
      (var
        (name)))
    (explist
      (number)
      (boolean))))
      

==================
Complex variable assignment
==================

a, b, c.d.e[f][g][1], h:i().j[k]:l()[m] = true, false, 1, 4

---

(chunk
  (assign_stmt
    (varlist
      (var
        variable_name: (name))
      (var
        variable_name: (name))
      (var
        table_name: (name)
        (key
          field_name: (name))
        (key
          field_name: (name))
        (key
          field_indexer: (var
            variable_name: (name)))
        (key
          field_indexer: (var
            variable_name: (name)))
        (key
          field_indexer:
            (number)))
      (var
        (call_stmt
          method_table: (var
            (call_stmt
              method_table: (var
                variable_name: (name))
              method_name: (name)
              (arglist))
            (key
              field_name: (name))
            (key
              field_indexer: (var
                variable_name: (name))))
          method_name: (name)
          (arglist))
        (key
          field_indexer: (var
            variable_name: (name)))))
      (explist
        (boolean)
        (boolean)
        (number)
        (number))))

==================
Local variable declaration, no assignment
==================

local x

---

(chunk
  (local_var_stmt
    (bindinglist
      (binding
        (name)))))

==================
Local variable declaration
==================

local x = 1

---

(chunk
  (local_var_stmt
    (bindinglist
      (binding
        (name)))
    (explist
      (number))))

==================
Multiple Local variable declaration, no assignment
==================

local x, y

---

(chunk
  (local_var_stmt
    (bindinglist
      (binding
        (name))
      (binding
        (name)))))

==================
Multiple Local variable declaration
==================

local x, y = 1, false

---

(chunk
  (local_var_stmt
    (bindinglist
      (binding
        (name))
      (binding
        (name)))
    (explist
      (number)
      (boolean))))

==================
Luau: Compound assignment
==================

a += 1

---

(chunk
  (var_stmt
    left: (var
      variable_name: (name))
    right: (number)))
