decaffeinate-parser
Version:
A better AST for CoffeeScript, inspired by CoffeeScriptRedux.
22 lines (21 loc) • 1.06 kB
JavaScript
;
exports.__esModule = true;
var coffee_lex_1 = require("coffee-lex");
var nodes_1 = require("../nodes");
var getLocation_1 = require("../util/getLocation");
var mapValue_1 = require("./mapValue");
function mapSuper(context, node) {
var location = getLocation_1["default"](context, node);
var line = location.line, column = location.column, start = location.start;
var superTokenIndex = context.sourceTokens.indexOfTokenStartingAtSourceIndex(start);
if (!superTokenIndex) {
throw new Error('Expected token at the start of super node.');
}
var superToken = context.sourceTokens.tokenAtIndex(superTokenIndex);
if (!superToken || superToken.type !== coffee_lex_1.SourceType.SUPER) {
throw new Error('Expected super token at the start of super node.');
}
var superNode = new nodes_1.Super(line, column, start, superToken.end, context.source.slice(superToken.start, superToken.end));
return mapValue_1.reduceProperty(context, location, superNode, node.accessor);
}
exports["default"] = mapSuper;