@@ -108,13 +108,8 @@ class Subcommand<string name, string helpText, string usage = "">
108108 string Usage = usage;
109109}
110110
111- // Compile time representation for top level command (aka toolname).
112- // Offers backward compatibility with existing Option class definitions before
113- // introduction of commandGroup in Option class to support subcommands.
114- def TopLevelCommand : Command<"TopLevelCommand">;
115-
116111class Option<list<string> prefixes, string name, OptionKind kind,
117- list<Command> commandGroup = [TopLevelCommand ]> {
112+ list<Command> commandGroup = []> {
118113 string EnumName = ?; // Uses the def name if undefined.
119114 list<string> Prefixes = prefixes;
120115 string Name = name;
@@ -150,28 +145,27 @@ class Option<list<string> prefixes, string name, OptionKind kind,
150145
151146// Helpers for defining options.
152147
153- class Flag<list<string> prefixes, string name,
154- list<Command> commandGroup = [TopLevelCommand]>
148+ class Flag<list<string> prefixes, string name, list<Command> commandGroup = []>
155149 : Option<prefixes, name, KIND_FLAG, commandGroup>;
156150class Joined<list<string> prefixes, string name,
157- list<Command> commandGroup = [TopLevelCommand ]>
151+ list<Command> commandGroup = []>
158152 : Option<prefixes, name, KIND_JOINED, commandGroup>;
159153class Separate<list<string> prefixes, string name,
160- list<Command> commandGroup = [TopLevelCommand ]>
154+ list<Command> commandGroup = []>
161155 : Option<prefixes, name, KIND_SEPARATE, commandGroup>;
162156class CommaJoined<list<string> prefixes, string name,
163- list<Command> commandGroup = [TopLevelCommand ]>
157+ list<Command> commandGroup = []>
164158 : Option<prefixes, name, KIND_COMMAJOINED, commandGroup>;
165159class MultiArg<list<string> prefixes, string name, int numargs,
166- list<Command> commandGroup = [TopLevelCommand ]>
160+ list<Command> commandGroup = []>
167161 : Option<prefixes, name, KIND_MULTIARG, commandGroup> {
168162 int NumArgs = numargs;
169163}
170164class JoinedOrSeparate<list<string> prefixes, string name,
171- list<Command> commandGroup = [TopLevelCommand ]>
165+ list<Command> commandGroup = []>
172166 : Option<prefixes, name, KIND_JOINED_OR_SEPARATE, commandGroup>;
173167class JoinedAndSeparate<list<string> prefixes, string name,
174- list<Command> commandGroup = [TopLevelCommand ]>
168+ list<Command> commandGroup = []>
175169 : Option<prefixes, name, KIND_JOINED_AND_SEPARATE, commandGroup>;
176170
177171// Mix-ins for adding optional attributes.
@@ -295,7 +289,7 @@ class ValueExtractor<code extractor> { code ValueExtractor = extractor; }
295289
296290// FIXME: Have generator validate that these appear in correct position (and
297291// aren't duplicated).
298- def INPUT : Option<[], "<input>", KIND_INPUT, [TopLevelCommand] >;
299- def UNKNOWN : Option<[], "<unknown>", KIND_UNKNOWN, [TopLevelCommand] >;
292+ def INPUT : Option<[], "<input>", KIND_INPUT>;
293+ def UNKNOWN : Option<[], "<unknown>", KIND_UNKNOWN>;
300294
301295#endif // LLVM_OPTION_OPTPARSER_TD
0 commit comments