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