xref: /linux/tools/verification/rvgen/dot2c (revision 4ff261e725d7376c12e745fdbe8a33cd6dbd5a83)
1*b6c62aa7SNam Cao#!/usr/bin/env python3
2*b6c62aa7SNam Cao# SPDX-License-Identifier: GPL-2.0-only
3*b6c62aa7SNam Cao#
4*b6c62aa7SNam Cao# Copyright (C) 2019-2022 Red Hat, Inc. Daniel Bristot de Oliveira <bristot@kernel.org>
5*b6c62aa7SNam Cao#
6*b6c62aa7SNam Cao# dot2c: parse an automata in dot file digraph format into a C
7*b6c62aa7SNam Cao#
8*b6c62aa7SNam Cao# This program was written in the development of this paper:
9*b6c62aa7SNam Cao#  de Oliveira, D. B. and Cucinotta, T. and de Oliveira, R. S.
10*b6c62aa7SNam Cao#  "Efficient Formal Verification for the Linux Kernel." International
11*b6c62aa7SNam Cao#  Conference on Software Engineering and Formal Methods. Springer, Cham, 2019.
12*b6c62aa7SNam Cao#
13*b6c62aa7SNam Cao# For further information, see:
14*b6c62aa7SNam Cao#   Documentation/trace/rv/deterministic_automata.rst
15*b6c62aa7SNam Cao
16*b6c62aa7SNam Caoif __name__ == '__main__':
17*b6c62aa7SNam Cao    from rvgen import dot2c
18*b6c62aa7SNam Cao    import argparse
19*b6c62aa7SNam Cao    import sys
20*b6c62aa7SNam Cao
21*b6c62aa7SNam Cao    parser = argparse.ArgumentParser(description='dot2c: converts a .dot file into a C structure')
22*b6c62aa7SNam Cao    parser.add_argument('dot_file',  help='The dot file to be converted')
23*b6c62aa7SNam Cao
24*b6c62aa7SNam Cao    args = parser.parse_args()
25*b6c62aa7SNam Cao    d = dot2c.Dot2c(args.dot_file)
26*b6c62aa7SNam Cao    d.print_model_classic()
27