mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-12-01 01:36:09 +03:00
48 lines
1.3 KiB
C++
48 lines
1.3 KiB
C++
// Copyright 2014 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#ifndef TOOLS_GN_SUBSTITUTION_LIST_H_
|
|
#define TOOLS_GN_SUBSTITUTION_LIST_H_
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#include "tools/gn/substitution_pattern.h"
|
|
|
|
// Represents a list of strings with {{substitution_patterns}} in them.
|
|
class SubstitutionList {
|
|
public:
|
|
SubstitutionList();
|
|
SubstitutionList(const SubstitutionList& other);
|
|
~SubstitutionList();
|
|
|
|
bool Parse(const Value& value, Err* err);
|
|
bool Parse(const std::vector<std::string>& values,
|
|
const ParseNode* origin,
|
|
Err* err);
|
|
|
|
// Makes a SubstitutionList from the given hardcoded patterns.
|
|
static SubstitutionList MakeForTest(
|
|
const char* a,
|
|
const char* b = nullptr,
|
|
const char* c = nullptr);
|
|
|
|
const std::vector<SubstitutionPattern>& list() const { return list_; }
|
|
|
|
// Returns a list of all substitution types used by the patterns in this
|
|
// list, with the exception of LITERAL.
|
|
const std::vector<SubstitutionType>& required_types() const {
|
|
return required_types_;
|
|
}
|
|
|
|
void FillRequiredTypes(SubstitutionBits* bits) const;
|
|
|
|
private:
|
|
std::vector<SubstitutionPattern> list_;
|
|
|
|
std::vector<SubstitutionType> required_types_;
|
|
};
|
|
|
|
#endif // TOOLS_GN_SUBSTITUTION_LIST_H_
|