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

1
"one";
x

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

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

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

x = 1;
y = "one"

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

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

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

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

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

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

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

x = 3 == 1 + 2 + 2

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

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