http://www.mindrot.org/projects/cfsm/
FSM 스펙을 텍스트로 받아서 C 코드(템플릿)을 만들어주는 프로그램이랍니다.
아래와 같은 샘플 스펙 텍스트가 있을 때
이런 그래프로 나타낼 수 있는 코드를 생성해줍니다.
cvs로 다음과 같이 다운받습니다.
$ cvs -d anoncvs@anoncvs.mindrot.org/cvs checkout mtemplate cfsm |
그리고 mtemplate와 cfsm을 make
$ cd mtemplate $ make $ cd ../cfsm $ make |
그러면 cfsm 파일도 생기고 기본적인 테스트도 돌립니다.
테스트로 만든 소스는 cfsm/regression에 있습니다.
C코드를 생성하려면 다음과 같이 하면 됩니다.(-d 옵션)
$ ../cfsm -t.. -d -o t_ex0_fsm.c ../example.fsm |
만일 스테이트 다이어그램 그림으로 만들어보고 싶으면(graphviz가 깔려있어야 함)
$ cd cfsm/regression $ ../cfsm -t.. -g -o t_ex0_fsm.dot ../example.fsm $ dot -Tjpg t_ex0_fsm.dot -o t_ex0_fsm.jpg |
이런식으로 합니다.
# This file is in the public domain # $Id: t1_fsm.fsm,v 1.4 2007/11/18 09:51:19 djm Exp $ precondition-function-args new-state state T1 |
이런 간단한 스펙을 바꾸면,
...생략 |
이런 코드가 생기고,
이런 그림으로 나타낼 수 있게 그래프 파일도 생성 됩니다.
Usage: cfsm [-h] [-HCD] [-o output-file] fsm-file |