==================
Handles nil
==================

x = nil

---

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

==================
Handles true
==================

x = true

---

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

==================
Handles false
==================

x = false

---

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

==================
Handles simple number
==================

x = 1

---

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

==================
Handles fractional number
==================

x = 1.50
x = .50

---

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

==================
Handles signed number
==================

x = -1

---

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

==================
Handles exponential number
==================

x = 1e5

---

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

==================
Handles hexadecimal number
==================

x = 0xFF

---

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

==================
Handles binary number
==================

x = 0b101011

---

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

==================
Luau: Handles number with separators
==================

x = 1_048_576
x = 0xFFFF_FFFF
x = 0b_0101_0101

---

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

==================
Handles binary addition
==================

x = 1 + 1

---

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

==================
Handles binary addition of variables
==================

x = x + y

---

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

==================
Handles binary and/or
==================

x = foo and bar
x = foo and bar or baz

---

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

==================
Handles simple table
==================

x = { true }

---

(chunk
  (assign_stmt
    (varlist
      (var (name)))
    (explist
      (table
        (field (boolean))))))

==================
Handles name key tables
==================

x = { foo = bar, bar = baz }

---

(chunk
  (assign_stmt
    (varlist
      (var
        variable_name: (name)))
    (explist
      (table
        (field
          field_name: (name)
          value: (var 
            variable_name: (name)))
        (field
          field_name: (name)
          value: (var
            variable_name: (name)))))))

==================
Handles expression key tables
==================

x = { ["foo"] = bar, [call()] = baz }

---

(chunk
  (assign_stmt
    (varlist
      (var 
        variable_name: (name)))
    (explist
      (table
        (field
          field_indexer: (string)
          value: (var
            variable_name: (name)))
        (field
          field_indexer: (call_stmt
            invoked: (var
              variable_name: (name))
            (arglist))
          value: (var
            variable_name: (name)))))))
