1include "llvm/Option/OptParser.td" 2 3multiclass Long<string name, string help> { 4 def NAME: Separate<["--"], name>; 5 def NAME # _eq: Joined<["--"], name # "=">, Alias<!cast<Separate>(NAME)>, 6 HelpText<help>; 7} 8 9multiclass LongAlias<string name, Option orig> { 10 def NAME: Separate<["--"], name>, Alias<orig>; 11 def NAME # _eq: Joined<["--"], name # "=">, Alias<orig>; 12} 13 14multiclass LongShort<string short, string long, string help> { 15 def NAME: Separate<["--"], long>; 16 def NAME # _eq: Joined<["--"], long # "=">, Alias<!cast<Separate>(NAME)>, 17 HelpText<help>; 18 def NAME # _short: JoinedOrSeparate<["-"], short>, Alias<!cast<Separate>(NAME)>; 19} 20 21multiclass F<string short, string long, string help> { 22 def NAME: Flag<["-"], short>; 23 def NAME # _long: Flag<["--"], long>, Alias<!cast<Flag>(NAME)>, 24 HelpText<help>; 25} 26 27defm input : LongShort<"i", "input", "Input file">; 28 29defm output : LongShort<"o", "output", "Output file">; 30 31defm input_format : LongShort<"J", "input-format", "Input format">; 32 33defm output_format : LongShort<"O", "output-format", "Output format">; 34 35defm preprocessor : Long<"preprocessor", "Custom preprocessor command">; 36defm preprocessor_arg : Long<"preprocessor-arg", "Preprocessor command argument">; 37 38defm target : LongShort<"F", "target", "Target BFD format name">; 39 40defm include_dir : LongShort<"I", "include-dir", "Include directory">; 41defm include_alias : LongAlias<"include", include_dir>; 42 43defm define : LongShort<"D", "define", "Define to pass to the preprocessor">; 44 45defm undef : LongShort<"U", "undefine", "Undefine to pass to the preprocessor">; 46 47defm codepage : LongShort<"c", "codepage", "Default codepage to use">; 48 49defm language : LongShort<"l", "language", "Default language to use (0x0-0xffff)">; 50 51defm verbose : F<"v", "verbose", "Enable verbose output">; 52defm version : F<"V", "version", "Display version">; 53 54defm help : F<"h", "help", "Display this message and exit">; 55 56// Print (but do not run) the commands to run for preprocessing 57def _HASH_HASH_HASH : Flag<["-"], "###">; 58 59def no_preprocess : Flag<["--"], "no-preprocess">; 60 61// Unimplemented options for compatibility 62def use_temp_file: Flag<["--"], "use-temp-file">; 63