    # File lib/yard/handlers/ruby/legacy/class_condition_handler.rb, line 28
      def parse_condition
        condition = nil

        # Right now we can handle very simple unary conditions like:
        #   if true
        #   if false
        #   if 0
        #   if 100 (not 0)
        #   if defined? SOME_CONSTANT
        #
        # The last case will do a lookup in the registry and then one
        # in the Ruby world (using eval).
        case statement.tokens[1..-1].to_s.strip
        when /^(\d+)$/
          condition = $1 != "0"
        when /^defined\?\s*\(?(.+?)\)?$/
          # defined? keyword used, let's see if we can look up the name
          # in the registry, then we'll try using Ruby's powers. eval() is not
          # *too* dangerous here since code is not actually executed.
          name = $1
          obj = YARD::Registry.resolve(namespace, name, true)
          begin
            condition = true if obj || Object.instance_eval("defined? #{name}")
          rescue SyntaxError, NameError
            condition = false
          end
        when "true"
          condition = true
        when "false"
          condition = false
        end

        if TkUNLESS === statement.tokens.first
          condition = !condition if condition != nil
        end
        condition
      end