sibilant 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- 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" }}
|