Lines Matching defs:Option
1 //===- OptTable.cpp - Option Table Implementation -------------------------===//
9 #include "llvm/Option/OptTable.h"
12 #include "llvm/Option/Arg.h"
13 #include "llvm/Option/ArgList.h"
14 #include "llvm/Option/OptSpecifier.h"
15 #include "llvm/Option/Option.h"
63 ((A.Kind == Option::JoinedClass) ^ (B.Kind == Option::JoinedClass)) &&
65 return B.Kind == Option::JoinedClass;
78 OptSpecifier::OptSpecifier(const Option *Opt) : ID(Opt->getID()) {}
91 if (Kind == Option::InputClass) {
94 } else if (Kind == Option::UnknownClass) {
97 } else if (Kind != Option::GroupClass) {
108 Option::OptionClass Kind = (Option::OptionClass) getInfo(i + 1).Kind;
109 assert((Kind != Option::InputClass && Kind != Option::UnknownClass &&
110 Kind != Option::GroupClass) &&
138 const Option OptTable::getOption(OptSpecifier Opt) const {
141 return Option(nullptr, nullptr);
143 return Option(&getInfo(id), this);
174 // Returns true if one of the Prefixes + In.Names matches Option
177 const OptTable::Info &In, StringRef Option) {
179 if (Option.consume_back(Name))
181 if (Option == StrTable[PrefixOffset])
190 OptTable::suggestValueCompletions(StringRef Option, StringRef Arg) const {
194 if (!In.Values || !optionMatches(*StrTable, PrefixesTable, In, Option))
235 unsigned OptTable::findNearest(StringRef Option, std::string &NearestString,
240 Option, NearestString, MinimumLength, MaximumDistance,
246 unsigned OptTable::findNearest(StringRef Option, std::string &NearestString,
251 Option, NearestString, MinimumLength, MaximumDistance,
262 StringRef Option, std::string &NearestString, unsigned MinimumLength,
265 assert(!Option.empty());
300 std::tie(NormalizedName, RHS) = Option.split(Last);
301 if (Option.find(Last) == NormalizedName.size())
304 NormalizedName = Option;
375 Option Opt(Start, this);
384 if (ArgSize == 2 && Opt.getKind() == Option::FlagClass)
392 Option Opt(Fallback, this);
418 return internalParseOneArg(Args, Index, [VisibilityMask](const Option &Opt) {
427 Args, Index, [FlagsToInclude, FlagsToExclude](const Option &Opt) {
438 std::function<bool(const Option &)> ExcludeOption) const {
474 Option Opt(Start, this);
506 [VisibilityMask](const Option &Opt) {
518 [FlagsToInclude, FlagsToExclude](const Option &Opt) {
530 std::function<bool(const Option &)> ExcludeOption) const {
610 const Option O = Opts.getOption(Id);
615 case Option::GroupClass: case Option::InputClass: case Option::UnknownClass:
618 case Option::MultiArgClass:
632 case Option::FlagClass:
635 case Option::ValuesClass:
638 case Option::SeparateClass: case Option::JoinedOrSeparateClass:
639 case Option::RemainingArgsClass: case Option::RemainingArgsJoinedClass:
642 case Option::JoinedClass: case Option::CommaJoinedClass:
643 case Option::JoinedAndSeparateClass:
676 const std::string &Option = Opt.Name;
678 int FirstLinePad = OptionFieldWidth - int(Option.size());
679 OS.indent(InitialPad) << Option;
757 if (getOptionKind(Id) == Option::GroupClass)
771 const Option Alias = getOption(Id).getAlias();