sibilant 0.0.2 → 0.0.3

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