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.
@@ -228,7 +228,7 @@
228
228
  (concat "(!!(" (translate expr) "))"))
229
229
 
230
230
  (defmacro chain (object &rest calls)
231
- (concat (translate object) " // chain"
231
+ (concat (translate object)
232
232
  (indent (join "\n"
233
233
  (map calls
234
234
  (lambda (call, index)
@@ -237,6 +237,11 @@
237
237
  (concat "." (translate method)
238
238
  "(" (join ", " (map args translate)) ")")))))))
239
239
 
240
+ (defmacro chainable (&rest names)
241
+ (each (name) names
242
+ (macros.defmacro name ['target "&rest" 'calls]
243
+ ['apply 'macros.chain ['cons ['macros.call ['quote name] 'target] 'calls]])))
244
+
240
245
  (defmacro try (tryblock catchblock)
241
246
  (concat
242
247
  "(function() {"
@@ -1,12 +1,10 @@
1
1
  (function() {
2
2
  var sibilant = { };
3
3
  var error = (function(str) {
4
- // str:required
5
4
  throw new Error (str);
6
5
  });
7
6
  ;
8
7
  var inspect = (function(item) {
9
- // item:required
10
8
  return (function() {
11
9
  if (item.toSource) {
12
10
  return item.toSource();
@@ -19,7 +17,6 @@
19
17
  (window)["sibilant"] = sibilant;
20
18
  var exports = { };
21
19
  var bulkMap = (function(arr, fn) {
22
- // arr:required fn:required
23
20
  var index = 0,
24
21
  groupSize = fn.length,
25
22
  retArr = [ ];
@@ -37,12 +34,10 @@
37
34
  });
38
35
 
39
36
  var inject = (function(start, items, fn) {
40
- // start:required items:required fn:required
41
37
  var value = start;
42
38
  (function() {
43
39
  if ((items) && (items).constructor.name === "Array") {
44
40
  return items.forEach((function(item, index) {
45
- // item:required index:required
46
41
  return value = fn(value, item, index);
47
42
  }));
48
43
  }
@@ -51,18 +46,14 @@
51
46
  });
52
47
 
53
48
  var map = (function(items, fn) {
54
- // items:required fn:required
55
49
  return inject([ ], items, (function(collector, item, index) {
56
- // collector:required item:required index:required
57
50
  collector.push(fn(item, index));
58
51
  return collector;
59
52
  }));
60
53
  });
61
54
 
62
55
  var select = (function(items, fn) {
63
- // items:required fn:required
64
56
  return inject([ ], items, (function(collector, item, index) {
65
- // collector:required item:required index:required
66
57
  (function() {
67
58
  if (fn(item, index)) {
68
59
  return collector.push(item);
@@ -73,7 +64,6 @@
73
64
  });
74
65
 
75
66
  var detect = (function(items, fn) {
76
- // items:required fn:required
77
67
  var returnItem = undefined,
78
68
  index = 0,
79
69
  items = items;
@@ -94,7 +84,6 @@
94
84
  });
95
85
 
96
86
  var reject = (function(items, fn) {
97
- // items:required fn:required
98
87
  var args = [ items, fn ];
99
88
  return select(items, (function() {
100
89
  return (!fn.apply(undefined, arguments));
@@ -102,19 +91,15 @@
102
91
  });
103
92
 
104
93
  var compact = (function(arr) {
105
- // arr:required
106
94
  return select(arr, (function(item) {
107
- // item:required
108
95
  return (!!(item));
109
96
  }));
110
97
  });
111
98
 
112
99
  var flatten = (function(items) {
113
- // items:rest
114
100
  var items = Array.prototype.slice.call(arguments, 0);
115
101
 
116
102
  return inject([ ], items, (function(collector, item) {
117
- // collector:required item:required
118
103
  return collector.concat((function() {
119
104
  if ((item) && (item).constructor.name === "Array") {
120
105
  return flatten.apply(undefined, item);
@@ -141,12 +126,10 @@
141
126
  (sibilant.tokens)["specialLiteral"] = (sibilant.tokens.special + sibilant.tokens.literal);
142
127
  (sibilant)["tokenPrecedence"] = [ "regex", "comment", "string", "number", "specialLiteral", "otherChar", "specialOpenParen", "closeParen", "alternativeParens" ];
143
128
  var tokenize = sibilant.tokenize = (function(string) {
144
- // string:required
145
129
  var tokens = [ ],
146
130
  parseStack = [ tokens ],
147
131
  specials = [ ];
148
132
  var acceptToken = (function(token) {
149
- // token:required
150
133
  return (parseStack)[0].push(token);
151
134
  });
152
135
  ;
@@ -167,7 +150,6 @@
167
150
  });
168
151
  ;
169
152
  var handleToken = (function(token) {
170
- // token:required
171
153
  var special = (token)[0],
172
154
  token = token;
173
155
  (function() {
@@ -216,11 +198,10 @@
216
198
  });
217
199
  ;
218
200
  var orderedRegexen = map(sibilant.tokenPrecedence, (function(x) {
219
- // x:required
220
201
  return (sibilant.tokens)[x];
221
202
  })),
222
203
  masterRegex = (new RegExp((orderedRegexen).join("|"), "g"));
223
- string // chain
204
+ string
224
205
  .match(masterRegex)
225
206
  .forEach(handleToken)
226
207
  ;
@@ -232,10 +213,9 @@
232
213
  return tokens;
233
214
  });
234
215
  var indent = (function(args) {
235
- // args:rest
236
216
  var args = Array.prototype.slice.call(arguments, 0);
237
217
 
238
- return (compact(args) // chain
218
+ return (compact(args)
239
219
  .join("\n")
240
220
  .replace(/^/, "\n")
241
221
  .replace(/\n/g, "\n ")
@@ -243,9 +223,7 @@
243
223
  });
244
224
 
245
225
  var constructHash = (function(arrayOfArrays) {
246
- // arrayOfArrays:required
247
226
  return inject({ }, arrayOfArrays, (function(object, item) {
248
- // object:required item:required
249
227
  (object)[(item)[0]] = (object)[(item)[1]];
250
228
  return object;
251
229
  }));
@@ -254,7 +232,6 @@
254
232
  var macros = { };
255
233
  (sibilant)["macros"] = macros;
256
234
  (macros)["return"] = (function(token) {
257
- // token:required
258
235
  var defaultReturn = ("return " + translate(token));
259
236
  return (function() {
260
237
  if ((token) && (token).constructor.name === "Array") {
@@ -308,41 +285,39 @@
308
285
  })();
309
286
  });
310
287
  var asStatement = (function(string) {
311
- // string:required
312
- return string // chain
288
+ return string
313
289
  .toString()
314
290
  .replace(/;*\s*$/, ";")
315
291
  ;
316
292
  });
317
293
 
318
294
  macros.statement = (function(args) {
319
- // args:rest
320
295
  var args = Array.prototype.slice.call(arguments, 0);
321
296
 
322
297
  return (macros.call.apply(undefined, args) + ";\n");
323
298
  });
324
299
 
325
300
  macros.progn = (function(body) {
326
- // body:rest
327
301
  var body = Array.prototype.slice.call(arguments, 0);
328
302
 
329
303
  var lastIndex = Math.max(0, (body.length - 1));
330
304
  (body)[lastIndex] = [ "return", (body)[lastIndex] ];
331
305
  return (map(body, (function(arg) {
332
- // arg:required
333
306
  return (asStatement(translate(arg)));
334
307
  }))).join("\n");
335
308
  });
336
309
 
310
+ macros.emptyList = (function() {
311
+ return "null";
312
+ });
313
+
337
314
  macros.call = (function(fnName, args) {
338
- // fnName:required args:rest
339
315
  var args = Array.prototype.slice.call(arguments, 1);
340
316
 
341
317
  return (translate(fnName) + "(" + (map(args, translate)).join(", ") + ")");
342
318
  });
343
319
 
344
320
  macros.defun = (function(fnName, argsAndBody) {
345
- // fnName:required argsAndBody:rest
346
321
  var argsAndBody = Array.prototype.slice.call(arguments, 1);
347
322
 
348
323
  var fnNameTr = translate(fnName),
@@ -357,7 +332,6 @@
357
332
  });
358
333
 
359
334
  macros.defmacro = (function(name, argsAndBody) {
360
- // name:required argsAndBody:rest
361
335
  var argsAndBody = Array.prototype.slice.call(arguments, 1);
362
336
 
363
337
  var js = macros.lambda.apply(undefined, argsAndBody),
@@ -373,18 +347,15 @@
373
347
  });
374
348
 
375
349
  macros.concat = (function(args) {
376
- // args:rest
377
350
  var args = Array.prototype.slice.call(arguments, 0);
378
351
 
379
352
  return ("(" + (map(args, translate)).join(" + ") + ")");
380
353
  });
381
354
 
382
355
  var transformArgs = (function(arglist) {
383
- // arglist:required
384
356
  var last = undefined,
385
357
  args = [ ];
386
358
  arglist.forEach((function(arg) {
387
- // arg:required
388
359
  return (function() {
389
360
  if (((arg)[0] === "&")) {
390
361
  return last = arg.slice(1);
@@ -403,10 +374,8 @@
403
374
  });
404
375
 
405
376
  macros.reverse = (function(arr) {
406
- // arr:required
407
377
  var reversed = [ ];
408
378
  arr.forEach((function(item) {
409
- // item:required
410
379
  return reversed.unshift(item);
411
380
  }));
412
381
  return reversed;
@@ -414,17 +383,14 @@
414
383
 
415
384
  var reverse = macros.reverse;
416
385
  var buildArgsString = (function(args, rest) {
417
- // args:required rest:required
418
386
  var argsString = "",
419
387
  optionalCount = 0;
420
388
  args.forEach((function(arg, optionIndex) {
421
- // arg:required optionIndex:required
422
389
  return (function() {
423
390
  if (((arg)[0] === "optional")) {
424
- argsString = (argsString + "if (arguments.length < " + (args.length - optionalCount) + ")" + " // if " + translate((arg)[1]) + " is missing" + indent(("var " + map(args.slice((optionIndex + 1)), (function(arg, argIndex) {
425
- // arg:required argIndex:required
391
+ argsString = (argsString + "if (arguments.length < " + (args.length - optionalCount) + ")" + indent(("var " + map(args.slice((optionIndex + 1)), (function(arg, argIndex) {
426
392
  return (translate((arg)[1]) + " = " + translate(((args)[(optionIndex + argIndex)])[1]));
427
- })) // chain
393
+ }))
428
394
  .reverse()
429
395
  .concat((translate((arg)[1]) + " = undefined"))
430
396
  .join(", ")
@@ -442,28 +408,11 @@
442
408
  })();
443
409
  });
444
410
 
445
- var buildCommentString = (function(args) {
446
- // args:required
447
- return (function() {
448
- if (((args).length === 0)) {
449
- return "";
450
- } else {
451
- return ("// " + (map(args, (function(arg) {
452
- // arg:required
453
- return (translate((arg)[1]) + ":" + (arg)[0]);
454
- }))).join(" "));
455
- }
456
- })();
457
- });
458
-
459
- // brain 'splode
460
411
  macros.lambda = (function(arglist, body) {
461
- // arglist:required body:rest
462
412
  var body = Array.prototype.slice.call(arguments, 1);
463
413
 
464
414
  var args = transformArgs(arglist),
465
415
  rest = (select(args, (function(arg) {
466
- // arg:required
467
416
  return ("rest" === (arg)[0]);
468
417
  })))[0],
469
418
  docString = undefined;
@@ -480,13 +429,10 @@
480
429
  return args;
481
430
  }
482
431
  })(),
483
- argsString = buildArgsString(noRestArgs, rest),
484
- commentString = buildCommentString(args);
432
+ argsString = buildArgsString(noRestArgs, rest);
485
433
  return ("(function(" + (map(args, (function(arg) {
486
- // arg:required
487
434
  return translate((arg)[1]);
488
- }))).join(", ") + ") {" + indent(commentString, docString, argsString, (map(body, (function(stmt) {
489
- // stmt:required
435
+ }))).join(", ") + ") {" + indent(docString, argsString, (map(body, (function(stmt) {
490
436
  var tstmt = translate(stmt);
491
437
  return (tstmt + (function() {
492
438
  if (((tstmt.slice(-1))[0] === ";")) {
@@ -499,7 +445,6 @@
499
445
  });
500
446
 
501
447
  macros.quote = (function(item) {
502
- // item:required
503
448
  return (function() {
504
449
  if (("Array" === item.constructor.name)) {
505
450
  return ("[ " + (map(item, macros.quote)).join(", ") + " ]");
@@ -516,7 +461,6 @@
516
461
  });
517
462
 
518
463
  macros.hash = (function(pairs) {
519
- // pairs:rest
520
464
  var pairs = Array.prototype.slice.call(arguments, 0);
521
465
 
522
466
  (function() {
@@ -525,7 +469,6 @@
525
469
  }
526
470
  })();
527
471
  var pairStrings = bulkMap(pairs, (function(key, value) {
528
- // key:required value:required
529
472
  return (translate(key) + ": " + translate(value));
530
473
  }));
531
474
  return (function() {
@@ -538,19 +481,57 @@
538
481
  });
539
482
 
540
483
  var literal = (function(string) {
541
- // string:required
542
- return inject(string // chain
484
+ return inject(string
543
485
  .replace(/\*/g, "_")
544
486
  .replace(/\?$/, "__QUERY")
545
487
  .replace(/!$/, "__BANG")
546
488
  , string.match(/-(.)/g), (function(returnString, match) {
547
- // returnString:required match:required
548
489
  return returnString.replace(match, (match)[1].toUpperCase());
549
490
  }));
550
491
  });
551
492
 
493
+ var translateListToken = (function(token, hint) {
494
+ return (function() {
495
+ if (((token).length === 0)) {
496
+ return macros.emptyList();
497
+ } else {
498
+ return (function() {
499
+ if (typeof((macros)[translate((token)[0])]) !== 'undefined') {
500
+ return (macros)[translate((token)[0])].apply(undefined, token.slice(1));
501
+ } else {
502
+ return (macros)[(hint || "call")].apply(undefined, token);
503
+ }
504
+ })();
505
+ }
506
+ })();
507
+ });
508
+
509
+ var translateStringToken = (function(token, hint) {
510
+ return (function() {
511
+ if (token.match((new RegExp(("^" + sibilant.tokens.literal + "$"), undefined)))) {
512
+ return literal(token);
513
+ } else {
514
+ return (function() {
515
+ if (token.match((new RegExp("^;", undefined)))) {
516
+ return token.replace((new RegExp("^;+", undefined)), "//");
517
+ } else {
518
+ return (function() {
519
+ if (("\"" === (token)[0] &&
520
+ "\"" === (token.slice(-1))[0])) {
521
+ return token
522
+ .split("\n")
523
+ .join("\\n\" +\n\"");
524
+ } else {
525
+ return token;
526
+ }
527
+ })();
528
+ }
529
+ })();
530
+ }
531
+ })();
532
+ });
533
+
552
534
  var translate = (function(token, hint) {
553
- // token:required hint:required
554
535
  var hint = hint;
555
536
  (function() {
556
537
  if ((hint && typeof((macros)[hint]) === 'undefined')) {
@@ -568,34 +549,13 @@
568
549
  try {
569
550
  return (function() {
570
551
  if ((token) && (token).constructor.name === "Array") {
571
- return (function() {
572
- if (typeof((macros)[translate((token)[0])]) !== 'undefined') {
573
- return (macros)[translate((token)[0])].apply(undefined, token.slice(1));
574
- } else {
575
- return (macros)[(hint || "call")].apply(undefined, token);
576
- }
577
- })();
552
+ return translateListToken(token, hint);
578
553
  } else {
579
554
  return (function() {
580
- if ((typeof(token) === "string" && token.match((new RegExp(("^" + sibilant.tokens.literal + "$"), undefined))))) {
581
- return literal(token);
555
+ if (typeof(token) === "string") {
556
+ return translateStringToken(token, hint);
582
557
  } else {
583
- return (function() {
584
- if ((typeof(token) === "string" && token.match((new RegExp("^;", undefined))))) {
585
- return token.replace((new RegExp("^;+", undefined)), "//");
586
- } else {
587
- return (function() {
588
- if ((typeof(token) === "string" && ("\"" === (token)[0] &&
589
- "\"" === (token.slice(-1))[0]))) {
590
- return token // chain
591
- .split("\n")
592
- .join("\\n\" +\n\"");
593
- } else {
594
- return token;
595
- }
596
- })();
597
- }
598
- })();
558
+ return token;
599
559
  }
600
560
  })();
601
561
  }
@@ -610,10 +570,8 @@
610
570
 
611
571
  (sibilant)["translate"] = translate;
612
572
  var translateAll = (function(contents) {
613
- // contents:required
614
573
  var buffer = "";
615
574
  tokenize(contents).forEach((function(token) {
616
- // token:required
617
575
  var line = translate(token, "statement");
618
576
  return (function() {
619
577
  if (line) {
@@ -630,7 +588,6 @@
630
588
  var sibilant = window.sibilant,
631
589
  scripts = [ ];
632
590
  var evalWithTryCatch = (function(js) {
633
- // js:required
634
591
  return (function() {
635
592
  try {
636
593
  return eval(js);
@@ -646,13 +603,13 @@
646
603
  js = null;
647
604
  return (function() {
648
605
  if ((!sibilant.loadNextScript())) {
649
- return $("script[type=\"text/sibilant\"]:not([src])") // chain
606
+ return $("script[type=\"text/sibilant\"]:not([src])")
650
607
  .each((function() {
651
- lisp = $(this) // chain
608
+ lisp = $(this)
652
609
  .text()
653
610
  .replace(/(^\s*\/\/\<!\[CDATA\[)|(\/\/\]\]>\s*$)/g, "");
654
611
  js = sibilant.translateAll(lisp);
655
- $(this) // chain
612
+ $(this)
656
613
  .data("js", js)
657
614
  ;
658
615
  return evalWithTryCatch(js);
@@ -661,7 +618,7 @@
661
618
  })();
662
619
  });
663
620
  ;
664
- scripts = $.makeArray($("script[type=\"text/sibilant\"][src]") // chain
621
+ scripts = $.makeArray($("script[type=\"text/sibilant\"][src]")
665
622
  .map((function() {
666
623
  return this.src;
667
624
  }))
@@ -671,7 +628,6 @@
671
628
  return (function() {
672
629
  if (typeof(nextScript) !== 'undefined') {
673
630
  $.get(nextScript, (function(data) {
674
- // data:required
675
631
  evalWithTryCatch(sibilant.translateAll(data));
676
632
  return sibilant.scriptLoaded();
677
633
  }));
@@ -17,8 +17,7 @@ var createContext = (function() {
17
17
  });
18
18
 
19
19
  var runInSandbox = (function(js, inputPath) {
20
- // js:required inputPath:optional
21
- if (arguments.length < 2) // if inputPath is missing
20
+ if (arguments.length < 2)
22
21
  var inputPath = undefined;
23
22
 
24
23
  (function() {
@@ -54,18 +53,15 @@ cli.version = (function() {
54
53
  });
55
54
 
56
55
  cli.repl = (function(args) {
57
- // args:required
58
56
  return require("../lib/repl");
59
57
  });
60
58
 
61
59
  var readStdin = (function(fn) {
62
- // fn:required
63
60
  var stdin = process.stdin,
64
61
  data = "";
65
62
  stdin.resume();
66
63
  stdin.setEncoding("utf8");
67
64
  stdin.on("data", (function(chunk) {
68
- // chunk:required
69
65
  return data = (data + chunk);
70
66
  }));
71
67
  return stdin.on("end", (function() {
@@ -74,15 +70,12 @@ var readStdin = (function(fn) {
74
70
  });
75
71
 
76
72
  cli.eval = (function(args, options) {
77
- // args:required options:required
78
73
  (options)["execute"] = true;
79
74
  return cli.input(args, options);
80
75
  });
81
76
 
82
77
  cli.input = (function(args, options) {
83
- // args:required options:required
84
78
  var process = (function(sibilantCode) {
85
- // sibilantCode:required
86
79
  var jsCode = sibilant.translateAll(sibilantCode);
87
80
  return (function() {
88
81
  if (options.execute) {
@@ -103,9 +96,7 @@ cli.input = (function(args, options) {
103
96
  });
104
97
 
105
98
  cli.help = (function(args, options) {
106
- // args:required options:required
107
99
  return fs.readFile((__dirname + "/../cli-help"), { encoding: "utf8" }, (function(err, data) {
108
- // err:required data:required
109
100
  (function() {
110
101
  if (err) {
111
102
  throw new Error (err);
@@ -132,7 +123,6 @@ var outputDir = (function() {
132
123
  }
133
124
  })();
134
125
  (cliOptions.file || [ ]).forEach((function(inputFile) {
135
- // inputFile:required
136
126
  var inputPath = path.join(process.cwd(), inputFile),
137
127
  translated = sibilant.translateFile(inputPath);
138
128
  return (function() {
@@ -1,5 +1,4 @@
1
1
  var bulkMap = (function(arr, fn) {
2
- // arr:required fn:required
3
2
  var index = 0,
4
3
  groupSize = fn.length,
5
4
  retArr = [ ];
@@ -17,12 +16,10 @@ var bulkMap = (function(arr, fn) {
17
16
  });
18
17
 
19
18
  var inject = (function(start, items, fn) {
20
- // start:required items:required fn:required
21
19
  var value = start;
22
20
  (function() {
23
21
  if ((items) && (items).constructor.name === "Array") {
24
22
  return items.forEach((function(item, index) {
25
- // item:required index:required
26
23
  return value = fn(value, item, index);
27
24
  }));
28
25
  }
@@ -31,18 +28,14 @@ var inject = (function(start, items, fn) {
31
28
  });
32
29
 
33
30
  var map = (function(items, fn) {
34
- // items:required fn:required
35
31
  return inject([ ], items, (function(collector, item, index) {
36
- // collector:required item:required index:required
37
32
  collector.push(fn(item, index));
38
33
  return collector;
39
34
  }));
40
35
  });
41
36
 
42
37
  var select = (function(items, fn) {
43
- // items:required fn:required
44
38
  return inject([ ], items, (function(collector, item, index) {
45
- // collector:required item:required index:required
46
39
  (function() {
47
40
  if (fn(item, index)) {
48
41
  return collector.push(item);
@@ -53,7 +46,6 @@ var select = (function(items, fn) {
53
46
  });
54
47
 
55
48
  var detect = (function(items, fn) {
56
- // items:required fn:required
57
49
  var returnItem = undefined,
58
50
  index = 0,
59
51
  items = items;
@@ -74,7 +66,6 @@ var detect = (function(items, fn) {
74
66
  });
75
67
 
76
68
  var reject = (function(items, fn) {
77
- // items:required fn:required
78
69
  var args = [ items, fn ];
79
70
  return select(items, (function() {
80
71
  return (!fn.apply(undefined, arguments));
@@ -82,19 +73,15 @@ var reject = (function(items, fn) {
82
73
  });
83
74
 
84
75
  var compact = (function(arr) {
85
- // arr:required
86
76
  return select(arr, (function(item) {
87
- // item:required
88
77
  return (!!(item));
89
78
  }));
90
79
  });
91
80
 
92
81
  var flatten = (function(items) {
93
- // items:rest
94
82
  var items = Array.prototype.slice.call(arguments, 0);
95
83
 
96
84
  return inject([ ], items, (function(collector, item) {
97
- // collector:required item:required
98
85
  return collector.concat((function() {
99
86
  if ((item) && (item).constructor.name === "Array") {
100
87
  return flatten.apply(undefined, item);
@@ -107,8 +94,7 @@ var flatten = (function(items) {
107
94
 
108
95
 
109
96
  var extractOptions = (function(config, args) {
110
- // config:required args:optional
111
- if (arguments.length < 2) // if args is missing
97
+ if (arguments.length < 2)
112
98
  var args = undefined;
113
99
 
114
100
  var args = (args || process.argv.slice(2)),
@@ -118,12 +104,10 @@ var extractOptions = (function(config, args) {
118
104
  config = (config || { }),
119
105
  unlabeled = [ ];
120
106
  var label__QUERY = (function(item) {
121
- // item:required
122
107
  return (typeof(item) === "string" && /^-/.test(item));
123
108
  });
124
109
  ;
125
110
  var synonymLookup = (function(item) {
126
- // item:required
127
111
  var configEntry = (config)[item];
128
112
  return (function() {
129
113
  if (typeof(configEntry) === "string") {
@@ -135,19 +119,16 @@ var extractOptions = (function(config, args) {
135
119
  });
136
120
  ;
137
121
  var takesArgs__QUERY = (function(item) {
138
- // item:required
139
122
  return (false !== (config)[labelFor(item)]);
140
123
  });
141
124
  ;
142
125
  defaultLabel = synonymLookup(defaultLabel);
143
126
  currentLabel = defaultLabel;
144
127
  var labelFor = (function(item) {
145
- // item:required
146
128
  return synonymLookup(item.replace(/^-+/, ""));
147
129
  });
148
130
  ;
149
131
  var addValue = (function(hash, key, value) {
150
- // hash:required key:required value:required
151
132
  var currentValue = (hash)[key];
152
133
  (function() {
153
134
  if (typeof(currentValue) === 'undefined') {
@@ -167,7 +148,6 @@ var extractOptions = (function(config, args) {
167
148
  });
168
149
  ;
169
150
  return inject({ }, args, (function(returnHash, item, index) {
170
- // returnHash:required item:required index:required
171
151
  (function() {
172
152
  if (("--" === item)) {
173
153
  return afterBreak = true;
@@ -199,15 +179,13 @@ var extractOptions = (function(config, args) {
199
179
  });
200
180
 
201
181
  var processOptions = (function(config) {
202
- // config:optional
203
- if (arguments.length < 1) // if config is missing
182
+ if (arguments.length < 1)
204
183
  var config = undefined;
205
184
 
206
185
  var options = extractOptions(config);
207
186
  (function() {
208
187
  if (config) {
209
188
  var handlePair = (function(key, value) {
210
- // key:required value:required
211
189
  var handle = (config)[key];
212
190
  (function() {
213
191
  if (typeof(handle) === "string") {
@@ -221,7 +199,6 @@ var processOptions = (function(config) {
221
199
  })();
222
200
  });
223
201
  return Object.keys(options).forEach((function(key) {
224
- // key:required
225
202
  return handlePair(key, (options)[key]);
226
203
  }));
227
204
  }