-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbffmt.js
40 lines (35 loc) · 826 Bytes
/
bffmt.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
var fs = require('fs');
var stdin = process.openStdin();
var data = '';
stdin.on('data', function(chunk) {
data += chunk;
});
var indent = '';
var out = '';
function newline() {
out += '\n' + indent;
}
stdin.on('end', function() {
data = data.replace('\r\n', '\n');
for(var i = 0; i != data.length; i++) {
var ch = data[i];
switch(ch) {
case '[':
indent = indent + ' ';
out += '[';
newline();
break;
case ']':
indent = indent.slice(0, -2);
newline();
out += ']'
break;
case '\n':
newline();
break;
default:
out += ch;
}
}
console.log(out);
});