code: function(query, params, callback) {
              if (!callback && utils.isFunction(params)) {
                  callback = params;
                  params = {};
              }
              
              callback = callback || function() {};
              params = params || {};
              
              params.q = query;
              
              return this.get(Paths.parser, params, function(err, response) {
                  if (err) {
                      callback(err);
                  } 
                  else {                    
                      callback(null, response.data);
                  }
              });
          }
docs: Parses a search query.
  
  @example
  
  service.parse("search index=_internal | head 1", function(err, parse) {
  console.log("Commands: ", parse.commands);
  });
  
  @param {String} query The search query to parse.
  @param {Object} params An object of options for the parser:
  - `enable_lookups` (_boolean_): If `true`, performs reverse lookups to expand the search expression.
  - `output_mode` (_string_): The output format (XML or JSON).
  - `parse_only` (_boolean_): If `true`, disables the expansion of search due to evaluation of subsearches, time term expansion, lookups, tags, eventtypes, and sourcetype alias.
  - `reload_macros` (_boolean_): If `true`, reloads macro definitions from macros.conf.
  @param {Function} callback A function to call with the parse info: `(err, parse)`.
  
  @endpoint search/parser
  @method splunkjs.Service