Ninja
depfile_parser.h
Go to the documentation of this file.
00001 // Copyright 2011 Google Inc. All Rights Reserved.
00002 //
00003 // Licensed under the Apache License, Version 2.0 (the "License");
00004 // you may not use this file except in compliance with the License.
00005 // You may obtain a copy of the License at
00006 //
00007 //     http://www.apache.org/licenses/LICENSE-2.0
00008 //
00009 // Unless required by applicable law or agreed to in writing, software
00010 // distributed under the License is distributed on an "AS IS" BASIS,
00011 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00012 // See the License for the specific language governing permissions and
00013 // limitations under the License.
00014 
00015 #ifndef NINJA_DEPFILE_PARSER_H_
00016 #define NINJA_DEPFILE_PARSER_H_
00017 
00018 #include <string>
00019 #include <vector>
00020 using namespace std;
00021 
00022 #include "string_piece.h"
00023 
00024 /// Parser for the dependency information emitted by gcc's -M flags.
00025 struct DepfileParser {
00026   /// Parse an input file.  Input must be NUL-terminated.
00027   /// Warning: may mutate the content in-place and parsed StringPieces are
00028   /// pointers within it.
00029   bool Parse(string* content, string* err);
00030 
00031   StringPiece out_;
00032   vector<StringPiece> ins_;
00033 };
00034 
00035 #endif // NINJA_DEPFILE_PARSER_H_