µ±È»²»ÊÇͨÓÃÀ²¡£¡£
ÀýÈçÈç¹ûÔÚ""ÀïÃæÓÐ"{"ÄÇô¾ÍÂÒÁË¡£¡£
<textarea cols=64 rows=24 id=ta>
</textarea>
<hr>
<button onclick="trans()">trans</button>
<script>
function trans()
{
var res=_trans(ta.value)
ta.value=res;
}
function _trans(str)
{
str=str.replace(/\r\n(\s)+/g,"\r\n");
var arrRes=new Array();
var arr=str.split("\r\n");
var count=0;
arrRes[arrRes.length]=arr[0];
for(var i=1;i<arr.length-1;i++)
{
var p=(i*100/arr.length+"");
status=Math.floor(p)+1+"%";
count+=getCount(arr[i-1]);
var c=count;
if(arr[i].indexOf("case")==0)c--;
if(arr[i].indexOf("}")==0)c--;
if(arr[i].indexOf("{")!=0)
{
if(arr[i-1].indexOf("if")==0)c++;
if(arr[i-1].indexOf("else")==0)c++;
if(arr[i-1].indexOf("while")==0)c++;
if(arr[i-1].indexOf("do")==0)c++;
if(arr[i-1].indexOf("for")==0)c++;
}
arrRes[arrRes.length]=tabs(c)+arr[i]+"\r\n";
}
arrRes[arrRes.length]=arr[i];
return arrRes.join("");
}
function tabs(count)
{
var res="";
for(var i=0;i<count;i++)
res+="\t";
return res;
}
function getCount(str)
{
var c=0;
for(var i=0;i<str.length;i++)
{
if(str.charAt(i)=="{")c++;
else
if(str.charAt(i)=="}")c--;
}
return c;
}
</script>