summaryrefslogtreecommitdiff
path: root/src/ToolBox/superpmi/superpmi/commandline.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/ToolBox/superpmi/superpmi/commandline.h')
-rw-r--r--src/ToolBox/superpmi/superpmi/commandline.h74
1 files changed, 74 insertions, 0 deletions
diff --git a/src/ToolBox/superpmi/superpmi/commandline.h b/src/ToolBox/superpmi/superpmi/commandline.h
new file mode 100644
index 0000000000..051eb6def2
--- /dev/null
+++ b/src/ToolBox/superpmi/superpmi/commandline.h
@@ -0,0 +1,74 @@
+//
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+//
+
+//----------------------------------------------------------
+// CommandLine.h - tiny very specific command line parser
+//----------------------------------------------------------
+#ifndef _CommandLine
+#define _CommandLine
+
+class CommandLine
+{
+public:
+
+ class Options
+ {
+ public:
+ Options() :
+ nameOfJit(nullptr),
+ nameOfJit2(nullptr),
+ nameOfInputMethodContextFile(nullptr),
+ writeLogFile(nullptr),
+ reproName(nullptr),
+ breakOnError(false),
+ breakOnAssert(false),
+ applyDiff(false),
+ parallel(false),
+ useCoreDisTools(false),
+ skipCleanup(false),
+ workerCount(-1),
+ indexCount(-1),
+ indexes(nullptr),
+ hash(nullptr),
+ methodStatsTypes(nullptr),
+ mclFilename(nullptr),
+ diffMCLFilename(nullptr),
+ targetArchitecture(nullptr),
+ compileList(nullptr),
+ offset(-1),
+ increment(-1)
+ {
+ }
+
+ char* nameOfJit;
+ char* nameOfJit2;
+ char* nameOfInputMethodContextFile;
+ char* writeLogFile;
+ char* reproName;
+ bool breakOnError;
+ bool breakOnAssert;
+ bool applyDiff;
+ bool parallel; // User specified to use /parallel mode.
+ bool useCoreDisTools; // Use CoreDisTools library instead of Msvcdis
+ bool skipCleanup; // In /parallel mode, do we skip cleanup of temporary files? Used for debugging /parallel.
+ int workerCount; // Number of workers to use for /parallel mode. -1 (or 1) means don't use parallel mode.
+ int indexCount; // If indexCount is -1 and hash points to nullptr it means compile all.
+ int* indexes;
+ char* hash;
+ char* methodStatsTypes;
+ char* mclFilename;
+ char* diffMCLFilename;
+ char* targetArchitecture;
+ char* compileList;
+ int offset;
+ int increment;
+ };
+
+ static bool Parse(int argc, char* argv[], /* OUT */ Options* o);
+
+private:
+ static void DumpHelp(const char* program);
+};
+#endif