def main(): # auto_script parameters. if len(sys.argv) > 1: inputs = [ 'angle_format.py', 'angle_format_data.json', 'angle_format_map.json' ] outputs = ['Format_table_autogen.cpp', 'FormatID_autogen.h'] if sys.argv[1] == 'inputs': print ','.join(inputs) elif sys.argv[1] == 'outputs': print ','.join(outputs) else: print('Invalid script parameters') return 1 return 0 gl_to_angle = angle_format.load_forward_table('angle_format_map.json') angle_to_gl = angle_format.load_inverse_table('angle_format_map.json') data_source_name = 'angle_format_data.json' json_data = angle_format.load_json(data_source_name) all_angle = angle_to_gl.keys() angle_format_cases = parse_angle_format_table(all_angle, json_data, angle_to_gl) switch_data = gen_map_switch_string(gl_to_angle) output_cpp = template_autogen_inl.format( script_name=sys.argv[0], copyright_year=date.today().year, angle_format_info_cases=angle_format_cases, angle_format_switch=switch_data, data_source_name=data_source_name) with open('Format_table_autogen.cpp', 'wt') as out_file: out_file.write(output_cpp) out_file.close() enum_data = gen_enum_string(all_angle) num_angle_formats = len(all_angle) output_h = template_autogen_h.format(script_name=sys.argv[0], copyright_year=date.today().year, angle_format_enum=enum_data, data_source_name=data_source_name, num_angle_formats=num_angle_formats) with open('FormatID_autogen.h', 'wt') as out_file: out_file.write(output_h) out_file.close() return 0
def main(): # auto_script parameters. if len(sys.argv) > 1: inputs = ['angle_format.py', 'angle_format_data.json', 'angle_format_map.json'] outputs = ['Format_table_autogen.cpp', 'FormatID_autogen.h'] if sys.argv[1] == 'inputs': print ','.join(inputs) elif sys.argv[1] == 'outputs': print ','.join(outputs) else: print('Invalid script parameters') return 1 return 0 gl_to_angle = angle_format.load_forward_table('angle_format_map.json') angle_to_gl = angle_format.load_inverse_table('angle_format_map.json') data_source_name = 'angle_format_data.json' json_data = angle_format.load_json(data_source_name) all_angle = angle_to_gl.keys() angle_format_cases = parse_angle_format_table(all_angle, json_data, angle_to_gl) switch_data = gen_map_switch_string(gl_to_angle) output_cpp = template_autogen_inl.format( script_name=sys.argv[0], copyright_year=date.today().year, angle_format_info_cases=angle_format_cases, angle_format_switch=switch_data, data_source_name=data_source_name) with open('Format_table_autogen.cpp', 'wt') as out_file: out_file.write(output_cpp) out_file.close() enum_data = gen_enum_string(all_angle) num_angle_formats = len(all_angle) output_h = template_autogen_h.format( script_name=sys.argv[0], copyright_year=date.today().year, angle_format_enum=enum_data, data_source_name=data_source_name, num_angle_formats=num_angle_formats) with open('FormatID_autogen.h', 'wt') as out_file: out_file.write(output_h) out_file.close() return 0
case_template = """ case {gl_format}: return Format::ID::{angle_format}; """ def gen_map_switch_string(gl_to_angle): switch_data = ''; for gl_format in sorted(gl_to_angle.keys()): angle_format = gl_to_angle[gl_format] switch_data += case_template.format( gl_format=gl_format, angle_format=angle_format) switch_data += " default:\n" switch_data += " return Format::ID::NONE;" return switch_data; gl_to_angle = angle_format.load_forward_table('angle_format_map.json') angle_to_gl = angle_format.load_inverse_table('angle_format_map.json') data_source_name = 'angle_format_data.json' json_data = angle_format.load_json(data_source_name) all_angle = angle_to_gl.keys() angle_format_cases = parse_angle_format_table( all_angle, json_data, angle_to_gl) switch_data = gen_map_switch_string(gl_to_angle) output_cpp = template_autogen_inl.format( script_name = sys.argv[0], copyright_year = date.today().year, angle_format_info_cases = angle_format_cases, angle_format_switch = switch_data, data_source_name = data_source_name) with open('Format_table_autogen.cpp', 'wt') as out_file:
for format_id in sorted(all_angle): if format_id != "NONE": format_info = json_data[format_id] if format_id in json_data else {} table_data += json_to_table_data(format_id, format_info, angle_to_gl) return table_data def gen_enum_string(all_angle): enum_data = ' NONE' for format_id in sorted(all_angle): if format_id == 'NONE': continue enum_data += ',\n ' + format_id return enum_data gl_to_angle = angle_format.load_forward_table('angle_format_map.json') angle_to_gl = angle_format.load_inverse_table('angle_format_map.json') data_source_name = 'angle_format_data.json' json_data = angle_format.load_json(data_source_name) all_angle = angle_to_gl.keys() angle_format_cases = parse_angle_format_table( all_angle, json_data, angle_to_gl) output_cpp = template_autogen_inl.format( script_name = sys.argv[0], copyright_year = date.today().year, angle_format_info_cases = angle_format_cases, data_source_name = data_source_name) with open('Format_table_autogen.cpp', 'wt') as out_file: out_file.write(output_cpp) out_file.close()