================================================================================
While Loop
================================================================================

while true {
  output ("This is a bad idea...")
}

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

(root
  (statement
    (statement_kind
      (while
        (expression
          (value
            (boolean)))
        (block
          (statement
            (statement_kind
              (expression
                (function_call
                  (function_expression
                    (identifier))
                  (expression
                    (value
                      (string))))))))))))

================================================================================
Nested While Loop
================================================================================

while true {
  while x > 0 {
    x -= 1
  }
}

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

(root
  (statement
    (statement_kind
      (while
        (expression
          (value
            (boolean)))
        (block
          (statement
            (statement_kind
              (while
                (expression
                  (logic
                    (expression
                      (identifier))
                    (logic_operator)
                    (expression
                      (value
                        (integer)))))
                (block
                  (statement
                    (statement_kind
                      (assignment
                        (identifier)
                        (assignment_operator)
                        (statement
                          (statement_kind
                            (expression
                              (value
                                (integer)))))))))))))))))
