13c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji// Copyright 2015 Google Inc. All rights reserved
23c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji//
33c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji// Licensed under the Apache License, Version 2.0 (the "License");
43c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji// you may not use this file except in compliance with the License.
53c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji// You may obtain a copy of the License at
63c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji//
73c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji//      http://www.apache.org/licenses/LICENSE-2.0
83c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji//
93c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji// Unless required by applicable law or agreed to in writing, software
103c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji// distributed under the License is distributed on an "AS IS" BASIS,
113c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
123c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji// See the License for the specific language governing permissions and
133c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji// limitations under the License.
143c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji
153c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji// +build ignore
163c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji
173c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji#include "find.h"
183c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji
193c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji#include <string>
203c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji
21171dc82adb5ba0e7aaae03b2809113ba094d0f2fShinichiro Hamaji#include "strutil.h"
22171dc82adb5ba0e7aaae03b2809113ba094d0f2fShinichiro Hamaji
233c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamajiint main(int argc, char* argv[]) {
243c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji  if (argc == 1) {
253c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji    fprintf(stderr, "TODO: Write unit tests\n");
263c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji    return 1;
273c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji  }
283c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji
293c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji  InitFindEmulator();
303c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji  string cmd;
313c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji  for (int i = 1; i < argc; i++) {
323c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji    if (i > 1)
333c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji      cmd += ' ';
343c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji    cmd += argv[i];
353c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji  }
363c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji  FindCommand fc;
373c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji  if (!fc.Parse(cmd)) {
383c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji    fprintf(stderr, "Find emulator does not support this command\n");
393c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji    return 1;
403c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji  }
413c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji  string out;
42692e64ebf83bc87baca6e3c90c3d0b2849655d75Dan Willemsen  if (!FindEmulator::Get()->HandleFind(cmd, fc, Loc(), &out)) {
433c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji    fprintf(stderr, "Find emulator does not support this command\n");
443c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji    return 1;
453c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji  }
46171dc82adb5ba0e7aaae03b2809113ba094d0f2fShinichiro Hamaji
47171dc82adb5ba0e7aaae03b2809113ba094d0f2fShinichiro Hamaji  for (StringPiece tok : WordScanner(out)) {
48171dc82adb5ba0e7aaae03b2809113ba094d0f2fShinichiro Hamaji    printf("%.*s\n", SPF(tok));
49171dc82adb5ba0e7aaae03b2809113ba094d0f2fShinichiro Hamaji  }
503c509d984574afb8bd5d2cdf4e5a17f3a62a4846Shinichiro Hamaji}
51