|
なるほど、確かにないような(@@?
ちょこっとかいて見るとこんな感じかな?
範囲指定効かないで、全文整形のみですけど(^^;;
// マクロの始まり
selectall;
replaceall "^( |\\t)+", "", regular;
$t = "";
gofiletop;
#posy = 0;
#cmt = 0;
#tt = 0;
while( #posy < linecount2 ){
golinetop;
if(( code == 0x7d )&&(#cmt==0)){
#len = strlen($t)-1;
if( #len > 0 )
$t = leftstr( $t, #len );
else
$t = "";
#tt = 1;
}
else
#tt = 0;
insert $t;
golinetop;
#posx = 0;
#st = 0;
#ll = linelen2;
while( #posx < #ll ){
if( #cmt == 1 ){
if( code == 0x2a ){
#posx = #posx + 1;
right;
if( #posx >= #ll ) break;
if( code == 0x2f ) #cmt = 0;
}
}else if(( code == 0x2f )&&( #st == 0 )){
#posx = #posx + 1;
right;
if( #posx >= #ll ) break;
if( code == 0x2f ) break;
if( code == 0x2a ){
#cmt = 1;
}
}else if( code == 0x27 ){
if( #st == 0 ){
#st = 2;
}else{
#st = 0;
}
}else if( code == 0x22 ){
if( #st == 0 ){
#st = 1;
}else{
#st = 0;
}
}else if( #st > 0 ){
if( code == 0x5c ){
#posx = #posx + 1;
right;
if( #posx >= #ll ) break;
}
}else if( code == 0x7b ){
$t = $t + "\t";
break;
}else if( code == 0x7d ){
if( #tt == 0 ){
#len = strlen($t)-1;
if( #len > 0 )
$t = leftstr( $t, #len );
else
$t = "";
break;
}else{
#tt = 0;
}
}
#posx = #posx + 1;
right;
}
#posy = #posy + 1;
down;
}
// マクロの終わり
これで次のようなパターンもOK
#include <stdio.h>
main()
{
int i;
i=0;
while(i < 20){
printf("i = %d\n", i);
i++;
}
int c = 10;
while(c){
// {
int a = c;
//}
/* ループの説明 {
// {
int a; // テンポラリ
printf( "\"{%d", a );
printf( "}\"" );
--c;
// }
} 説明終わり*/
printf( "\"{%d", a );
printf( "}\"" );
--c;
/**/ }
}
↑
↓
#include <stdio.h>
main()
{
int i;
i=0;
while(i < 20){
printf("i = %d\n", i);
i++;
}
int c = 10;
while(c){
// {
int a = c;
//}
/* ループの説明 {
// {
int a; // テンポラリ
printf( "\"{%d", a );
printf( "}\"" );
--c;
// }
} 説明終わり*/
printf( "\"{%d", a );
printf( "}\"" );
--c;
/**/ }
}
こんな具合になります。
コメントと、文字列にはだいぶ配慮したつもりですが、脇の甘いと琴があるかもしれ
ません。
それにしても、汚いコードやなぁ_(..;;
|
|