//===-- CommandLine.cpp - Command line parser implementation --------------===////// The LLVM Compiler Infrastructure//// This file is distributed under the University of Illinois Open Source// License. See LICENSE.TXT for details.////===----------------------------------------------------------------------===////// This class implements a command line argument processor that is useful when// creating a tool. It provides a simple, minimalistic interface that is easily// extensible and supports nonlocal (library) command line options.//// Note that rather than trying to figure out what this code does, you could try// reading the library documentation located in docs/CommandLine.html////===----------------------------------------------------------------------===//#include"llvm/Support/CommandLine.h"#include"llvm/ADT/OwningPtr.h"#include"llvm/ADT/SmallPtrSet.h"#include"llvm/ADT/SmallString.h"#include"llvm/ADT/StringMap.h"#include"llvm/ADT/Twine.h"#include"llvm/Config/config.h"#include"llvm/Support/Debug.h"#include"llvm/Support/ErrorHandling.h"#include"llvm/Support/Host.h"#include"llvm/Support/ManagedStatic.h"#include"llvm/Support/MemoryBuffer.h"#include"llvm/Support/Path.h"#include"llvm/Support/raw_ostream.h"#include"llvm/Support/system_error.h"#include<cerrno>#include<cstdlib>usingnamespacellvm;usingnamespacecl;//===----------------------------------------------------------------------===//// Template instantiations and anchors.//namespacellvm{namespacecl{TEMPLATE_INSTANTIATION(classbasic_parser<bool>);TEMPLATE_INSTANTIATION(classbasic_parser<boolOrDefault>);TEMPLATE_INSTANTIATION(classbasic_parser<int>);TEMPLATE_INSTANTIATION(classbasic_parser<unsigned>);TEMPLATE_INSTANTIATION(classbasic_parser<unsignedlonglong>);TEMPLATE_INSTANTIATION(classbasic_parser<double>);TEMPLATE_INSTANTIATION(classbasic_parser<float>);TEMPLATE_INSTANTIATION(classbas