#!/usr/bin/env python3

from . import vlog_to_pbtype
from . import vlog_to_model
import argparse
import sys

def main(args):
    if args.mode == "pb_type":
        vlog_to_pbtype.vlog_to_pbtype(args.infiles, args.outfile, args.top)
    else:
        vlog_to_model.vlog_to_model(args.infiles, args.includes, args.top, args.outfile)

if __name__ == '__main__':
    parser = argparse.ArgumentParser(
        description="Verilog to XML"
    )
    parser.add_argument(
        'infiles',
        metavar='input.v',
        type=str,
        nargs='+',
        help="""\
One or more Verilog input files, that will be passed to Yosys internally.
They should be enough to generate a flattened representation of the model,
so that paths through the model can be determined.
"""
    )
    parser.add_argument(
        '--top',
        help="""\
Top level module, will usually be automatically determined from the file name
%.sim.v
"""
    )
    parser.add_argument(
        '--outfile',
        '-o',
        type=str,
        default="output.xml",
        help="""\
Output filename, default 'output.xml'
"""
    )
    parser.add_argument(
        '--includes',
        help="""\
Comma separate list of include directories.
""",
        default=""
    )
    parser.add_argument(
        '--mode',
        type=str,
        default='pb_type',
        choices=['pb_type', 'model'],
        help="""\
Output file type, possible values are: pb_type and model.
Default value is pb_type
"""
    )
    args = parser.parse_args()
    sys.exit(main(args))
