sibilant 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/js/sibilant/include/macros.sibilant +6 -1
- data/js/sibilant/lib/browser.js +61 -105
- data/js/sibilant/lib/cli.js +1 -11
- data/js/sibilant/lib/options.js +2 -25
- data/js/sibilant/lib/repl.js +0 -2
- data/js/sibilant/lib/sibilant.js +57 -104
- data/js/sibilant/misc/sibilant-mode.el +1 -1
- data/js/sibilant/package.json +6 -3
- data/js/sibilant/package.sibilant +4 -3
- data/js/sibilant/public/javascripts/browser.js +61 -105
- data/js/sibilant/public/javascripts/macros.sibilant +6 -1
- data/js/sibilant/src/core.sibilant +25 -24
- data/js/sibilant/test/test.sibilant +24 -5
- data/lib/sibilant/version.rb +1 -1
- data/lib/sibilant.rb +6 -0
- data/spec/sibilant_spec.rb +4 -0
- metadata +2 -2
data/js/sibilant/lib/repl.js
CHANGED
@@ -38,13 +38,11 @@ var displayPrompt = (function() {
|
|
38
38
|
});
|
39
39
|
|
40
40
|
readline.on("line", (function(cmd) {
|
41
|
-
// cmd:required
|
42
41
|
var jsLine = "";
|
43
42
|
(function() {
|
44
43
|
try {
|
45
44
|
cmdBuffer = (cmdBuffer + cmd);
|
46
45
|
sibilant.tokenize(cmdBuffer).forEach((function(stmt) {
|
47
|
-
// stmt:required
|
48
46
|
return jsLine = (jsLine + sibilant.translate(stmt, "statement"));
|
49
47
|
}));
|
50
48
|
var result = vm.runInContext(jsLine, context, "sibilant-repl");
|
data/js/sibilant/lib/sibilant.js
CHANGED
@@ -3,12 +3,10 @@ var sibilant = exports,
|
|
3
3
|
path = require("path"),
|
4
4
|
fs = require("fs"),
|
5
5
|
error = (function(str) {
|
6
|
-
// str:required
|
7
6
|
throw new Error (str);
|
8
7
|
}),
|
9
8
|
inspect = util.inspect;
|
10
9
|
var bulkMap = (function(arr, fn) {
|
11
|
-
// arr:required fn:required
|
12
10
|
var index = 0,
|
13
11
|
groupSize = fn.length,
|
14
12
|
retArr = [ ];
|
@@ -26,12 +24,10 @@ var bulkMap = (function(arr, fn) {
|
|
26
24
|
});
|
27
25
|
|
28
26
|
var inject = (function(start, items, fn) {
|
29
|
-
// start:required items:required fn:required
|
30
27
|
var value = start;
|
31
28
|
(function() {
|
32
29
|
if ((items) && (items).constructor.name === "Array") {
|
33
30
|
return items.forEach((function(item, index) {
|
34
|
-
// item:required index:required
|
35
31
|
return value = fn(value, item, index);
|
36
32
|
}));
|
37
33
|
}
|
@@ -40,18 +36,14 @@ var inject = (function(start, items, fn) {
|
|
40
36
|
});
|
41
37
|
|
42
38
|
var map = (function(items, fn) {
|
43
|
-
// items:required fn:required
|
44
39
|
return inject([ ], items, (function(collector, item, index) {
|
45
|
-
// collector:required item:required index:required
|
46
40
|
collector.push(fn(item, index));
|
47
41
|
return collector;
|
48
42
|
}));
|
49
43
|
});
|
50
44
|
|
51
45
|
var select = (function(items, fn) {
|
52
|
-
// items:required fn:required
|
53
46
|
return inject([ ], items, (function(collector, item, index) {
|
54
|
-
// collector:required item:required index:required
|
55
47
|
(function() {
|
56
48
|
if (fn(item, index)) {
|
57
49
|
return collector.push(item);
|
@@ -62,7 +54,6 @@ var select = (function(items, fn) {
|
|
62
54
|
});
|
63
55
|
|
64
56
|
var detect = (function(items, fn) {
|
65
|
-
// items:required fn:required
|
66
57
|
var returnItem = undefined,
|
67
58
|
index = 0,
|
68
59
|
items = items;
|
@@ -83,7 +74,6 @@ var detect = (function(items, fn) {
|
|
83
74
|
});
|
84
75
|
|
85
76
|
var reject = (function(items, fn) {
|
86
|
-
// items:required fn:required
|
87
77
|
var args = [ items, fn ];
|
88
78
|
return select(items, (function() {
|
89
79
|
return (!fn.apply(undefined, arguments));
|
@@ -91,19 +81,15 @@ var reject = (function(items, fn) {
|
|
91
81
|
});
|
92
82
|
|
93
83
|
var compact = (function(arr) {
|
94
|
-
// arr:required
|
95
84
|
return select(arr, (function(item) {
|
96
|
-
// item:required
|
97
85
|
return (!!(item));
|
98
86
|
}));
|
99
87
|
});
|
100
88
|
|
101
89
|
var flatten = (function(items) {
|
102
|
-
// items:rest
|
103
90
|
var items = Array.prototype.slice.call(arguments, 0);
|
104
91
|
|
105
92
|
return inject([ ], items, (function(collector, item) {
|
106
|
-
// collector:required item:required
|
107
93
|
return collector.concat((function() {
|
108
94
|
if ((item) && (item).constructor.name === "Array") {
|
109
95
|
return flatten.apply(undefined, item);
|
@@ -127,14 +113,12 @@ sibilant.versionString = (function() {
|
|
127
113
|
});
|
128
114
|
|
129
115
|
sibilant.stripShebang = (function(data) {
|
130
|
-
// data:required
|
131
116
|
return data.replace(/^#!.*\n/, "");
|
132
117
|
});
|
133
118
|
|
134
119
|
(sibilant)["file"] = "eval.sibilant";
|
135
120
|
(sibilant)["dir"] = process.cwd();
|
136
121
|
var withDirAndFile = (function(dir, file, fn) {
|
137
|
-
// dir:required file:required fn:required
|
138
122
|
var before = {
|
139
123
|
dir: sibilant.dir,
|
140
124
|
file: sibilant.file
|
@@ -148,7 +132,6 @@ var withDirAndFile = (function(dir, file, fn) {
|
|
148
132
|
});
|
149
133
|
|
150
134
|
sibilant.translateFile = (function(fileName) {
|
151
|
-
// fileName:required
|
152
135
|
return withDirAndFile(path.dirname(fileName), fileName, (function() {
|
153
136
|
return sibilant.translateAll(sibilant.stripShebang(fs.readFileSync(fileName, "utf8")));
|
154
137
|
}));
|
@@ -159,12 +142,10 @@ sibilant.version = (function() {
|
|
159
142
|
});
|
160
143
|
|
161
144
|
(require.extensions)[".sibilant"] = (function(module, filename) {
|
162
|
-
// module:required filename:required
|
163
145
|
var content = sibilant.translateFile(filename);
|
164
146
|
return module._compile(content, filename);
|
165
147
|
});
|
166
148
|
sibilant.include = (function(file) {
|
167
|
-
// file:required
|
168
149
|
(function() {
|
169
150
|
if ((!file.match((new RegExp(".sibilant$", undefined))))) {
|
170
151
|
return file = (file + ".sibilant");
|
@@ -194,12 +175,10 @@ sibilant.include = (function(file) {
|
|
194
175
|
(sibilant.tokens)["specialLiteral"] = (sibilant.tokens.special + sibilant.tokens.literal);
|
195
176
|
(sibilant)["tokenPrecedence"] = [ "regex", "comment", "string", "number", "specialLiteral", "otherChar", "specialOpenParen", "closeParen", "alternativeParens" ];
|
196
177
|
var tokenize = sibilant.tokenize = (function(string) {
|
197
|
-
// string:required
|
198
178
|
var tokens = [ ],
|
199
179
|
parseStack = [ tokens ],
|
200
180
|
specials = [ ];
|
201
181
|
var acceptToken = (function(token) {
|
202
|
-
// token:required
|
203
182
|
return (parseStack)[0].push(token);
|
204
183
|
});
|
205
184
|
;
|
@@ -220,7 +199,6 @@ var tokenize = sibilant.tokenize = (function(string) {
|
|
220
199
|
});
|
221
200
|
;
|
222
201
|
var handleToken = (function(token) {
|
223
|
-
// token:required
|
224
202
|
var special = (token)[0],
|
225
203
|
token = token;
|
226
204
|
(function() {
|
@@ -269,11 +247,10 @@ var tokenize = sibilant.tokenize = (function(string) {
|
|
269
247
|
});
|
270
248
|
;
|
271
249
|
var orderedRegexen = map(sibilant.tokenPrecedence, (function(x) {
|
272
|
-
// x:required
|
273
250
|
return (sibilant.tokens)[x];
|
274
251
|
})),
|
275
252
|
masterRegex = (new RegExp((orderedRegexen).join("|"), "g"));
|
276
|
-
string
|
253
|
+
string
|
277
254
|
.match(masterRegex)
|
278
255
|
.forEach(handleToken)
|
279
256
|
;
|
@@ -285,10 +262,9 @@ var tokenize = sibilant.tokenize = (function(string) {
|
|
285
262
|
return tokens;
|
286
263
|
});
|
287
264
|
var indent = (function(args) {
|
288
|
-
// args:rest
|
289
265
|
var args = Array.prototype.slice.call(arguments, 0);
|
290
266
|
|
291
|
-
return (compact(args)
|
267
|
+
return (compact(args)
|
292
268
|
.join("\n")
|
293
269
|
.replace(/^/, "\n")
|
294
270
|
.replace(/\n/g, "\n ")
|
@@ -296,9 +272,7 @@ var indent = (function(args) {
|
|
296
272
|
});
|
297
273
|
|
298
274
|
var constructHash = (function(arrayOfArrays) {
|
299
|
-
// arrayOfArrays:required
|
300
275
|
return inject({ }, arrayOfArrays, (function(object, item) {
|
301
|
-
// object:required item:required
|
302
276
|
(object)[(item)[0]] = (object)[(item)[1]];
|
303
277
|
return object;
|
304
278
|
}));
|
@@ -307,7 +281,6 @@ var constructHash = (function(arrayOfArrays) {
|
|
307
281
|
var macros = { };
|
308
282
|
(sibilant)["macros"] = macros;
|
309
283
|
(macros)["return"] = (function(token) {
|
310
|
-
// token:required
|
311
284
|
var defaultReturn = ("return " + translate(token));
|
312
285
|
return (function() {
|
313
286
|
if ((token) && (token).constructor.name === "Array") {
|
@@ -361,41 +334,39 @@ var macros = { };
|
|
361
334
|
})();
|
362
335
|
});
|
363
336
|
var asStatement = (function(string) {
|
364
|
-
|
365
|
-
return string // chain
|
337
|
+
return string
|
366
338
|
.toString()
|
367
339
|
.replace(/;*\s*$/, ";")
|
368
340
|
;
|
369
341
|
});
|
370
342
|
|
371
343
|
macros.statement = (function(args) {
|
372
|
-
// args:rest
|
373
344
|
var args = Array.prototype.slice.call(arguments, 0);
|
374
345
|
|
375
346
|
return (macros.call.apply(undefined, args) + ";\n");
|
376
347
|
});
|
377
348
|
|
378
349
|
macros.progn = (function(body) {
|
379
|
-
// body:rest
|
380
350
|
var body = Array.prototype.slice.call(arguments, 0);
|
381
351
|
|
382
352
|
var lastIndex = Math.max(0, (body.length - 1));
|
383
353
|
(body)[lastIndex] = [ "return", (body)[lastIndex] ];
|
384
354
|
return (map(body, (function(arg) {
|
385
|
-
// arg:required
|
386
355
|
return (asStatement(translate(arg)));
|
387
356
|
}))).join("\n");
|
388
357
|
});
|
389
358
|
|
359
|
+
macros.emptyList = (function() {
|
360
|
+
return "null";
|
361
|
+
});
|
362
|
+
|
390
363
|
macros.call = (function(fnName, args) {
|
391
|
-
// fnName:required args:rest
|
392
364
|
var args = Array.prototype.slice.call(arguments, 1);
|
393
365
|
|
394
366
|
return (translate(fnName) + "(" + (map(args, translate)).join(", ") + ")");
|
395
367
|
});
|
396
368
|
|
397
369
|
macros.defun = (function(fnName, argsAndBody) {
|
398
|
-
// fnName:required argsAndBody:rest
|
399
370
|
var argsAndBody = Array.prototype.slice.call(arguments, 1);
|
400
371
|
|
401
372
|
var fnNameTr = translate(fnName),
|
@@ -410,7 +381,6 @@ macros.defun = (function(fnName, argsAndBody) {
|
|
410
381
|
});
|
411
382
|
|
412
383
|
macros.defmacro = (function(name, argsAndBody) {
|
413
|
-
// name:required argsAndBody:rest
|
414
384
|
var argsAndBody = Array.prototype.slice.call(arguments, 1);
|
415
385
|
|
416
386
|
var js = macros.lambda.apply(undefined, argsAndBody),
|
@@ -426,18 +396,15 @@ macros.defmacro = (function(name, argsAndBody) {
|
|
426
396
|
});
|
427
397
|
|
428
398
|
macros.concat = (function(args) {
|
429
|
-
// args:rest
|
430
399
|
var args = Array.prototype.slice.call(arguments, 0);
|
431
400
|
|
432
401
|
return ("(" + (map(args, translate)).join(" + ") + ")");
|
433
402
|
});
|
434
403
|
|
435
404
|
var transformArgs = (function(arglist) {
|
436
|
-
// arglist:required
|
437
405
|
var last = undefined,
|
438
406
|
args = [ ];
|
439
407
|
arglist.forEach((function(arg) {
|
440
|
-
// arg:required
|
441
408
|
return (function() {
|
442
409
|
if (((arg)[0] === "&")) {
|
443
410
|
return last = arg.slice(1);
|
@@ -456,10 +423,8 @@ var transformArgs = (function(arglist) {
|
|
456
423
|
});
|
457
424
|
|
458
425
|
macros.reverse = (function(arr) {
|
459
|
-
// arr:required
|
460
426
|
var reversed = [ ];
|
461
427
|
arr.forEach((function(item) {
|
462
|
-
// item:required
|
463
428
|
return reversed.unshift(item);
|
464
429
|
}));
|
465
430
|
return reversed;
|
@@ -467,17 +432,14 @@ macros.reverse = (function(arr) {
|
|
467
432
|
|
468
433
|
var reverse = macros.reverse;
|
469
434
|
var buildArgsString = (function(args, rest) {
|
470
|
-
// args:required rest:required
|
471
435
|
var argsString = "",
|
472
436
|
optionalCount = 0;
|
473
437
|
args.forEach((function(arg, optionIndex) {
|
474
|
-
// arg:required optionIndex:required
|
475
438
|
return (function() {
|
476
439
|
if (((arg)[0] === "optional")) {
|
477
|
-
argsString = (argsString + "if (arguments.length < " + (args.length - optionalCount) + ")" +
|
478
|
-
// arg:required argIndex:required
|
440
|
+
argsString = (argsString + "if (arguments.length < " + (args.length - optionalCount) + ")" + indent(("var " + map(args.slice((optionIndex + 1)), (function(arg, argIndex) {
|
479
441
|
return (translate((arg)[1]) + " = " + translate(((args)[(optionIndex + argIndex)])[1]));
|
480
|
-
}))
|
442
|
+
}))
|
481
443
|
.reverse()
|
482
444
|
.concat((translate((arg)[1]) + " = undefined"))
|
483
445
|
.join(", ")
|
@@ -495,28 +457,11 @@ var buildArgsString = (function(args, rest) {
|
|
495
457
|
})();
|
496
458
|
});
|
497
459
|
|
498
|
-
var buildCommentString = (function(args) {
|
499
|
-
// args:required
|
500
|
-
return (function() {
|
501
|
-
if (((args).length === 0)) {
|
502
|
-
return "";
|
503
|
-
} else {
|
504
|
-
return ("// " + (map(args, (function(arg) {
|
505
|
-
// arg:required
|
506
|
-
return (translate((arg)[1]) + ":" + (arg)[0]);
|
507
|
-
}))).join(" "));
|
508
|
-
}
|
509
|
-
})();
|
510
|
-
});
|
511
|
-
|
512
|
-
// brain 'splode
|
513
460
|
macros.lambda = (function(arglist, body) {
|
514
|
-
// arglist:required body:rest
|
515
461
|
var body = Array.prototype.slice.call(arguments, 1);
|
516
462
|
|
517
463
|
var args = transformArgs(arglist),
|
518
464
|
rest = (select(args, (function(arg) {
|
519
|
-
// arg:required
|
520
465
|
return ("rest" === (arg)[0]);
|
521
466
|
})))[0],
|
522
467
|
docString = undefined;
|
@@ -533,13 +478,10 @@ macros.lambda = (function(arglist, body) {
|
|
533
478
|
return args;
|
534
479
|
}
|
535
480
|
})(),
|
536
|
-
argsString = buildArgsString(noRestArgs, rest)
|
537
|
-
commentString = buildCommentString(args);
|
481
|
+
argsString = buildArgsString(noRestArgs, rest);
|
538
482
|
return ("(function(" + (map(args, (function(arg) {
|
539
|
-
// arg:required
|
540
483
|
return translate((arg)[1]);
|
541
|
-
}))).join(", ") + ") {" + indent(
|
542
|
-
// stmt:required
|
484
|
+
}))).join(", ") + ") {" + indent(docString, argsString, (map(body, (function(stmt) {
|
543
485
|
var tstmt = translate(stmt);
|
544
486
|
return (tstmt + (function() {
|
545
487
|
if (((tstmt.slice(-1))[0] === ";")) {
|
@@ -552,7 +494,6 @@ macros.lambda = (function(arglist, body) {
|
|
552
494
|
});
|
553
495
|
|
554
496
|
macros.quote = (function(item) {
|
555
|
-
// item:required
|
556
497
|
return (function() {
|
557
498
|
if (("Array" === item.constructor.name)) {
|
558
499
|
return ("[ " + (map(item, macros.quote)).join(", ") + " ]");
|
@@ -569,7 +510,6 @@ macros.quote = (function(item) {
|
|
569
510
|
});
|
570
511
|
|
571
512
|
macros.hash = (function(pairs) {
|
572
|
-
// pairs:rest
|
573
513
|
var pairs = Array.prototype.slice.call(arguments, 0);
|
574
514
|
|
575
515
|
(function() {
|
@@ -578,7 +518,6 @@ macros.hash = (function(pairs) {
|
|
578
518
|
}
|
579
519
|
})();
|
580
520
|
var pairStrings = bulkMap(pairs, (function(key, value) {
|
581
|
-
// key:required value:required
|
582
521
|
return (translate(key) + ": " + translate(value));
|
583
522
|
}));
|
584
523
|
return (function() {
|
@@ -591,19 +530,57 @@ macros.hash = (function(pairs) {
|
|
591
530
|
});
|
592
531
|
|
593
532
|
var literal = (function(string) {
|
594
|
-
|
595
|
-
return inject(string // chain
|
533
|
+
return inject(string
|
596
534
|
.replace(/\*/g, "_")
|
597
535
|
.replace(/\?$/, "__QUERY")
|
598
536
|
.replace(/!$/, "__BANG")
|
599
537
|
, string.match(/-(.)/g), (function(returnString, match) {
|
600
|
-
// returnString:required match:required
|
601
538
|
return returnString.replace(match, (match)[1].toUpperCase());
|
602
539
|
}));
|
603
540
|
});
|
604
541
|
|
542
|
+
var translateListToken = (function(token, hint) {
|
543
|
+
return (function() {
|
544
|
+
if (((token).length === 0)) {
|
545
|
+
return macros.emptyList();
|
546
|
+
} else {
|
547
|
+
return (function() {
|
548
|
+
if (typeof((macros)[translate((token)[0])]) !== 'undefined') {
|
549
|
+
return (macros)[translate((token)[0])].apply(undefined, token.slice(1));
|
550
|
+
} else {
|
551
|
+
return (macros)[(hint || "call")].apply(undefined, token);
|
552
|
+
}
|
553
|
+
})();
|
554
|
+
}
|
555
|
+
})();
|
556
|
+
});
|
557
|
+
|
558
|
+
var translateStringToken = (function(token, hint) {
|
559
|
+
return (function() {
|
560
|
+
if (token.match((new RegExp(("^" + sibilant.tokens.literal + "$"), undefined)))) {
|
561
|
+
return literal(token);
|
562
|
+
} else {
|
563
|
+
return (function() {
|
564
|
+
if (token.match((new RegExp("^;", undefined)))) {
|
565
|
+
return token.replace((new RegExp("^;+", undefined)), "//");
|
566
|
+
} else {
|
567
|
+
return (function() {
|
568
|
+
if (("\"" === (token)[0] &&
|
569
|
+
"\"" === (token.slice(-1))[0])) {
|
570
|
+
return token
|
571
|
+
.split("\n")
|
572
|
+
.join("\\n\" +\n\"");
|
573
|
+
} else {
|
574
|
+
return token;
|
575
|
+
}
|
576
|
+
})();
|
577
|
+
}
|
578
|
+
})();
|
579
|
+
}
|
580
|
+
})();
|
581
|
+
});
|
582
|
+
|
605
583
|
var translate = (function(token, hint) {
|
606
|
-
// token:required hint:required
|
607
584
|
var hint = hint;
|
608
585
|
(function() {
|
609
586
|
if ((hint && typeof((macros)[hint]) === 'undefined')) {
|
@@ -621,34 +598,13 @@ var translate = (function(token, hint) {
|
|
621
598
|
try {
|
622
599
|
return (function() {
|
623
600
|
if ((token) && (token).constructor.name === "Array") {
|
624
|
-
return (
|
625
|
-
if (typeof((macros)[translate((token)[0])]) !== 'undefined') {
|
626
|
-
return (macros)[translate((token)[0])].apply(undefined, token.slice(1));
|
627
|
-
} else {
|
628
|
-
return (macros)[(hint || "call")].apply(undefined, token);
|
629
|
-
}
|
630
|
-
})();
|
601
|
+
return translateListToken(token, hint);
|
631
602
|
} else {
|
632
603
|
return (function() {
|
633
|
-
if (
|
634
|
-
return
|
604
|
+
if (typeof(token) === "string") {
|
605
|
+
return translateStringToken(token, hint);
|
635
606
|
} else {
|
636
|
-
return
|
637
|
-
if ((typeof(token) === "string" && token.match((new RegExp("^;", undefined))))) {
|
638
|
-
return token.replace((new RegExp("^;+", undefined)), "//");
|
639
|
-
} else {
|
640
|
-
return (function() {
|
641
|
-
if ((typeof(token) === "string" && ("\"" === (token)[0] &&
|
642
|
-
"\"" === (token.slice(-1))[0]))) {
|
643
|
-
return token // chain
|
644
|
-
.split("\n")
|
645
|
-
.join("\\n\" +\n\"");
|
646
|
-
} else {
|
647
|
-
return token;
|
648
|
-
}
|
649
|
-
})();
|
650
|
-
}
|
651
|
-
})();
|
607
|
+
return token;
|
652
608
|
}
|
653
609
|
})();
|
654
610
|
}
|
@@ -663,10 +619,8 @@ var translate = (function(token, hint) {
|
|
663
619
|
|
664
620
|
(sibilant)["translate"] = translate;
|
665
621
|
var translateAll = (function(contents) {
|
666
|
-
// contents:required
|
667
622
|
var buffer = "";
|
668
623
|
tokenize(contents).forEach((function(token) {
|
669
|
-
// token:required
|
670
624
|
var line = translate(token, "statement");
|
671
625
|
return (function() {
|
672
626
|
if (line) {
|
@@ -680,7 +634,6 @@ var translateAll = (function(contents) {
|
|
680
634
|
(sibilant)["translateAll"] = translateAll;
|
681
635
|
|
682
636
|
macros.include = (function(file) {
|
683
|
-
// file:required
|
684
637
|
return sibilant.include(eval(translate(file)));
|
685
638
|
});
|
686
639
|
|
data/js/sibilant/package.json
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
{
|
2
2
|
"name": "sibilant",
|
3
|
-
"version": "0.1.
|
3
|
+
"version": "0.1.4",
|
4
4
|
"keywords": [ "lisp", "javascript", "language" ],
|
5
5
|
"description": "javascript with a lisp",
|
6
6
|
"contributors": [ "Jacob Rothstein <hi@jbr.me> (http://jbr.me)", "Matthew Phillips (http://www.matthewphillips.info/)", "Yuest Wang (http://yue.st/)", "Lyndon Tremblay (http://www.hoovy.org)", "David Sargeant (https://github.com/dubiousdavid)" ],
|
7
|
-
"
|
7
|
+
"repository": {
|
8
8
|
"type": "git",
|
9
9
|
"url": "http://github.com/jbr/sibilant.git"
|
10
10
|
},
|
@@ -14,6 +14,9 @@
|
|
14
14
|
},
|
15
15
|
"bin": { "sibilant": "./bin/sibilant" },
|
16
16
|
"main": "./lib/sibilant",
|
17
|
-
"scripts": {
|
17
|
+
"scripts": {
|
18
|
+
"test": "npm run-script build && node ./bin/sibilant test/test.sibilant -x",
|
19
|
+
"build": "bin/sibilant src/*.sibilant -o lib && bin/sibilant package.sibilant > package.json"
|
20
|
+
}
|
18
21
|
}
|
19
22
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
{ 'name 'sibilant
|
2
|
-
'version "0.1.
|
2
|
+
'version "0.1.4"
|
3
3
|
'keywords '(lisp javascript language)
|
4
4
|
'description "javascript with a lisp"
|
5
5
|
'contributors [ "Jacob Rothstein <hi@jbr.me> (http://jbr.me)"
|
@@ -7,10 +7,11 @@
|
|
7
7
|
"Yuest Wang (http://yue.st/)"
|
8
8
|
"Lyndon Tremblay (http://www.hoovy.org)"
|
9
9
|
"David Sargeant (https://github.com/dubiousdavid)" ]
|
10
|
-
'
|
10
|
+
'repository { 'type 'git
|
11
11
|
'url "http://github.com/jbr/sibilant.git" }
|
12
12
|
'bugs { 'mail "sibilant@librelist.com"
|
13
13
|
'url "http://github.com/jbr/sibilant/issues" }
|
14
14
|
'bin { 'sibilant "./bin/sibilant" }
|
15
15
|
'main "./lib/sibilant"
|
16
|
-
'scripts { 'test "node ./bin/sibilant test/test.sibilant -x"
|
16
|
+
'scripts { 'test "npm run-script build && node ./bin/sibilant test/test.sibilant -x"
|
17
|
+
'build "bin/sibilant src/*.sibilant -o lib && bin/sibilant package.sibilant > package.json" }}
|