コード例 #1
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
コード例 #2
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
コード例 #3
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
コード例 #4
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
コード例 #5
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
コード例 #6
0
ファイル: generate_decoder.py プロジェクト: mYoda/CustomBrs
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