正则式代码转换程序,用于cocos2d-x不同版本之间程序移植。
来源:互联网 发布:淘宝网购怎么分期付款 编辑:程序博客网 时间:2024/05/22 06:22
如果开发环境没有反射功能,代码改名的工作量不小,下面代码实现了批量替换变量名称。修改可用于代码转换的许多情况。
本文中用于cocos2d-x不同版本之间程序移植。
代码主要功能:将注释和字符串排除在外,其他内容匹配变量名,用字典进行替换。点击打开链接
#!/usr/bin/env pythonimport osimport reimport sysimport codecs#############################dic={}jiacc=["spriteWithFile","actionWithDuration","menuWithItem","itemWithLabel","transitionWithDuration","spriteWithFile","labelWithString","node"]#,"Object","Sprite","Point","Scene","Node","MoveTo","Director","Application","Size","Touch","Event"]dic["CCMutableArray"]="CCArray"dic["CGFloat"]="float"dic["ccTime"]="float"for one in jiacc: dic[one]="create"##############################pattern = re.compile(r""" (//[^\r\n]*) # match a single line comment | (/\*.*?\*/) # match a multi line comment | ("[^"]*") # match a string literal | ([a-zA-Z_][a-zA-Z_0-9]*) #identifier """ , re.X | re.S)def translateValue(old): new=dic.get(old) if new!=None: return new return olddef func(match): if match.group(1) or match.group(2) or match.group(3): return match.group() if match.group(4): return translateValue(match.group())# #raw_input() else: return match.group()def translateStr(source): return re.sub(pattern,func,source)def translateFile(inputFileName): s=codecs.open(inputFileName,"r","utf-8").read() return translateStr(s)def treatfile(inputFileName): print inputFileName #bak cmd="cp %s %s" %(inputFileName,inputFileName+".bak") os.system(cmd) #translate fc=translateFile(inputFileName) #output f=codecs.open(inputFileName,"w","utf-8") f.write(fc) f.close()#dir##################def mylistdir(p,f): a=os.listdir(p) fs=myfind(a,f) return(fs)def myfind(l,p): lr=[]; #print p p1=p.replace(".",r"\.") p2=p1.replace("*",".*") p2=p2+"$" for a in l: #print a if re.search(p2,a,re.IGNORECASE)==None : pass #print "pass" else: lr.append(a) #print "append" return lrdef translateDir(path):# files=mylistdir(path,"*.cpp") files2=mylistdir(path,"*.h") for f in files2: files.append(f) for f in files: fn=path+"/"+f treatfile(fn)if __name__=="__main__": translateDir(sys.argv[1])
0 0
- 正则式代码转换程序,用于cocos2d-x不同版本之间程序移植。
- 不同版本cocos2d-x代码差异
- cocos2d-x win32程序移植到Androidb
- pgeRippleSprite cocos2d-x版本移植
- 不同的LCD之间程序移植时配置参考
- cocos2d-x程序移植android时修改屏幕显示方向
- cocos2d-x程序流程
- Caffe 不同版本之间layer移植方法
- cocos2d-x 给函数接口生命周期添加检测函数,用于调试程序时检测错误。
- cocos2d-x不同版本的安装兼容问题
- cocos2d-x入门学习(五)跨版本代码移植实例之【梦幻连连看】
- cocos2d-x入门学习(四)跨版本代码移植实例之【微信飞机大战】
- 两不同程序之间通讯
- cocos2d-x 程序主流程
- 第一个cocos2d-x程序
- cocos2d-x程序内存优化
- cocos2d-x 3.6 程序流程
- cocos2d-x 2.1版本坐标转换
- opencv 读取图片信息及区域数据
- (三)APNS 消息推送 发布
- (四)APNS 消息推送 后台
- easyui 简单框架界面
- 致同学聚会装逼的人
- 正则式代码转换程序,用于cocos2d-x不同版本之间程序移植。
- 排列组合算法
- 三种主流的WebService实现方案(REST/SOAP/XML-RPC)简述及比较
- 102.Binary Tree Level Order Traversal&把二叉树打印成多行
- 滑动开关按钮SlideSwich
- lame,把ios录音转换为mp3格式
- squid普通代理安装与配置
- 图片异步压缩保存到本地文件PhotoCompress
- 形式感+——网页视觉设计创意拓展与快速表现