24
24
#include " llvm/Option/OptTable.h"
25
25
#include " llvm/Option/Option.h"
26
26
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
-
40
27
// . The IDs of each option
41
28
enum class OptionID {
42
29
Opt_INVALID = 0 ,
@@ -103,17 +90,15 @@ struct RawOption {
103
90
std::vector<llvm::StringRef> prefixes;
104
91
const char *spelling;
105
92
std::string idName;
106
- OptionKind kind;
93
+ llvm::opt::Option::OptionClass kind;
107
94
OptionID group;
108
95
OptionID alias;
109
96
unsigned flags;
110
97
const char *helpText;
111
98
const char *metaVar;
112
99
unsigned numArgs;
113
100
114
- bool isGroup () const {
115
- return kind == OptionKind::Group;
116
- }
101
+ bool isGroup () const { return kind == llvm::opt::Option::GroupClass; }
117
102
118
103
bool isAlias () const {
119
104
return alias != OptionID::Opt_INVALID;
@@ -176,7 +161,7 @@ static const RawOption rawOptions[] = {
176
161
getPrefixes (PREFIXES_OFFSET), \
177
162
getPrefixedName (PREFIXED_NAME_OFFSET), \
178
163
swiftify (#ID), \
179
- OptionKind:: KIND, \
164
+ llvm::opt::Option:: KIND##Class, \
180
165
OptionID::Opt_##GROUP, \
181
166
OptionID::Opt_##ALIAS, \
182
167
FLAGS, \
@@ -219,7 +204,7 @@ void forEachOption(std::function<void(const RawOption &)> fn) {
219
204
if (rawOption.isGroup ())
220
205
continue ;
221
206
222
- if (rawOption.kind == OptionKind::Unknown )
207
+ if (rawOption.kind == llvm::opt::Option::UnknownClass )
223
208
continue ;
224
209
225
210
fn (rawOption);
@@ -313,41 +298,46 @@ int makeOptions_main() {
313
298
314
299
out << " , " ;
315
300
switch (option.kind ) {
316
- case OptionKind::Input :
301
+ case llvm::opt::Option::InputClass :
317
302
out << " .input" ;
318
303
break ;
319
304
320
- case OptionKind::CommaJoined :
305
+ case llvm::opt::Option::CommaJoinedClass :
321
306
out << " .commaJoined" ;
322
307
break ;
323
308
324
- case OptionKind::Flag :
309
+ case llvm::opt::Option::FlagClass :
325
310
out << " .flag" ;
326
311
break ;
327
312
328
- case OptionKind::Joined :
313
+ case llvm::opt::Option::JoinedClass :
329
314
out << " .joined" ;
330
315
break ;
331
316
332
- case OptionKind::JoinedOrSeparate :
317
+ case llvm::opt::Option::JoinedOrSeparateClass :
333
318
out << " .joinedOrSeparate" ;
334
319
break ;
335
320
336
- case OptionKind::RemainingArgs :
321
+ case llvm::opt::Option::RemainingArgsClass :
337
322
out << " .remaining" ;
338
323
break ;
339
324
340
- case OptionKind::Separate :
325
+ case llvm::opt::Option::SeparateClass :
341
326
out << " .separate" ;
342
327
break ;
343
328
344
- case OptionKind::MultiArg :
329
+ case llvm::opt::Option::MultiArgClass :
345
330
out << " .multiArg" ;
346
331
break ;
347
332
348
- case OptionKind::Group :
349
- case OptionKind::Unknown :
333
+ case llvm::opt::Option::GroupClass :
334
+ case llvm::opt::Option::UnknownClass :
350
335
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" );
351
341
}
352
342
353
343
if (option.isAlias ()) {
@@ -357,7 +347,7 @@ int makeOptions_main() {
357
347
out << " , alias: Option." << option.idName ;
358
348
}
359
349
360
- if (option.flags != 0 || option.kind == OptionKind::Input ) {
350
+ if (option.flags != 0 || option.kind == llvm::opt::Option::InputClass ) {
361
351
bool anyEmitted = false ;
362
352
auto emitFlag = [&](const char *name) {
363
353
if (anyEmitted) {
@@ -384,7 +374,7 @@ int makeOptions_main() {
384
374
emitFlagIf (AutolinkExtractOption, " .autolinkExtract" );
385
375
emitFlagIf (ModuleWrapOption, " .moduleWrap" );
386
376
emitFlagIf (SwiftSynthesizeInterfaceOption, " .synthesizeInterface" );
387
- if (option.kind == OptionKind::Input )
377
+ if (option.kind == llvm::opt::Option::InputClass )
388
378
emitFlag (" .argumentIsPath" );
389
379
else
390
380
emitFlagIf (ArgumentIsPath, " .argumentIsPath" );
@@ -404,7 +394,7 @@ int makeOptions_main() {
404
394
if (option.group != OptionID::Opt_INVALID) {
405
395
out << " , group: ." << groups[groupIndexByID[option.group ]].id ;
406
396
}
407
- if (option.kind == OptionKind::MultiArg ) {
397
+ if (option.kind == llvm::opt::Option::MultiArgClass ) {
408
398
out << " , numArgs: " << option.numArgs ;
409
399
}
410
400
out << " )\n " ;
0 commit comments