def eval_statement(statement)
      search_terms = results = []

      statement.each do |node|
        
        case node.type
        when :SELECT
          search_terms = node.search_terms
        when :FROM
          results = provider_lookup(node, search_terms)
        when :WHERE
          node.constraints.each do
            # results = send :method, results (or something like that)
          end
        end
      end

      results
    end
def eval_statement(statement)
      search_terms = results = []

      statement.each do |node|
        
        case node.type
        when :SELECT
          search_terms = node.search_terms
        when :FROM
          results = provider_lookup(node, search_terms)
        when :WHERE
          node.constraints.each do
            # results = send :method, results (or something like that)
          end
        end
      end

      results
    end
Evaluates a single statement.
 Returns:
 +result+:: An array containing the result of the statement