Пример #1
0
def main(argv):
    if len(argv) > 1:
        raise app.UsageError('Too many command-line arguments.')

    # This is required so that module initializers are called including those
    # which register delay models.
    init_xls.init_xls(sys.argv)
    global benchmarks
    benchmarks = load_benchmarks()
    webapp.run(host='::' if FLAGS.use_ipv6 else '0.0.0.0', port=FLAGS.port)
Пример #2
0
def main(argv):
    if len(argv) > 1:
        raise app.UsageError('Too many command-line arguments.')

    # This is required so that module initializers are called including those
    # which register delay models.
    init_xls.init_xls(sys.argv)
    global examples
    if FLAGS.example_ir_dir is not None:
        examples = load_examples_from_dir(FLAGS.example_ir_dir)
    else:
        examples = load_precanned_examples()

    webapp.run(host='::' if FLAGS.use_ipv6 else '0.0.0.0', port=FLAGS.port)
Пример #3
0
def main(argv):
    if len(argv) > 1:
        raise app.UsageError('Too many command-line arguments.')

    init_xls.init_xls(sys.argv)

    stmt_index = 0

    last_result = None

    while True:
        prompt = f'dslx[{stmt_index}]> ' if sys.stdin.isatty() else ''
        try:
            # TODO(leary): Update this to support multi-line input.
            line = input(prompt)
        except EOFError:
            if sys.stdin.isatty():
                print('\r', end='')
            break

        # Some helper 'magic' commands for printing out values in different ways.
        if line == '%int':
            if last_result is None:
                print('No last result for magic command.')
                continue
            assert isinstance(last_result, value_mod.Value), last_result
            print(last_result.get_bit_value_int64())
            continue
        if line == '%bin':
            if last_result is None:
                print('No last result for magic command.')
            assert isinstance(last_result, value_mod.Value), last_result
            assert last_result is not None
            print(
                bit_helpers.to_bits_string(last_result.get_bit_value_uint64()))
            continue

        result = handle_line(line, stmt_index)
        if result is None:
            continue
        last_result = result
        stmt_index += 1
Пример #4
0
def main(argv):
    binary = os.path.basename(argv[0])
    if len(argv) < 2:
        raise app.UsageError('Wrong number of command-line arguments; '
                             'expect %s <input-file>' % binary)

    init_xls.init_xls(sys.argv)

    path = argv[1]
    with open(path, 'r') as f:
        text = f.read()

    name = os.path.basename(path)
    name, _ = os.path.splitext(name)
    module = parser_helpers.parse_text(text,
                                       name,
                                       print_on_error=True,
                                       filename=path)

    importer = import_helpers.Importer(tuple(FLAGS.dslx_path))
    type_info = None

    try:
        type_info = cpp_typecheck.check_module(
            module, importer.cache, importer.additional_search_paths)
        if FLAGS.entry:
            print(
                ir_converter.convert_one_function(module, FLAGS.entry,
                                                  type_info))
        else:
            print(ir_converter.convert_module(module, type_info))
    except (PositionalError, cpp_parser.CppParseError) as e:
        parser_helpers.pprint_positional_error(e)
        if FLAGS.raise_exception:
            raise
        else:
            sys.exit(1)
    finally:
        if type_info is not None:
            type_info.clear_type_info_refs_for_gc()
Пример #5
0
def main(argv):
    init_xls.init_xls(argv)
    if len(argv) > 2:
        raise app.UsageError('Too many command-line arguments.')

    path = argv[1]
    with open(path) as f:
        text = f.read()

    name = os.path.basename(path)
    name, _ = os.path.splitext(name)

    importer = import_helpers.Importer()

    module = parse_and_typecheck.parse_text(
        text,
        name,
        filename=path,
        print_on_error=True,
        import_cache=importer.cache,
        additional_search_paths=importer.additional_search_paths)
    pprint.pprint(module)
Пример #6
0
def setUpModule():
  # This is required so that module initializers are called including those
  # which register delay models.
  init_xls.init_xls(sys.argv)
Пример #7
0
FLAGS = flags.FLAGS
flags.DEFINE_boolean('trace_all', False, help='Trace every expression.')
flags.DEFINE_boolean('compare_jit', True, help='Run functions alongside JIT.')
flags.DEFINE_integer('seed', None, help='Seed for QuickCheck random stimulus.')


def main(argv):
    if len(argv) > 3:
        raise app.UsageError(
            'Too many command-line arguments. {}'.format(argv))

    if len(argv) < 2:
        raise app.UsageError('Path to a .x file (to interpret) is required.')

    path = argv[1]

    test_only = os.environ.get('TESTBRIDGE_TEST_ONLY')
    saw_error: bool = parse_and_interpret.parse_and_test_path(
        path,
        raise_on_error=False,
        test_filter=test_only,
        trace_all=FLAGS.trace_all,
        compare_jit=FLAGS.compare_jit,
        seed=FLAGS.seed)
    sys.exit(saw_error)


if __name__ == '__main__':
    init_xls.init_xls(sys.argv)
    app.run(main)
Пример #8
0
def main() -> None:
  init_xls.init_xls(sys.argv)
  absltest.main()
Пример #9
0
def setUpModule():
    init_xls.init_xls(sys.argv)