BVB ソース・コード

CoffeeScriptRedux 表示する helpers.jsソースコード

戻る ダウンロードCoffeeScriptRedux: 個別にダウンロードhelpers.jsソースコード - 全体をダウンロードCoffeeScriptReduxソースコード - タイプ:.js
  1. // Generated by CoffeeScript 2.0.0-beta9-dev
  2. var beingDeclared, cache$, cleanMarkers, colourise, COLOURS, concat, concatMap, CS, difference, envEnrichments, envEnrichments_, foldl, humanReadable, map, nub, numberLines, pointToErrorLocation, SUPPORTS_COLOUR, usedAsExpression, usedAsExpression_;
  3. cache$ = require('./functional-helpers');
  4. concat = cache$.concat;
  5. concatMap = cache$.concatMap;
  6. difference = cache$.difference;
  7. foldl = cache$.foldl;
  8. map = cache$.map;
  9. nub = cache$.nub;
  10. CS = require('./nodes');
  11. COLOURS = {
  12.   red: '\x1B[31m',
  13.   green: '\x1B[32m',
  14.   yellow: '\x1B[33m',
  15.   blue: '\x1B[34m',
  16.   magenta: '\x1B[35m',
  17.   cyan: '\x1B[36m'
  18. };
  19. SUPPORTS_COLOUR = ('undefined' !== typeof process && null != process && null != process.stderr ? process.stderr.isTTY : void 0) && !process.env.NODE_DISABLE_COLORS;
  20. colourise = function (colour, str) {
  21.   if (SUPPORTS_COLOUR) {
  22.     return '' + COLOURS[colour] + str + '\x1B[39m';
  23.   } else {
  24.     return str;
  25.   }
  26. };
  27. this.numberLines = numberLines = function (input, startLine) {
  28.   var currLine, i, line, lines, numbered, pad, padSize;
  29.   if (null == startLine)
  30.     startLine = 1;
  31.   lines = input.split('\n');
  32.   padSize = ('' + (lines.length + startLine - 1)).length;
  33.   numbered = function (accum$) {
  34.     for (var i$ = 0, length$ = lines.length; i$ < length$; ++i$) {
  35.       line = lines[i$];
  36.       i = i$;
  37.       currLine = '' + (i + startLine);
  38.       pad = Array(padSize + 1).join('0').slice(currLine.length);
  39.       accum$.push('' + pad + currLine + ' : ' + lines[i]);
  40.     }
  41.     return accum$;
  42.   }.call(this, []);
  43.   return numbered.join('\n');
  44. };
  45. cleanMarkers = function (str) {
  46.   return str.replace(/[\uEFEF\uEFFE\uEFFF]/g, '');
  47. };
  48. this.humanReadable = humanReadable = function (str) {
  49.   return str.replace(/\uEFEF/g, '(INDENT)').replace(/\uEFFE/g, '(DEDENT)').replace(/\uEFFF/g, '(TERM)');
  50. };
  51. this.formatParserError = function (input, e) {
  52.   var found, message, realColumn, unicode;
  53.   realColumn = cleanMarkers(('' + input.split('\n')[e.line - 1] + '\n').slice(0, e.column)).length;
  54.   if (!(null != e.found))
  55.     return 'Syntax error on line ' + e.line + ', column ' + realColumn + ': unexpected end of input';
  56.   found = JSON.stringify(humanReadable(e.found));
  57.   found = found.replace(/^"|"$/g, '').replace(/'/g, "\\'").replace(/\\"/g, '"');
  58.   unicode = e.found.charCodeAt(0).toString(16).toUpperCase();
  59.   unicode = '\\u' + '0000'.slice(unicode.length) + unicode;
  60.   message = 'Syntax error on line ' + e.line + ', column ' + realColumn + ": unexpected '" + found + "' (" + unicode + ')';
  61.   return '' + message + '\n' + pointToErrorLocation(input, e.line, realColumn);
  62. };
  63. this.pointToErrorLocation = pointToErrorLocation = function (source, line, column, numLinesOfContext) {
  64.   var currentLineOffset, lines, numberedLines, padSize, postLines, preLines, startLine;
  65.   if (null == numLinesOfContext)
  66.     numLinesOfContext = 3;
  67.   lines = source.split('\n');
  68.   if (!lines[lines.length - 1])
  69.     lines.pop();
  70.   currentLineOffset = line - 1;
  71.   startLine = currentLineOffset - numLinesOfContext;
  72.   if (startLine < 0)
  73.     startLine = 0;
  74.   preLines = lines.slice(startLine, +currentLineOffset + 1 || 9e9);
  75.   preLines[preLines.length - 1] = colourise('yellow', preLines[preLines.length - 1]);
  76.   postLines = lines.slice(currentLineOffset + 1, +(currentLineOffset + numLinesOfContext) + 1 || 9e9);
  77.   numberedLines = numberLines(cleanMarkers([].slice.call(preLines).concat([].slice.call(postLines)).join('\n')), startLine + 1).split('\n');
  78.   preLines = numberedLines.slice(0, preLines.length);
  79.   postLines = numberedLines.slice(preLines.length);
  80.   column = cleanMarkers(('' + lines[currentLineOffset] + '\n').slice(0, column)).length;
  81.   padSize = (currentLineOffset + 1 + postLines.length).toString(10).length;
  82.   return [].slice.call(preLines).concat(['' + colourise('red', Array(padSize + 1).join('^')) + ' : ' + Array(column).join(' ') + colourise('red', '^')], [].slice.call(postLines)).join('\n');
  83. };
  84. this.beingDeclared = beingDeclared = function (assignment) {
  85.   switch (false) {
  86.   case !!(null != assignment):
  87.     return [];
  88.   case !assignment['instanceof'](CS.Identifiers):
  89.     return [assignment.data];
  90.   case !assignment['instanceof'](CS.Rest):
  91.     return beingDeclared(assignment.expression);
  92.   case !assignment['instanceof'](CS.MemberAccessOps):
  93.     return [];
  94.   case !assignment['instanceof'](CS.DefaultParam):
  95.     return beingDeclared(assignment.param);
  96.   case !assignment['instanceof'](CS.ArrayInitialiser):
  97.     return concatMap(assignment.members, beingDeclared);
  98.   case !assignment['instanceof'](CS.ObjectInitialiser):
  99.     return concatMap(assignment.vals(), beingDeclared);
  100.   default:
  101.     throw new Error('beingDeclared: Non-exhaustive patterns in case: ' + assignment.className);
  102.   }
  103. };
  104. this.declarationsFor = function (node, inScope) {
  105.   var vars;
  106.   vars = envEnrichments(node, inScope);
  107.   return foldl(new CS.Undefined().g(), vars, function (expr, v) {
  108.     return new CS.AssignOp(new CS.Identifier(v).g(), expr).g();
  109.   });
  110. };
  111. usedAsExpression_ = function (ancestors) {
  112.   var grandparent, parent;
  113.   parent = ancestors[0];
  114.   grandparent = ancestors[1];
  115.   switch (false) {
  116.   case !!(null != parent):
  117.     return true;
  118.   case !parent['instanceof'](CS.Program, CS.Class):
  119.     return false;
  120.   case !parent['instanceof'](CS.SeqOp):
  121.     return this === parent.right && usedAsExpression(parent, ancestors.slice(1));
  122.   case !(parent['instanceof'](CS.Block) && parent.statements.indexOf(this) !== parent.statements.length - 1):
  123.     return false;
  124.   case !(parent['instanceof'](CS.Functions) && parent.body === this && null != grandparent && grandparent['instanceof'](CS.Constructor)):
  125.     return false;
  126.   default:
  127.     return true;
  128.   }
  129. };
  130. this.usedAsExpression = usedAsExpression = function (node, ancestors) {
  131.   return usedAsExpression_.call(node, ancestors);
  132. };
  133. envEnrichments_ = function (inScope) {
  134.   var possibilities;
  135.   if (null == inScope)
  136.     inScope = [];
  137.   possibilities = nub(function () {
  138.     switch (false) {
  139.     case !this['instanceof'](CS.AssignOp):
  140.       return concat([
  141.         beingDeclared(this.assignee),
  142.         envEnrichments(this.expression)
  143.       ]);
  144.     case !this['instanceof'](CS.Class):
  145.       return concat([
  146.         beingDeclared(this.nameAssignee),
  147.         envEnrichments(this.parent)
  148.       ]);
  149.     case !this['instanceof'](CS.ForIn, CS.ForOf):
  150.       return concat([
  151.         beingDeclared(this.keyAssignee),
  152.         beingDeclared(this.valAssignee),
  153.         envEnrichments(this.target),
  154.         envEnrichments(this.step),
  155.         envEnrichments(this.filter),
  156.         envEnrichments(this.body)
  157.       ]);
  158.     case !this['instanceof'](CS.Try):
  159.       return concat([
  160.         beingDeclared(this.catchAssignee),
  161.         envEnrichments(this.body),
  162.         envEnrichments(this.catchBody),
  163.         envEnrichments(this.finallyBody)
  164.       ]);
  165.     case !this['instanceof'](CS.Functions):
  166.       return [];
  167.     default:
  168.       return concatMap(this.childNodes, function (this$) {
  169.         return function (child) {
  170.           if (in$(child, this$.listMembers)) {
  171.             return concatMap(this$[child], function (m) {
  172.               return envEnrichments(m, inScope);
  173.             });
  174.           } else {
  175.             return envEnrichments(this$[child], inScope);
  176.           }
  177.         };
  178.       }(this));
  179.     }
  180.   }.call(this));
  181.   return difference(possibilities, inScope);
  182. };
  183. this.envEnrichments = envEnrichments = function (node) {
  184.   var args;
  185.   args = arguments.length > 1 ? [].slice.call(arguments, 1) : [];
  186.   if (null != node) {
  187.     return envEnrichments_.apply(node, args);
  188.   } else {
  189.     return [];
  190.   }
  191. };
  192. function in$(member, list) {
  193.   for (var i = 0, length = list.length; i < length; ++i)
  194.     if (i in list && list[i] === member)
  195.       return true;
  196.   return false;
  197. }
  198.  
個別にダウンロードhelpers.jsソースコード - 全体をダウンロードCoffeeScriptReduxソースコード
関連するソース/ソフトウェア:
breakpoint - Sa で本当にシンプルなメディア クエリ 2017-04-23
libsvm - 2017-04-22
grr - ウーの迅速な対応: リモート ライブ フォレンジック インシデント対応のため 2017-04-22
grit - * * 砥粒はもはや維持されています。Libgit2/頑丈なをチェックしてください。 * * 粒与え... 2017-04-22
guard-livereload - Guard::LiveReload は、'ビュー' ファイルが変更されたとき自動的にブラウザーを再読... 2017-04-22
Toucan - 素晴らしい画像スウィフト処理 2017-04-23
spring-security-oauth - 春 web アプリケーションの OAuth1(a)、OAuth2 機能 (コンシューマーとプロバイダ... 2017-04-23
rouge - Pygments http://rouge.jneen.net/ と互換性のある純粋な ruby コ... 2017-04-23
sphinx_rtd_theme - Readthedocs.org のスフィンクスのテーマ 2017-04-23
BlurEffectForAndroidDesign - 実装する方法を示すサンプルは、グラフィカルなトリックをぼかし 2017-04-23
swing - Swipeable カード インターフェイス。スワイプ左/スワイプ右はい/いいえを入力します。ゼリー... 2017-04-30
qTip2 - qTip2 - 非常に強力なヒント http://qtip2.com 2017-04-30
jo - シェルから JSON 出力 2017-04-30
Fluidbox - 複製し、流体の遷移と媒体で見たライト モジュールを改善します。 http:/... 2017-04-30
boto3 - Python の AWS SDK http://aws.amazon.com... 2017-04-30
PreloadJS - PreloadJS 簡単にプリロード資産と取得集計進行状況イベント JavaScript でできます... 2017-04-29
gotraining - トレーニング教材を行く: http://www.ArdanLabs.com 2017-04-29
eigen - あなたのポケットまたはあなたのトレンディなハイテクの企業のトートバッグ、芸術家気取りの iOS アプ... 2017-04-29
rack-cors - クロス オリジン リソース共有 (CORS)、オリジン AJAX を可能にする処理のためのミドルウェ... 2017-04-29
react-redux-tutorial - 中国語カタログの反応-redux-チュートリアル & & のコード例 2017-04-29

 トップへ戻る