-
Notifications
You must be signed in to change notification settings - Fork 464
/
Copy pathbs_dyn_lib.js
121 lines (117 loc) · 4.07 KB
/
bs_dyn_lib.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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
'use strict';
var Char = require("./char");
var $$Array = require("./array");
var Buffer = require("./buffer");
var Pervasives = require("./pervasives");
var Caml_format = require("./caml_format");
function to_string(v) {
var construct_string = function (b, _v, _tab_level) {
while(true) {
var tab_level = _tab_level;
var v = _v;
var add = function (tabs, str) {
for(var i = 0; i <= tabs; ++i){
Buffer.add_string(b, " ");
}
return Buffer.add_string(b, str);
};
if (typeof v === "number") {
return add(tab_level, "None\n");
}
else {
switch (v.tag | 0) {
case 0 :
add(tab_level, Caml_format.caml_int32_format("%d", v[0]));
return add(0, "l");
case 1 :
add(tab_level, Caml_format.caml_int64_format("%d", v[0]));
return add(0, "L");
case 2 :
return add(tab_level, "" + v[0]);
case 3 :
add(tab_level, Caml_format.caml_nativeint_format("%d", v[0]));
return add(0, "n");
case 4 :
return add(tab_level, v[0] ? "true" : "false");
case 5 :
return add(tab_level, Pervasives.string_of_float(v[0]));
case 6 :
add(tab_level, "'");
add(0, Char.escaped(v[0]));
return add(0, "'");
case 7 :
add(tab_level, '"');
add(0, v[0]);
return add(0, '"');
case 8 :
add(tab_level, "Some");
_tab_level = 0;
_v = v[0];
continue ;
case 9 :
var x = v[0];
add(tab_level, "(\n");
$$Array.iteri((function(tab_level,x){
return function (i, item) {
construct_string(b, item, tab_level + 2 | 0);
if (i !== (x.length - 1 | 0)) {
add(0, ", ");
}
return add(0, "\n");
}
}(tab_level,x)), x);
return add(tab_level, ")");
case 10 :
add(tab_level, "[|\n");
$$Array.iter((function(tab_level){
return function (item) {
construct_string(b, item, tab_level + 2 | 0);
return add(0, ";\n");
}
}(tab_level)), v[0]);
return add(tab_level, "|]");
case 11 :
add(tab_level, "[");
$$Array.iter((function(tab_level){
return function (item) {
return construct_string(b, item, tab_level + 2 | 0);
}
}(tab_level)), v[0]);
return add(tab_level, "]\n");
case 12 :
var values = v[1];
add(tab_level, "{\n");
$$Array.iteri((function(tab_level,values){
return function (i, item) {
add(tab_level + 2 | 0, item);
add(0, " =\n");
construct_string(b, values[i], tab_level + 2 | 0);
return add(0, ";\n");
}
}(tab_level,values)), v[0]);
return add(tab_level, "}");
case 13 :
var values$1 = v[2];
add(tab_level, v[0][/* constructors */0][v[1]]);
if (values$1.length !== 0) {
add(tab_level, "(\n");
$$Array.iteri((function(tab_level,values$1){
return function (i, _) {
return construct_string(b, values$1[i], tab_level + 2 | 0);
}
}(tab_level,values$1)), values$1);
return add(tab_level, ")");
}
else {
return 0;
}
}
}
};
};
var buffer = Buffer.create(1024);
construct_string(buffer, v, 0);
return Buffer.contents(buffer);
}
exports.to_string = to_string;
/* No side effect */