def main(argv): table_filename, output_filename = argv[1], argv[2] print "Decoder Generator reading ", table_filename f = open(table_filename, "r") tables = dgen_input.parse_tables(f) f.close() print "Successful - got %d tables." % len(tables) print "Generating output to %s..." % output_filename f = open(output_filename, "w") dgen_output.generate_decoder(tables, dgen_output.COutput(f)) f.close() print "Completed." return 0
def main(argv): in_filename, out_filename = argv[1], argv[2] print("Optimizer reading ", in_filename) f = open(in_filename, 'r') tables = dgen_input.parse_tables(f) f.close() print("Successful - got %d tables." % len(tables)) print("Generating output to %s..." % out_filename) f = open(out_filename, 'w') dgen_dump.dump_tables(tables, f) f.close() print("Completed.") return 0
def main(argv): table_filename, output_filename = argv[1], argv[2] print "Decoder Generator reading ", table_filename f = open(table_filename, 'r') tables = dgen_input.parse_tables(f) f.close() print "Successful - got %d tables." % len(tables) print "Generating output to %s..." % output_filename f = open(output_filename, 'w') dgen_output.generate_decoder(tables, dgen_output.COutput(f)) f.close() print "Completed." return 0
def main(argv): in_filename, out_filename = argv[1], argv[2] print "Optimizer reading ", in_filename f = open(in_filename, 'r') tables = dgen_input.parse_tables(f) f.close() print "Successful - got %d tables." % len(tables) print "Generating output to %s..." % out_filename f = open(out_filename, 'w') dgen_dump.dump_tables(tables, f) f.close() print "Completed." return 0
def main(argv): table_filename = argv[1] output_filename = argv[2] decoder_name = argv[3] tables = None # Define default command line arguments. cl_args = {'add-rule-patterns': 'True', 'auto-actual': [], 'auto-actual-sep': [], 'auto-baseline-sep': [], 'test-base': [], 'table_remove': [], 'table': [], } # Strip off remaining command line arguments and add. remaining_args = argv[4:] while remaining_args and remaining_args[0].startswith('--'): arg = remaining_args[0][len('--'):] remaining_args.pop(0) index = arg.find('=') if index == -1: cl_args[arg] = 'True' else: cl_name = arg[0:index] cl_value = arg[index+1:] if (cl_name in cl_args.keys() and isinstance(cl_args[cl_name], list)): # Repeatable CL argument, add value to list. cl_args[cl_name] = cl_args[cl_name] + [cl_value] else: # Single valued CL arugment, update to hold value. cl_args[cl_name] = cl_value # Fix separators by sorting. cl_args['auto-actual-sep'] = sorted(cl_args['auto-actual-sep']) cl_args['auto-baseline-sep'] = sorted(cl_args['auto-baseline-sep']) print "cl args = %s" % cl_args # Report arguments not understood. if remaining_args: for arg in remaining_args: print "Don't understand '%s'" % arg sys.exit(1) # Read in the decoder tables. print "Decoder Generator reading ", table_filename f = open(table_filename, 'r') decoder = dgen_input.parse_tables(f) # Remove tables specified on command line. for table in cl_args['table_remove']: print 'Removing table %s' % table decoder.remove_table(table) # Add pattern constraints if specified on the command line. if cl_args.get('add-rule-patterns') == 'True': decoder = dgen_add_patterns.add_rule_pattern_constraints(decoder) f.close() print "Successful - got %d tables." % len(decoder.tables()) print "Generating %s..." % output_filename f = open(output_filename, 'w') if output_filename.endswith('tests.cc'): dgen_test_output.generate_tests_cc(decoder, decoder_name, f, cl_args, cl_args.get('table')) elif output_filename.endswith('_named_classes.h'): dgen_test_output.generate_named_classes_h( decoder, decoder_name, _localize_filename(output_filename), f, cl_args) elif output_filename.endswith('_named_bases.h'): dgen_test_output.generate_named_bases_h( decoder, decoder_name, _localize_filename(output_filename), f, cl_args) elif output_filename.endswith('_named_decoder.h'): dgen_test_output.generate_named_decoder_h( decoder, decoder_name, _localize_filename(output_filename), f, cl_args) elif output_filename.endswith('_actuals.h'): dgen_actuals.generate_actuals_base_h( decoder, decoder_name, _localize_filename(output_filename), f, cl_args) elif _actual_suffix_in(output_filename, 'actuals_%s.h', cl_args): dgen_actuals.generate_actuals_h( decoder, decoder_name, _localize_filename(output_filename), f, cl_args) elif output_filename.endswith('baselines.h'): dgen_baselines.generate_baselines_base_h( decoder, decoder_name, _localize_filename(output_filename), f, cl_args) elif _baseline_suffix_in(output_filename, 'baselines_%s.h', cl_args): dgen_baselines.generate_baselines_h( decoder, decoder_name, _localize_filename(output_filename), f, cl_args) elif output_filename.endswith('baselines.h'): dgen_baselines.generate_baselines_h( decoder, decoder_name, _localize_filename(output_filename), f, cl_args) elif output_filename.endswith('.h'): dgen_decoder_output.generate_h( decoder, decoder_name, _localize_filename(output_filename), f, cl_args) elif output_filename.endswith('_named.cc'): dgen_test_output.generate_named_cc( decoder, decoder_name, _localize_filename(output_filename), f, cl_args) elif _actual_suffix_in(output_filename, 'actuals_%s.cc', cl_args): dgen_actuals.generate_actuals_cc( decoder, decoder_name, _localize_filename(output_filename), f, cl_args) elif _baseline_suffix_in(output_filename, 'baselines_%s.cc', cl_args): dgen_baselines.generate_baselines_cc( decoder, decoder_name, _localize_filename(output_filename), f, cl_args) elif output_filename.endswith('.cc'): dgen_decoder_output.generate_cc( decoder, decoder_name, _localize_filename(output_filename), f, cl_args) else: print 'Error: output filename not of form "*.{h,cc}"' f.close() print "Completed." return 0
def main(argv): table_filename = argv[1] output_filename = argv[2] decoder_name = argv[3] tables = None # Define default command line arguments. cl_args = { 'add-rule-patterns': 'True', 'auto-actual': [], 'auto-actual-sep': [], 'auto-baseline-sep': [], 'table_remove': [], 'table': [], } # Strip off remaining command line arguments and add. remaining_args = argv[4:] while remaining_args and remaining_args[0].startswith('--'): arg = remaining_args[0][len('--'):] remaining_args.pop(0) index = arg.find('=') if index == -1: cl_args[arg] = 'True' else: cl_name = arg[0:index] cl_value = arg[index + 1:] if (cl_name in cl_args.keys() and isinstance(cl_args[cl_name], list)): # Repeatable CL argument, add value to list. cl_args[cl_name] = cl_args[cl_name] + [cl_value] else: # Single valued CL arugment, update to hold value. cl_args[cl_name] = cl_value # Fix separators by sorting. cl_args['auto-actual-sep'] = sorted(cl_args['auto-actual-sep']) cl_args['auto-baseline-sep'] = sorted(cl_args['auto-baseline-sep']) print "cl args = %s" % cl_args # Report arguments not understood. if remaining_args: for arg in remaining_args: print "Don't understand '%s'" % arg sys.exit(1) # Read in the decoder tables. print "Decoder Generator reading ", table_filename f = open(table_filename, 'r') decoder = dgen_input.parse_tables(f) # Remove tables specified on command line. for table in cl_args['table_remove']: print 'Removing table %s' % table decoder.remove_table(table) # Add pattern constraints if specified on the command line. if cl_args.get('add-rule-patterns') == 'True': decoder = dgen_add_patterns.add_rule_pattern_constraints(decoder) f.close() print "Successful - got %d tables." % len(decoder.tables()) decoder = install_actuals_and_baselines(decoder, cl_args) print "Generating %s..." % output_filename f = open(output_filename, 'w') if output_filename.endswith('tests.cc'): dgen_test_output.generate_tests_cc(decoder, decoder_name, f, cl_args, cl_args.get('table')) elif output_filename.endswith('_named_classes.h'): dgen_test_output.generate_named_classes_h( decoder, decoder_name, _localize_filename(output_filename), f, cl_args) elif output_filename.endswith('_named_bases.h'): dgen_test_output.generate_named_bases_h( decoder, decoder_name, _localize_filename(output_filename), f, cl_args) elif output_filename.endswith('_named_decoder.h'): dgen_test_output.generate_named_decoder_h( decoder, decoder_name, _localize_filename(output_filename), f, cl_args) elif output_filename.endswith('_actuals.h'): dgen_actuals.generate_actuals_base_h( decoder, decoder_name, _localize_filename(output_filename), f, cl_args) elif _actual_suffix_in(output_filename, 'actuals_%s.h', cl_args): dgen_actuals.generate_actuals_h(decoder, decoder_name, _localize_filename(output_filename), f, cl_args) elif output_filename.endswith('baselines.h'): dgen_baselines.generate_baselines_base_h( decoder, decoder_name, _localize_filename(output_filename), f, cl_args) elif _baseline_suffix_in(output_filename, 'baselines_%s.h', cl_args): dgen_baselines.generate_baselines_h( decoder, decoder_name, _localize_filename(output_filename), f, cl_args) elif output_filename.endswith('baselines.h'): dgen_baselines.generate_baselines_h( decoder, decoder_name, _localize_filename(output_filename), f, cl_args) elif output_filename.endswith('.h'): dgen_decoder_output.generate_h(decoder, decoder_name, _localize_filename(output_filename), f, cl_args) elif output_filename.endswith('_named.cc'): dgen_test_output.generate_named_cc(decoder, decoder_name, _localize_filename(output_filename), f, cl_args) elif _actual_suffix_in(output_filename, 'actuals_%s.cc', cl_args): dgen_actuals.generate_actuals_cc(decoder, decoder_name, _localize_filename(output_filename), f, cl_args) elif _baseline_suffix_in(output_filename, 'baselines_%s.cc', cl_args): dgen_baselines.generate_baselines_cc( decoder, decoder_name, _localize_filename(output_filename), f, cl_args) elif output_filename.endswith('.cc'): dgen_decoder_output.generate_cc(decoder, decoder_name, _localize_filename(output_filename), f, cl_args) else: print 'Error: output filename not of form "*.{h,cc}"' f.close() print "Completed." return 0