================================================================================
Simple Logic
================================================================================

true && false

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

(root
  (statement
    (statement_kind
      (expression
        (logic
          (expression
            (value
              (boolean)))
          (logic_operator)
          (expression
            (value
              (boolean))))))))

================================================================================
Logic Sequence
================================================================================

1 == 2 || false

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

(root
  (statement
    (statement_kind
      (expression
        (logic
          (expression
            (logic
              (expression
                (value
                  (integer)))
              (logic_operator)
              (expression
                (value
                  (integer)))))
          (logic_operator)
          (expression
            (value
              (boolean))))))))

================================================================================
Complex Logic Sequence
================================================================================

(length(suspects) == 1)
&& (length(rooms) == 1)
&& (length(weapons) == 1)

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

(root
  (statement
    (statement_kind
      (expression
        (logic
          (expression
            (logic
              (expression
                (logic
                  (expression
                    (function_call
                      (function_expression
                        (identifier))
                      (expression
                        (identifier))))
                  (logic_operator)
                  (expression
                    (value
                      (integer)))))
              (logic_operator)
              (expression
                (logic
                  (expression
                    (function_call
                      (function_expression
                        (identifier))
                      (expression
                        (identifier))))
                  (logic_operator)
                  (expression
                    (value
                      (integer)))))))
          (logic_operator)
          (expression
            (logic
              (expression
                (function_call
                  (function_expression
                    (identifier))
                  (expression
                    (identifier))))
              (logic_operator)
              (expression
                (value
                  (integer))))))))))
