#!/usr/bin/env python3
# SPDX-License-Identifier: GPL-2.0-only
#
# Copyright (C) 2019-2022 Red Hat, Inc. Daniel Bristot de Oliveira <bristot@kernel.org>
#
# dot2c: parse an automata in dot file digraph format into a C
#
# This program was written in the development of this paper:
#  de Oliveira, D. B. and Cucinotta, T. and de Oliveira, R. S.
#  "Efficient Formal Verification for the Linux Kernel." International
#  Conference on Software Engineering and Formal Methods. Springer, Cham, 2019.
#
# For further information, see:
#   Documentation/trace/rv/deterministic_automata.rst

if __name__ == '__main__':
    from rvgen import dot2c
    import argparse
    import sys

    parser = argparse.ArgumentParser(description='dot2c: converts a .dot file into a C structure')
    parser.add_argument('dot_file',  help='The dot file to be converted')

    args = parser.parse_args()
    d = dot2c.Dot2c(args.dot_file)
    d.print_model_classic()
