blob: ac01d6d93b2b6330cb33b9cb5ec00c0faa8f91b3 [file] [log] [blame]
Michael J. Spencer503f5a52012-12-05 00:29:32 +00001include "llvm/Option/OptParser.td"
2
Reid Klecknerada6f662013-07-19 18:05:13 +00003def OptFlag1 : OptionFlag;
4def OptFlag2 : OptionFlag;
5def OptFlag3 : OptionFlag;
6
Justin Bogneref26d802023-08-14 14:07:04 -07007def SubtoolVis : OptionVisibility;
8
Reid Klecknerada6f662013-07-19 18:05:13 +00009def A : Flag<["-"], "A">, HelpText<"The A option">, Flags<[OptFlag1]>;
Fangrui Song38a32642020-07-17 09:18:24 -070010def AB : Flag<["-"], "AB">;
Reid Klecknerada6f662013-07-19 18:05:13 +000011def B : Joined<["-"], "B">, HelpText<"The B option">, MetaVarName<"B">, Flags<[OptFlag2]>;
12def C : Separate<["-"], "C">, HelpText<"The C option">, MetaVarName<"C">, Flags<[OptFlag1]>;
13def SLASH_C : Separate<["/", "-"], "C">, HelpText<"The C option">, MetaVarName<"C">, Flags<[OptFlag3]>;
Michael J. Spencer503f5a52012-12-05 00:29:32 +000014def D : CommaJoined<["-"], "D">, HelpText<"The D option">, MetaVarName<"D">;
Reid Klecknerada6f662013-07-19 18:05:13 +000015def E : MultiArg<["-"], "E", 2>, Flags<[OptFlag1, OptFlag2]>;
Michael J. Spencer503f5a52012-12-05 00:29:32 +000016def F : JoinedOrSeparate<["-"], "F">, HelpText<"The F option">, MetaVarName<"F">;
17def G : JoinedAndSeparate<["-"], "G">, HelpText<"The G option">, MetaVarName<"G">;
18
Reid Klecknerada6f662013-07-19 18:05:13 +000019def Ceq : Joined<["-", "--"], "C=">, Alias<C>, Flags<[OptFlag1]>;
Michael J. Spencer503f5a52012-12-05 00:29:32 +000020
21def H : Flag<["-"], "H">, Flags<[HelpHidden]>;
Hans Wennborg04aa1942013-07-22 16:18:13 +000022
23def my_group : OptionGroup<"my group">;
24def I : Flag<["-"], "I">, Alias<H>, Group<my_group>;
Hans Wennborgb215fc62013-07-31 22:44:41 +000025
26def J : Flag<["-"], "J">, Alias<B>, AliasArgs<["foo"]>;
27def Joo : Flag<["-"], "Joo">, Alias<B>, AliasArgs<["bar"]>;
Hans Wennborg1656b7d2013-08-13 21:09:50 +000028
Hans Wennborgcecaefa2015-05-04 18:00:13 +000029def K : Flag<["-"], "K">, Alias<B>;
30
Hans Wennborg1656b7d2013-08-13 21:09:50 +000031def Slurp : Option<["-"], "slurp", KIND_REMAINING_ARGS>;
Hans Wennborgab4c9712016-04-15 00:23:30 +000032
33def SlurpJoined : Option<["-"], "slurpjoined", KIND_REMAINING_ARGS_JOINED>;
Brian Gesiak0e1c46d2018-01-05 17:10:39 +000034
35def Blorp : Flag<["-", "--"], "blorp">, HelpText<"The blorp option">, Flags<[OptFlag1]>;
Nico Weberc3dc54f2019-04-30 17:46:00 +000036def Blarn : Flag<["--", "-"], "blarn">, HelpText<"The blarn option">, Flags<[OptFlag1]>;
Brian Gesiak0e1c46d2018-01-05 17:10:39 +000037def Cramb : Joined<["/"], "cramb:">, HelpText<"The cramb option">, MetaVarName<"CRAMB">, Flags<[OptFlag1]>;
38def Doopf1 : Flag<["-"], "doopf1">, HelpText<"The doopf1 option">, Flags<[OptFlag1]>;
39def Doopf2 : Flag<["-"], "doopf2">, HelpText<"The doopf2 option">, Flags<[OptFlag2]>;
Justin Bogneref26d802023-08-14 14:07:04 -070040def Xyzzy1 : Flag<["-"], "xyzzy1">, HelpText<"The xyzzy1 option">, Visibility<[SubtoolVis]>;
41def Xyzzy2 : Flag<["-"], "xyzzy2">, HelpText<"The xyzzy2 option">, Visibility<[DefaultVis]>;
Brian Gesiak0e1c46d2018-01-05 17:10:39 +000042def Ermgh : Joined<["--"], "ermgh">, HelpText<"The ermgh option">, MetaVarName<"ERMGH">, Flags<[OptFlag1]>;
Brian Gesiak18e0dba2018-01-09 19:38:04 +000043def Fjormp : Flag<["--"], "fjormp">, HelpText<"The fjormp option">, Flags<[OptFlag1]>;
Nico Weber91b2d622019-05-01 14:46:17 +000044
Nico Weber5a5a34e2019-05-01 16:45:15 +000045def Glorrmp_eq : Flag<["--"], "glorrmp=">;
46
47def Blurmpq : Flag<["--"], "blurmp">;
48def Blurmpq_eq : Flag<["--"], "blurmp=">;
Nico Weber91b2d622019-05-01 14:46:17 +000049
Justin Bogneref26d802023-08-14 14:07:04 -070050def Q : Flag<["-"], "Q">, Visibility<[SubtoolVis]>;
51def R : Flag<["-"], "R">, Visibility<[DefaultVis, SubtoolVis]>;
52
Jan Svobodad811ed72021-01-13 12:50:19 +010053class XOpts<string base> : KeyPathAndMacro<"X->", base> {}
54
Jan Svoboda6e1267d2020-11-11 11:05:24 +010055def marshalled_flag_d : Flag<["-"], "marshalled-flag-d">,
Jan Svobodad811ed72021-01-13 12:50:19 +010056 MarshallingInfoFlag<XOpts<"MarshalledFlagD">>;
Jan Svoboda6e1267d2020-11-11 11:05:24 +010057def marshalled_flag_c : Flag<["-"], "marshalled-flag-c">,
Jan Svobodad811ed72021-01-13 12:50:19 +010058 MarshallingInfoFlag<XOpts<"MarshalledFlagC">>,
Jan Svoboda334a51e2021-01-26 09:21:55 +010059 ImpliedByAnyOf<[marshalled_flag_d.KeyPath], "true">;
Jan Svoboda6e1267d2020-11-11 11:05:24 +010060def marshalled_flag_b : Flag<["-"], "marshalled-flag-b">,
Jan Svobodad811ed72021-01-13 12:50:19 +010061 MarshallingInfoFlag<XOpts<"MarshalledFlagB">>,
Jan Svoboda334a51e2021-01-26 09:21:55 +010062 ImpliedByAnyOf<[marshalled_flag_d.KeyPath], "true">;
Jan Svoboda6e1267d2020-11-11 11:05:24 +010063def marshalled_flag_a : Flag<["-"], "marshalled-flag-a">,
Jan Svobodad811ed72021-01-13 12:50:19 +010064 MarshallingInfoFlag<XOpts<"MarshalledFlagA">>,
Jan Svoboda334a51e2021-01-26 09:21:55 +010065 ImpliedByAnyOf<[marshalled_flag_c.KeyPath, marshalled_flag_b.KeyPath]>;