2424#include " llvm/Option/OptTable.h"
2525#include " llvm/Option/Option.h"
2626
27- enum class OptionKind {
28- Group = 0 ,
29- Input,
30- Unknown,
31- Flag,
32- Joined,
33- Separate,
34- RemainingArgs,
35- CommaJoined,
36- JoinedOrSeparate,
37- MultiArg,
38- };
39-
4027// . The IDs of each option
4128enum class OptionID {
4229 Opt_INVALID = 0 ,
@@ -103,17 +90,15 @@ struct RawOption {
10390 std::vector<llvm::StringRef> prefixes;
10491 const char *spelling;
10592 std::string idName;
106- OptionKind kind;
93+ llvm::opt::Option::OptionClass kind;
10794 OptionID group;
10895 OptionID alias;
10996 unsigned flags;
11097 const char *helpText;
11198 const char *metaVar;
11299 unsigned numArgs;
113100
114- bool isGroup () const {
115- return kind == OptionKind::Group;
116- }
101+ bool isGroup () const { return kind == llvm::opt::Option::GroupClass; }
117102
118103 bool isAlias () const {
119104 return alias != OptionID::Opt_INVALID;
@@ -176,7 +161,7 @@ static const RawOption rawOptions[] = {
176161 getPrefixes (PREFIXES_OFFSET), \
177162 getPrefixedName (PREFIXED_NAME_OFFSET), \
178163 swiftify (#ID), \
179- OptionKind:: KIND, \
164+ llvm::opt::Option:: KIND##Class, \
180165 OptionID::Opt_##GROUP, \
181166 OptionID::Opt_##ALIAS, \
182167 FLAGS, \
@@ -219,7 +204,7 @@ void forEachOption(std::function<void(const RawOption &)> fn) {
219204 if (rawOption.isGroup ())
220205 continue ;
221206
222- if (rawOption.kind == OptionKind::Unknown )
207+ if (rawOption.kind == llvm::opt::Option::UnknownClass )
223208 continue ;
224209
225210 fn (rawOption);
@@ -313,41 +298,46 @@ int makeOptions_main() {
313298
314299 out << " , " ;
315300 switch (option.kind ) {
316- case OptionKind::Input :
301+ case llvm::opt::Option::InputClass :
317302 out << " .input" ;
318303 break ;
319304
320- case OptionKind::CommaJoined :
305+ case llvm::opt::Option::CommaJoinedClass :
321306 out << " .commaJoined" ;
322307 break ;
323308
324- case OptionKind::Flag :
309+ case llvm::opt::Option::FlagClass :
325310 out << " .flag" ;
326311 break ;
327312
328- case OptionKind::Joined :
313+ case llvm::opt::Option::JoinedClass :
329314 out << " .joined" ;
330315 break ;
331316
332- case OptionKind::JoinedOrSeparate :
317+ case llvm::opt::Option::JoinedOrSeparateClass :
333318 out << " .joinedOrSeparate" ;
334319 break ;
335320
336- case OptionKind::RemainingArgs :
321+ case llvm::opt::Option::RemainingArgsClass :
337322 out << " .remaining" ;
338323 break ;
339324
340- case OptionKind::Separate :
325+ case llvm::opt::Option::SeparateClass :
341326 out << " .separate" ;
342327 break ;
343328
344- case OptionKind::MultiArg :
329+ case llvm::opt::Option::MultiArgClass :
345330 out << " .multiArg" ;
346331 break ;
347332
348- case OptionKind::Group :
349- case OptionKind::Unknown :
333+ case llvm::opt::Option::GroupClass :
334+ case llvm::opt::Option::UnknownClass :
350335 assert (false && " Should have been filtered out" );
336+
337+ case llvm::opt::Option::ValuesClass:
338+ case llvm::opt::Option::JoinedAndSeparateClass:
339+ case llvm::opt::Option::RemainingArgsJoinedClass:
340+ assert (false && " Not implemented" );
351341 }
352342
353343 if (option.isAlias ()) {
@@ -357,7 +347,7 @@ int makeOptions_main() {
357347 out << " , alias: Option." << option.idName ;
358348 }
359349
360- if (option.flags != 0 || option.kind == OptionKind::Input ) {
350+ if (option.flags != 0 || option.kind == llvm::opt::Option::InputClass ) {
361351 bool anyEmitted = false ;
362352 auto emitFlag = [&](const char *name) {
363353 if (anyEmitted) {
@@ -384,7 +374,7 @@ int makeOptions_main() {
384374 emitFlagIf (AutolinkExtractOption, " .autolinkExtract" );
385375 emitFlagIf (ModuleWrapOption, " .moduleWrap" );
386376 emitFlagIf (SwiftSynthesizeInterfaceOption, " .synthesizeInterface" );
387- if (option.kind == OptionKind::Input )
377+ if (option.kind == llvm::opt::Option::InputClass )
388378 emitFlag (" .argumentIsPath" );
389379 else
390380 emitFlagIf (ArgumentIsPath, " .argumentIsPath" );
@@ -404,7 +394,7 @@ int makeOptions_main() {
404394 if (option.group != OptionID::Opt_INVALID) {
405395 out << " , group: ." << groups[groupIndexByID[option.group ]].id ;
406396 }
407- if (option.kind == OptionKind::MultiArg ) {
397+ if (option.kind == llvm::opt::Option::MultiArgClass ) {
408398 out << " , numArgs: " << option.numArgs ;
409399 }
410400 out << " )\n " ;
0 commit comments