分页: 1 / 3
自动生成流程图 flow.pl
发表于 : 2012-05-18 16:43
由 eexpress
代码: 全选
● 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
Re: 自动生成流程图 flow.pl
发表于 : 2012-05-18 16:48
由 ChenFengyuan
mark

Re: 自动生成流程图 flow.pl
发表于 : 2012-05-18 17:16
由 YeLee
Re: 自动生成流程图 flow.pl
发表于 : 2012-05-18 17:28
由 xjpvictor
一看这标题就知道是ee来发码了
Re: 自动生成流程图 flow.pl
发表于 : 2012-05-18 17:49
由 tenzu
有人要弑神
Re: 自动生成流程图 flow.pl
发表于 : 2012-05-18 17:59
由 eexpress
Re: 自动生成流程图 flow.pl
发表于 : 2012-05-18 18:01
由 枫叶饭团
看不懂perl
Re: 自动生成流程图 flow.pl
发表于 : 2012-05-18 18:05
由 qy117121
Re: 自动生成流程图 flow.pl
发表于 : 2012-05-18 18:26
由 YeLee
qy117121 写了:tenzu 写了:有人要弑神
Re: 自动生成流程图 flow.pl
发表于 : 2012-05-18 23:55
由 eexpress
实际测试。发现不方便写。增加一种符号。
>表示返回,就是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;///>返回超时
}
Re: 自动生成流程图 flow.pl
发表于 : 2012-05-21 12:34
由 eexpress
代码: 全选
● git log
commit 7b74b09c5bca99628e8a486ecde300325fea7e72
Author: eexpress <[email protected]>
Date: Mon May 21 11:26:53 2012 +0800
flow+3
Re: 自动生成流程图 flow.pl
发表于 : 2012-05-21 12:46
由 haoyihuan
代码: 全选
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”中无图像。
怎么整?
Re: 自动生成流程图 flow.pl
发表于 : 2012-05-21 13:50
由 eexpress
没安装graphviz,就会提示dot没有。这没打包的,所以没解决依赖问题。
Re: 自动生成流程图 flow.pl
发表于 : 2012-05-21 14:57
由 eexpress
● 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
Re: 自动生成流程图 flow.pl
发表于 : 2012-05-21 15:45
由 eexpress
差不多可以了。