JsBeautifier是一个用Javascript写的在线Javascript代码格式化工具。用javascript写的好处是只要一个浏览器就可以运行,很方便,坏处在于若是想通过命令行(例如需要脚本化)去运行时就会比较困难。之所以说比较困难,是因为JsBeautifier是可以通过Rhino来运行的,Rhino是一个用java写的javascript解释器。但是我还是闲得无聊,将这个javascript程序转化成了python。
javascript和python语言上很相近,所以将javascript程序转到python最麻烦的地方就是转换语法,例如将{...}块转换成python的缩进块,&&转成and,||转换成or,去掉if、while中多余的括号,语句中多余的冒号。
我碰到的一个困难是javascript嵌套函数可以直接改变外围函数的局部变量引用,而python嵌套函数虽然可以访问外围函数的局部变量,但却不能直接修改引用,这会使python认为它是嵌套函数的局部变量。为了解决这个问题,我创建了ctx对象,它包含嵌套函数需要直接修改的变量。
另外一个问题是python中没有switch语句,这一般不是问题,因为这可以用if...elif...else语句来模拟。问题在于javascript中switch语句可以有break,这导致控制流程直接跳到switch语句结尾处,而python中if...elif...else语句却没有相应流程跳转功能,一个容易想到的方法是使用一个flag变量来控制流程,但是这十分麻烦,尤其当中转发生在许多嵌套的if...else语句中时,flag需要一层一层地往外传递,每个分支处都需要检查flag的值。另一种方法是使用异常,用一个try...except包含整个if...elif...else语句,凡是switch中的break用raise FlowException来替代。用异常来控制流程是一种反模式,但是我实现想不出比这更妙的方法了。
代码见附件或者
这里。
P.S. 最近在《系统程序员成长计划》上看到用do...while(0)来实现流程跳转的方法,觉得很不错,可以用来替代用异常实现流程控制的方法。python中没有do...while语句,但很容易用while(True)来模拟。
while(True):
# some code here...
if not cond:
break
可以用来替换C语言中的:do {...} while(cond)。
分享到:
相关推荐
任意代码格式化工具(c++代码格式化工具,c代码格式化工具,java代码格式化工具,c#代码格式化工具工具,htm代码格式化l工具,javascript代码格式化工具,php代码格式化工具,asp代码格式化工具,c++代码整理工具,c代码整理...
dreamweaver javascript代码格式化插件 最高可用于dw cc 2015 使用方法 把所有文件复制到 DW安装目录下 configuration/commands/ 里 使用方法 菜单-命今-jsbuautier
其中包含css代码格式化,压缩的源码 html javascript代码格式化,压缩的源码 绝对有好用。
JavaScript代码格式化工具,很多下载来的js文件没有缩进等,阅读不例,用该工具格式化后将非常清晰,利于阅读!
JavaScript代码格式化,对凌乱的JavaScript代码进行格式化,保持代码的整洁,挺好用的一个工具,虽然对于一些正则表达式的格式化效果有点不太好,但整体还是比较清晰的,毕竟我们的程序也只有那某个脚本文件是正则吧...
javascript代码格式化工具, 推荐下载!
在网上下载的很多javascript代码或者html代码,大多都是经过压缩过的,很难看懂,但是别怕,因为现在有了“javascript-HTML代码专业格式化工具”--------------------------------赶快了下载吧!
Dreamweaver可以对HTML进行格式化,但缺乏对JS的支持,上网搜索一番,还真有我们所要的软件:JavaScript Code Improver!使用方法也非常的简单:找到(加载)所要格式化的JS文件,选择保存位置,点击运行按钮即可完成...
JavaScript Code Improver JS代码格式化工具JavaScript Code Improver JS代码格式化工具JavaScript Code Improver JS代码格式化工具JavaScript Code Improver JS代码格式化工具
一个简单易用的js格式化工具,输入源文件.js,输出源文件out.js,方便易用
终于找到了 EXTJS Javascript HTML 代码格式化 工具。
codeMirror代码格式化工具,支持sql、C、Java等目前主流的编程语言
JavaScript代码格式化工具 好用
Javascript脚本格式化代码 对关键字加色,格式化成易读格式
CoolFormat源代码格式化是一款C\C++\C#\CSS\HTML\Java\JavaScript\JSON\PHP\SQL\XML代码格式化工具。软件可以快速多种风格格式化,并对语言进行着色。界面采用Office 2010风格,并有多种样式可以替换。并且支持代码...
可以对一个,或则多个jsp,js,javascript,java文件源代码格式化工具,其中jsp文件,内可以含,javascript,vbscript等,都能格式化,有问题联系gisoracle@126.com 使用C#开发,请安装.net2.0
一款好用的JavaScript 代码格式化工具:JavaScript Code Improver
网页程序员很实用的javascrip工具 格式化Html格式,格式代javasctip格式,javascript代码压缩
sublime text2 菜单栏下面->preferences->browse packages打开插件目录 解压到里面重启sublime text2 选中代码右击就能看到这个功能了 非常好用