decaffeinate-parser
Version:
A better AST for CoffeeScript, inspired by CoffeeScriptRedux.
23 lines (22 loc) • 991 B
JavaScript
;
exports.__esModule = true;
var nodes_1 = require("decaffeinate-coffeescript2/lib/coffeescript/nodes");
var nodes_2 = require("../nodes");
var isCommentOnlyNode_1 = require("../util/isCommentOnlyNode");
var mapAny_1 = require("./mapAny");
function mapParens(context, node) {
if (!(node.body instanceof nodes_1.Block)) {
return mapAny_1["default"](context, node.body);
}
var expressions = node.body.expressions;
expressions = expressions.filter(function (expr) { return !isCommentOnlyNode_1["default"](expr); });
if (expressions.length === 1) {
return mapAny_1["default"](context, expressions[0]);
}
return expressions
.map(function (expression) { return mapAny_1["default"](context, expression); })
.reduceRight(function (right, left) {
return new nodes_2.SeqOp(left.line, left.column, left.start, right.end, context.source.slice(left.start, right.end), left, right);
});
}
exports["default"] = mapParens;