Re: 自动生成流程图 flow.pl
发表于 : 2012-05-21 16:18
不错,:-)
代码: 全选
● git.pl
# modified: flow.pl
本地需要提交。请输入提交的注释并回车(空注释将被日期代替):
flow+10
提交注释为 flow+10 的更新。
seems { } not match.eexpress 写了:这提示,肯定是生成的dot的格式不对。第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();////
代码: 全选
flow.pl 文件【各类语法的源码,只要注释不和///冲突】
语法说明:
xxx> 表示函数入口。通常是函数名。
>xxx 表示函数出口。通常是return。
xxx?yyy:zzz 条件判断语句。yyy为真,zzz为假。可省略其一。如:xxx?yyy 或者 xxx?:zzz。
循环体,如while if等,写成条件判断的时候,:后面的假分支,如果指向return返回语句,必须也加上>的前缀。
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=~/>$/){ #入口