Description
|
| Raw Input
| A ( B ( C ( D
) E ( F ( G ) H ( I )
J ) K ) L ) M ( N (
O ( P ) R )
S ) T
|
|
| Desired Output
| ( D )
( F ( G ) H ( I ) J )
( P )
|
|
Script and Comments
Script1 [ 1] /\n/!s/.*/\n&\n/
[ 2] :loop
[ 3] s/\n([^()\n]*)/\1\n/
[ 4] /\n\n/{
[ 5] /\n$/d
[ 6] $d
[ 7] N
[ 8] s/\n(\n#+)(\n[^\n]*)$/ \2\1/
[ 9] b loop
[10] }
[11] /\n\(/{
[12] s/$/#/
[13] /\n#{3}$/s/^[^\n]*\n/\n/
[14] }
[15] /\n\)/{
[16] /\n#{3}$/{
[17] s/\n\)/)\n\n/
[18] s/#$//
[19] P
[20] D
[21] }
[22] s/#$//
[23] }
[24] s/\n([()])/\1\n/
[25] b loop
| |