diff --git a/src/bin/jbc2mpl b/src/bin/jbc2mpl index ed11e3a0b6ea16dcd537ab18b3256e8ef71fdda8..ec83475285712225594e5719e35631a7044ca711 100755 Binary files a/src/bin/jbc2mpl and b/src/bin/jbc2mpl differ diff --git a/src/bin/maple b/src/bin/maple index 1d4d000c451ea1ec64a0fcea30710c3c6046e86e..579c530236d0bdf8e7c01fb6eac16857a933dd44 100755 Binary files a/src/bin/maple and b/src/bin/maple differ diff --git a/src/maple_driver/include/option_parser.h b/src/maple_driver/include/option_parser.h index 03dece32e57e03317a018073140b6d8bd08e9f5f..14461393ad63790e58cb8d8749e497365efa9ab3 100644 --- a/src/maple_driver/include/option_parser.h +++ b/src/maple_driver/include/option_parser.h @@ -31,7 +31,8 @@ enum ArgCheckPolicy { kArgCheckPolicyNone, kArgCheckPolicyOptional, kArgCheckPolicyRequired, - kArgCheckPolicyNumeric + kArgCheckPolicyNumeric, + kArgCheckPolicyBool }; struct ExtraOption { @@ -90,7 +91,7 @@ struct Descriptor { const char * const exeName; // option key mapping to target tool - const ExtraOption extras[kMaxExtraOptions]; + const std::vector extras; #endif bool IsEnabledForCurrentBuild() const { @@ -203,6 +204,12 @@ class OptionParser { return nonOptionsArgs.size(); } +#ifdef OPTION_PARSER_EXTRAOPT + void InsertExtraUsage(const Descriptor &usage); +#endif + + void CreateNoOption(const Descriptor &usage); + void PrintUsage() const; #ifdef OPTION_PARSER_EXTRAOPT @@ -223,7 +230,7 @@ class OptionParser { } } bool CheckSpecialOption(const std::string &option, std::string &key, std::string &value); - const Descriptor *rawUsages; + std::vector rawUsages; std::multimap usages; std::vector