# HG changeset patch # User Kaito Tokumori # Date 1444124960 -32400 # Node ID af04833f766719a4b2dcd13e073bf537ff2356c8 # Parent 9bea91fdd283213b2e5d735712f6da00965d163a context_creator: create UniqueData ID diff -r 9bea91fdd283 -r af04833f7667 context_creator/context_creator.py --- 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()