自动生成流程图 flow.pl

软件和网站开发以及相关技术探讨
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

自动生成流程图 flow.pl

#1

帖子 eexpress » 2012-05-18 16:43

代码: 全选

● flow.pl 
AUTHOR:		eexpress
VERSION:	1.5
USAGE:		flow.pl source_file
DESCRIPTION:
自动根据注释里面的///后面的内容,生成流程图。依赖graphviz。
flow.pl 文件【各类语法的源码,只要注释不和///冲突】
语法说明:
	xxx> 表示函数入口。通常是函数名。必须有一个。
	>xxx 表示函数出口。通常是return或者exit这样的。
	xxx?yyy:zzz 条件判断语句。yyy为真,zzz为假。可省略其一,如:xxx?yyy 或者 xxx?:zzz。省略的直接接下一句;都不省略的短语,2个条件都接下一句。
下载

代码: 全选

wget https://raw.github.com/eexpress/eexp-bin/master/flow.pl 
附件
irda.dot.svg
(64.11 KiB) 已下载 166 次
● 鸣学
头像
ChenFengyuan
帖子: 770
注册时间: 2008-03-23 0:39

Re: 自动生成流程图 flow.pl

#2

帖子 ChenFengyuan » 2012-05-18 16:48

mark :em11 :em09
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 自动生成流程图 flow.pl

#3

帖子 YeLee » 2012-05-18 17:16

神马。 :em11 :em11 :em11
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
xjpvictor
帖子: 2837
注册时间: 2007-08-22 15:55
系统: Archlinux
来自: 新加坡
联系:

Re: 自动生成流程图 flow.pl

#4

帖子 xjpvictor » 2012-05-18 17:28

一看这标题就知道是ee来发码了
Entschuldigung. Ich habe keine ahnung.
Secure with PGP: gpg --recv-keys 0x68b6e3d8
Fingerprint: 5556 517C F52F E402 DDF5 5400 6D30 F13E 68B6 E3D8
Towards A Sustainable Earth: Print Only When Necessary
头像
tenzu
论坛版主
帖子: 36924
注册时间: 2008-11-21 20:26

Re: 自动生成流程图 flow.pl

#5

帖子 tenzu » 2012-05-18 17:49

有人要弑神
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 自动生成流程图 flow.pl

#6

帖子 eexpress » 2012-05-18 17:59

懒发贴了。更新都在
https://github.com/eexpress/eexp-bin/bl ... er/flow.pl

掐掐疼疼。
● 鸣学
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 自动生成流程图 flow.pl

#7

帖子 枫叶饭团 » 2012-05-18 18:01

看不懂perl
头像
qy117121
论坛版主
帖子: 50587
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

Re: 自动生成流程图 flow.pl

#8

帖子 qy117121 » 2012-05-18 18:05

tenzu 写了:有人要弑神
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

邮箱 [email protected]
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 自动生成流程图 flow.pl

#9

帖子 YeLee » 2012-05-18 18:26

qy117121 写了:
tenzu 写了:有人要弑神
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 自动生成流程图 flow.pl

#10

帖子 eexpress » 2012-05-18 23:55

实际测试。发现不方便写。增加一种符号。
>表示返回,就是return。

另外,条件判断 ?: 的写法,可以省略:的某一边,表示缺省继续向下走。方便些。

条件判断的 diamond,强制了 yes 下方/ No 右方/ 入口 上方。图像显得有些怪。

测试例子

代码: 全选

uchar Gsm_Wait_S(uchar *ack,uchar timeout)
/// Gsm_Wait_S
{
	uchar a=0;
	uchar leng=0;	
	uchar oldint; 
	
//	if(timeout==0)return ACK_OK;
	leng=get_strlen(ack); ///取得ack长度
	while(timeout--)	//等待接收完毕///超时检查?>返回超时
	{
		if(U6RecCount>oldint)oldint=U6RecCount; ///计数大于保留?保留等于计数
		delay_1ms(6); ///延时6毫秒
		if(U6RecCount==oldint) ///xxxx保留?:>返回超时
		{
			a=find_arr(GSM_RT,U6RecCount,ack,leng); ///接收信息
			if(a==SUCCESS){return SUCCESS;} ///接收Ack成功?>返回成功
			a=find_arr(GSM_RT,U6RecCount,GSM_ERROR,sizeof(GSM_ERROR)-1);
			///接收错误信息
			if(a==SUCCESS)return ACK_ERROR;///接收Err成功?>返回错误
		}
	} ///超时检查
	return ACK_TIMEOUT;///>返回超时
}
附件
tt.png
t.png
● 鸣学
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 自动生成流程图 flow.pl

#11

帖子 eexpress » 2012-05-21 12:34

代码: 全选

● git log
commit 7b74b09c5bca99628e8a486ecde300325fea7e72
Author: eexpress <[email protected]>
Date:   Mon May 21 11:26:53 2012 +0800

    flow+3
● 鸣学
头像
haoyihuan
帖子: 271
注册时间: 2009-06-11 13:37

Re: 自动生成流程图 flow.pl

#12

帖子 haoyihuan » 2012-05-21 12:46

代码: 全选

wget https://raw.github.com/eexpress/eexp-bin/master/flow.pl 
下载后不能用啊。目前还看不懂pearl
chmod +x flow.pl后执行有错误。
sh提示:
sh: dot: not found
生成的新窗口提示:
“file:///home/haoyihuan/.svg”中无图像。
怎么整?
跑debian应该是有点搞头的吧。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 自动生成流程图 flow.pl

#13

帖子 eexpress » 2012-05-21 13:50

没安装graphviz,就会提示dot没有。这没打包的,所以没解决依赖问题。
● 鸣学
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 自动生成流程图 flow.pl

#14

帖子 eexpress » 2012-05-21 14:57

● git.pl
# modified: flow.pl
本地需要提交。请输入提交的注释并回车(空注释将被日期代替):
flow+4
提交注释为 flow+4 的更新。
Counting objects: 5, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 393 bytes, done.
Total 3 (delta 2), reused 0 (delta 0)
To [email protected]:eexpress/eexp-bin.git
7b74b09..767fbcd master -> master
● 鸣学
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 自动生成流程图 flow.pl

#15

帖子 eexpress » 2012-05-21 15:45

差不多可以了。
附件
tt.png
flow0.7.tar
(10 KiB) 已下载 193 次
● 鸣学
回复