MME2 changes - Propped commits from openmme/paging branch. Added scripts
for code gen

Change-Id: Ie55032217232214ac8544ca76ea34335205329e4
diff --git a/scripts/SMCodeGen/templates/stateMachineTmpls/enum.tt b/scripts/SMCodeGen/templates/stateMachineTmpls/enum.tt
new file mode 100644
index 0000000..dd6c455
--- /dev/null
+++ b/scripts/SMCodeGen/templates/stateMachineTmpls/enum.tt
@@ -0,0 +1,85 @@
+[%- stateList = [] %]
+[%- eventList = [] %]
+[%- actionList = [] %]
+[%- FOREACH ProcedureList = TemplateInputVar %]
+    [%- FOREACH Procedure = ProcedureList %]
+        [%- FOREACH State = Procedure.States %]
+            [%- stateList.push(State.Name) %]
+            [%- FOREACH Event = State.Events %]
+                [%- eventList.push(Event.Name) %]
+                [%- actionList = actionList.merge(Event.Actions) %]
+            [%- END %]
+        [%- END %]
+    [%- END %]
+[%- END %]
+[%- stateList = stateList.unique.sort %]
+[%- eventList = eventList.unique.sort %]
+[%- actionList = actionList.unique.sort -%] 
+/*
+ * Copyright 2019-present, Infosys Limited.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef SM_ENUMS_H
+#define SM_ENUMS_H
+/**************************************
+ * 
+ * This is an auto generated file.
+ * Please do not edit this file.
+ * All edits to be made through template source file
+ * <TOP-DIR/scripts/SMCodeGen/templates/stateMachineTmpls/enum.tt>
+ **************************************/
+ 
+enum State_e
+{
+    [%- FOREACH state = stateList%] 
+    [% state %],[% END %]
+    END_STATE
+};
+
+static constexpr const char* States[] =
+{
+    [%- FOREACH state = stateList%]
+    "[% state %]",[%END%]
+    "END_STATE"
+};
+
+enum Event_e
+{
+    [%- FOREACH event = eventList%]
+    [% event %],[%END%]
+    END_EVENT
+};
+
+static constexpr const char* Events[] =
+{
+    [%- FOREACH event = eventList%]
+    "[% event %]",[%END%]
+    "END_EVENT"
+};
+
+enum Action_e
+{
+    [%- FOREACH actions = actionList%]
+    [% actions %],[% END %]
+    END_ACTION
+};
+
+static constexpr const char* Actions[] =
+{
+    [%- FOREACH action = actionList%]
+    "[% action %]",[%END%]
+    "END_ACTION"
+};
+
+#endif
\ No newline at end of file