分页: 2 / 3

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

发表于 : 2012-05-21 16:18
oneleaf
不错,:-)

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

发表于 : 2012-05-21 19:42
lerosua
神这次创作不错,支持。

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

发表于 : 2012-05-21 20:05
eexpress
增加了2行。
6种颜色区分函数。
欢迎大家测试。实际测试,才能发现小问题。

代码: 全选

● git.pl
#	modified:   flow.pl
本地需要提交。请输入提交的注释并回车(空注释将被日期代替):
flow+10
提交注释为 flow+10 的更新。

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

发表于 : 2012-05-28 7:44
shirazbj
I got the svg drawing, but there is an error in terminal:

Error: test.dot:1: syntax error near line 1
context: >>> } <<<

is it all right?

Also wondering if this code works for fortran program?

sorry, no chinese input in my ubuntu.

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

发表于 : 2012-05-28 9:15
eexpress
这提示,肯定是生成的dot的格式不对。第1行。
你贴附近几行出来看看。

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

发表于 : 2012-05-28 14:48
shirazbj
eexpress 写了:这提示,肯定是生成的dot的格式不对。第1行。
你贴附近几行出来看看。
seems { } not match.

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

发表于 : 2012-05-28 14:53
eexpress
是没对上。你是不是使用的最新版本。
1楼的wget那行的地址。
写的那2天,我更新频繁的。说不定中间提交的,反而不对。

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

发表于 : 2012-05-28 14:54
Cherrot
前来观神 :em04

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

发表于 : 2012-05-28 15:41
shirazbj
是用一楼地址得来的。

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

发表于 : 2012-05-28 15:45
eexpress
那就是你的函数入口注释,没写>的尾巴。
写成这样。因为处理多个函数的时候,只能指明入口。看1楼的多函数的图。

代码: 全选

///Gsm_Wait_S>
例子如下

代码: 全选

● g '///' Ubuntu\ One/graphviz\ example/gsm.c 
50:{ ///GSM_Do_FB>
51:	R.S_FB.Head=SmsFB; ///设置缺省值
55:	/// 复制结构到内存
59:	/// 阀门关闭?马达状态2号:马达状态1号
62:	///获取验证数据
70:/// Gsm_Wait_S>
77:   leng=get_strlen(ack); ///取得ack长度
78:   while(timeout--)   //等待接收完毕///超时检查?:>返回超时
80:      if(U6RecCount>oldint)oldint=U6RecCount; ///计数大于保留?保留等于计数
81:      delay_1ms(6); ///延时6毫秒
82:      if(U6RecCount==oldint) ///xxxx保留?:>返回超时
84:         a=find_arr(GSM_RT,U6RecCount,ack,leng); ///接收信息
85:         if(a==SUCCESS){return SUCCESS;} ///接收Ack成功?>返回成功
87:         ///接收错误信息
88:         if(a==SUCCESS)return ACK_ERROR;///接收Err成功?>返回错误
90:   } ///测试
91:   return ACK_TIMEOUT;///>返回超时
95:{///Gsm_Send_AT>
99:	i=get_strlen(Send_AT); ///获取发送长度
100:	UART6_SendData(Send_AT,i); ///发送数据
101:	if(Flag_Order) ///order标志?:>等待返回
103:		tmp[0]=Flag_Order/10+0x30;tmp[1]=Flag_Order%10+0x30;///根据order格式化数据
105:		UART6_SendData(tmp,4);///发送格式化数据
108:	i=Gsm_Wait_S(Find_AT,Gsm_de_search_cnt);///>等待返回
279:	Telephone_NO = GSM_RT+DoubleChar[3]-6 ;////
334:		if(f>1)FlagBit.F_GsmAllRead=1;////
623:	Gsm_Order=0;FlagBit.F_GsmReadEn=0;FlagBit.F_GsmAllRead=0;////
691:		Gsm_AgainStart();////

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

发表于 : 2012-05-28 15:48
eexpress

代码: 全选

flow.pl 文件【各类语法的源码,只要注释不和///冲突】
语法说明:
	xxx> 表示函数入口。通常是函数名。
	>xxx 表示函数出口。通常是return。
	xxx?yyy:zzz 条件判断语句。yyy为真,zzz为假。可省略其一。如:xxx?yyy 或者 xxx?:zzz。
	循环体,如while if等,写成条件判断的时候,:后面的假分支,如果指向return返回语句,必须也加上>的前缀。
-h 的提示。

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

发表于 : 2012-05-28 17:38
shirazbj
我是把你10楼的例子存成test.c了。

那个是没写>的尾巴

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

发表于 : 2012-05-28 17:45
eexpress
10楼的过时了。25楼的吧。:D

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

发表于 : 2012-06-04 13:45
shirazbj
xxx?yyy:zzz

yyy can not have sapce in it. so not good for english.

is it possible to make it friendly with english?

thx

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

发表于 : 2012-06-04 14:27
eexpress
shirazbj 写了:xxx?yyy:zzz

yyy can not have sapce in it. so not good for english.

is it possible to make it friendly with english?

thx
dot语言不支持空格和-
只好增加了一行。
next if $i eq "";
$i=~s/[\ -]/_/g;
if($i=~/>$/){ #入口