diff options
Diffstat (limited to 'include/clang/Driver/OptParser.td')
-rw-r--r-- | include/clang/Driver/OptParser.td | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/include/clang/Driver/OptParser.td b/include/clang/Driver/OptParser.td index 9e6d5b9..d16a2a7 100644 --- a/include/clang/Driver/OptParser.td +++ b/include/clang/Driver/OptParser.td @@ -88,6 +88,9 @@ def NoForward : OptionFlag; // CC1Option - This option should be accepted by clang -cc1. def CC1Option : OptionFlag; +// NoDriverOption - This option should not be accepted by the driver. +def NoDriverOption : OptionFlag; + // Define the option group class. class OptionGroup<string name> { @@ -99,8 +102,9 @@ class OptionGroup<string name> { // Define the option class. -class Option<string name, OptionKind kind> { +class Option<list<string> prefixes, string name, OptionKind kind> { string EnumName = ?; // Uses the def name if undefined. + list<string> Prefixes = prefixes; string Name = name; OptionKind Kind = kind; // Used by MultiArg option kind. @@ -114,15 +118,22 @@ class Option<string name, OptionKind kind> { // Helpers for defining options. -class Flag<string name> : Option<name, KIND_FLAG>; -class Joined<string name> : Option<name, KIND_JOINED>; -class Separate<string name> : Option<name, KIND_SEPARATE>; -class CommaJoined<string name> : Option<name, KIND_COMMAJOINED>; -class MultiArg<string name, int numargs> : Option<name, KIND_MULTIARG> { +class Flag<list<string> prefixes, string name> + : Option<prefixes, name, KIND_FLAG>; +class Joined<list<string> prefixes, string name> + : Option<prefixes, name, KIND_JOINED>; +class Separate<list<string> prefixes, string name> + : Option<prefixes, name, KIND_SEPARATE>; +class CommaJoined<list<string> prefixes, string name> + : Option<prefixes, name, KIND_COMMAJOINED>; +class MultiArg<list<string> prefixes, string name, int numargs> + : Option<prefixes, name, KIND_MULTIARG> { int NumArgs = numargs; } -class JoinedOrSeparate<string name> : Option<name, KIND_JOINED_OR_SEPARATE>; -class JoinedAndSeparate<string name> : Option<name, KIND_JOINED_AND_SEPARATE>; +class JoinedOrSeparate<list<string> prefixes, string name> + : Option<prefixes, name, KIND_JOINED_OR_SEPARATE>; +class JoinedAndSeparate<list<string> prefixes, string name> + : Option<prefixes, name, KIND_JOINED_AND_SEPARATE>; // Mix-ins for adding optional attributes. @@ -137,5 +148,5 @@ class MetaVarName<string name> { string MetaVarName = name; } // FIXME: Have generator validate that these appear in correct position (and // aren't duplicated). -def INPUT : Option<"<input>", KIND_INPUT>, Flags<[DriverOption,CC1Option]>; -def UNKNOWN : Option<"<unknown>", KIND_UNKNOWN>; +def INPUT : Option<[], "<input>", KIND_INPUT>, Flags<[DriverOption,CC1Option]>; +def UNKNOWN : Option<[], "<unknown>", KIND_UNKNOWN>; |