BEGIN { print pretty_format("3 19 [ + -2 / ] $") print pretty_format("[ 1 2 ] [ 3 ]") print pretty_format("1") print pretty_format("[ 1") print pretty_format("1 ]") } function pretty_format(str, b, i, q, ql, r, s, t) { ql = split("[ " str " ]", q) r = "" s = "" b = 0 for(i = 1; i <= ql; i++) { t = q[i] if (t == "[") { r = r s "[" s = "" b++ } else if (t == "]") { if (--b < 0) return "error" r = r "]" s = ", " } else { r = r s "'" t "'" s = ", " } } if (b > 0) return "error" return r }