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