changeset 14:af04833f7667

context_creator: create UniqueData ID
author Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
date Tue, 06 Oct 2015 18:49:20 +0900
parents 9bea91fdd283
children ea6c94f9840a
files context_creator/context_creator.py
diffstat 1 files changed, 15 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/context_creator/context_creator.py	Mon Oct 05 16:50:37 2015 +0900
+++ b/context_creator/context_creator.py	Tue Oct 06 18:49:20 2015 +0900
@@ -24,22 +24,28 @@
                         
     return parser.parse_args()
 
-# parse input file and create meta connection list
+# parse input file and create context
 def create_context(lines, file):
     code_list = []
+    data_list = []
     for l in lines:
-        # get code segment name except for stub and meta
+        # allocate code segment and data segment ID except for stub and meta
         if re.search(r"^ *__code",l) is not None:
             regexed_l = re.search(r"[a-zA-Z0-9_]+ *\(",l)
             cs_name = regexed_l.group(0).rstrip('(')
             if re.search(r"^ *meta_*|stub$",cs_name) is None:
                 code_list.append(cs_name.capitalize())
-        
+                args = l.split('(')[1].rsplit(')')[0].strip().split(',')
+                for arg in args:
+                    a = arg.split()
+                    aset = [a[0].strip(' *'),a[1].strip(' *')]
+                    if a[-1].strip() != 'context' and aset not in data_list:
+                        data_list.append(aset)
 
-    write_context(code_list, file)
+    write_context(code_list, data_list, file)
     
 
-def write_context(code_list, file):
+def write_context(code_list, data_list, file):
     file.write('/*-- created by script --*/\n')
     file.write('enum Code {\n')
     for c in code_list:
@@ -47,6 +53,10 @@
     file.write('    Exit,\n')
     file.write('};\n')
 
+    file.write('eunm UniqueData {\n')
+    for d in data_list:
+        file.write('    {0:s},\n'.format(d[1].capitalize()))
+    file.write('};\n')
 
 def main():
     args = get_args()