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
41
42
43
44
|
define(function(require, exports, module){
module.exports = function dump(ast, defs, depth){
if(!ast) return ''
if (depth === undefined) depth = "";
var out = ast.type + '\n'
var lut = defs[ast.type]
if(!lut) console.log('Cannot find', ast.type, ast)
for(var item in lut){
var type = lut[item]
if(type === 3){
var array = ast[item]
if(array) for(var i =0 ; i < array.length; i++){
var item = array[i]
out += depth + item.key.name + ':' + dump(item.value, defs, '')
}
}
if(type === 2){
var array = ast[item]
if(array) for(var i = 0; i<array.length; i++) {
out += depth + item + ':' + dump(array[i], defs, depth + ' ')
}
}
else if(type === 1){
var obj = ast[item]
if(obj !== undefined)
out += depth + item + ':' + dump(obj, defs, depth + ' ')
}
else if(type === 0){
var value = ast[item]
if(value !== undefined)
out += depth + item + ':' + ast[item]
}
}
return out
}
})
|