//===- ArgList.h - Argument List Management ---------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLVM_OPTION_ARGLIST_H #define LLVM_OPTION_ARGLIST_H #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/iterator_range.h" #include "llvm/ADT/SmallString.h" #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/StringRef.h" #include "llvm/ADT/Twine.h" #include "llvm/Option/Arg.h" #include "llvm/Option/OptSpecifier.h" #include "llvm/Option/Option.h" #include <algorithm> #include <cstddef> #include <initializer_list> #include <iterator> #include <list> #include <memory> #include <string> #include <utility> #include <vector> namespace llvm { class raw_ostream; namespace opt { /// arg_iterator - Iterates through arguments stored inside an ArgList. template<typename BaseIter, unsigned NumOptSpecifiers = 0> class arg_iterator { … }; /// ArgList - Ordered collection of driver arguments. /// /// The ArgList class manages a list of Arg instances as well as /// auxiliary data and convenience methods to allow Tools to quickly /// check for the presence of Arg instances for a particular Option /// and to iterate over groups of arguments. class ArgList { … }; class InputArgList final : public ArgList { … }; /// DerivedArgList - An ordered collection of driver arguments, /// whose storage may be in another argument list. class DerivedArgList final : public ArgList { … }; } // end namespace opt } // end namespace llvm #endif // LLVM_OPTION_ARGLIST_H