42 lines
1.2 KiB
JavaScript
42 lines
1.2 KiB
JavaScript
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.getQuote = exports.quotes = void 0;
|
||
|
var parser_1 = require("../syntax/parser");
|
||
|
exports.quotes = {
|
||
|
name: 'quotes',
|
||
|
initialValue: 'none',
|
||
|
prefix: true,
|
||
|
type: 1 /* LIST */,
|
||
|
parse: function (_context, tokens) {
|
||
|
if (tokens.length === 0) {
|
||
|
return null;
|
||
|
}
|
||
|
var first = tokens[0];
|
||
|
if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {
|
||
|
return null;
|
||
|
}
|
||
|
var quotes = [];
|
||
|
var filtered = tokens.filter(parser_1.isStringToken);
|
||
|
if (filtered.length % 2 !== 0) {
|
||
|
return null;
|
||
|
}
|
||
|
for (var i = 0; i < filtered.length; i += 2) {
|
||
|
var open_1 = filtered[i].value;
|
||
|
var close_1 = filtered[i + 1].value;
|
||
|
quotes.push({ open: open_1, close: close_1 });
|
||
|
}
|
||
|
return quotes;
|
||
|
}
|
||
|
};
|
||
|
var getQuote = function (quotes, depth, open) {
|
||
|
if (!quotes) {
|
||
|
return '';
|
||
|
}
|
||
|
var quote = quotes[Math.min(depth, quotes.length - 1)];
|
||
|
if (!quote) {
|
||
|
return '';
|
||
|
}
|
||
|
return open ? quote.open : quote.close;
|
||
|
};
|
||
|
exports.getQuote = getQuote;
|
||
|
//# sourceMappingURL=quotes.js.map
|