================================================================================
Simple Statements
================================================================================

1
"one";
x

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

(root
  (statement
    (expression
      (value
        (integer))))
  (statement
    (expression
      (value
        (string))))
  (statement
    (expression
      (identifier))))

================================================================================
Simple Assignment
================================================================================

x = 1;
y = "one"

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

(root
  (statement
    (assignment
      (identifier)
      (assignment_operator)
      (statement
        (expression
          (value
            (integer))))))
  (statement
    (assignment
      (identifier)
      (assignment_operator)
      (statement
        (expression
          (value
            (string)))))))

================================================================================
Complex Assignment
================================================================================

x = if 1 + 1 == 2 {
  'yo'
} else {
  'no'
}

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

(root
  (statement
    (assignment
      (identifier)
      (assignment_operator)
      (statement
        (if_else
          (if
            (expression
              (logic
                (expression
                  (math
                    (expression
                      (value
                        (integer)))
                    (math_operator)
                    (expression
                      (value
                        (integer)))))
                (logic_operator)
                (expression
                  (value
                    (integer)))))
            (block
              (statement
                (expression
                  (value
                    (string))))))
          (else
            (block
              (statement
                (expression
                  (value
                    (string)))))))))))

================================================================================
Expression Precedence
================================================================================

x = 3 == 1 + 2 + 2

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

(root
  (statement
    (assignment
      (identifier)
      (assignment_operator)
      (statement
        (expression
          (math
            (expression
              (math
                (expression
                  (logic
                    (expression
                      (value
                        (integer)))
                    (logic_operator)
                    (expression
                      (value
                        (integer)))))
                (math_operator)
                (expression
                  (value
                    (integer)))))
            (math_operator)
            (expression
              (value
                (integer)))))))))