Fix breaking change in It2me Host on Ozone
[chromium-blink-merge.git] / tools / gn / substitution_list.h
blob3a45ba8409b8d5d2b07a8dc3b7a1f5007363cf0e
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef TOOLS_GN_SUBSTUTITION_LIST_H
6 #define TOOLS_GN_SUBSTUTITION_LIST_H
8 #include <string>
9 #include <vector>
11 #include "tools/gn/substitution_pattern.h"
13 // Represents a list of strings with {{substitution_patterns}} in them.
14 class SubstitutionList {
15 public:
16 SubstitutionList();
17 ~SubstitutionList();
19 bool Parse(const Value& value, Err* err);
20 bool Parse(const std::vector<std::string>& values,
21 const ParseNode* origin,
22 Err* err);
24 // Makes a SubstitutionList from the given hardcoded patterns.
25 static SubstitutionList MakeForTest(
26 const char* a,
27 const char* b = nullptr,
28 const char* c = nullptr);
30 const std::vector<SubstitutionPattern>& list() const { return list_; }
32 // Returns a list of all substitution types used by the patterns in thist
33 // list, with the exception of LITERAL.
34 const std::vector<SubstitutionType>& required_types() const {
35 return required_types_;
38 void FillRequiredTypes(SubstitutionBits* bits) const;
40 private:
41 std::vector<SubstitutionPattern> list_;
43 std::vector<SubstitutionType> required_types_;
46 #endif // TOOLS_GN_SUBSTUTITION_LIST_H