blob: b3fd4adfd9e77762d16b25acced450d8eee8855c [file] [log] [blame]
/* eslint no-param-reassign: off */
module.exports = {
interpolation(token) {
let first = token;
const tokens = [token];
const validTypes = ['word', '{', '}'];
token = this.tokenizer.nextToken();
// look for @{ but not @[word]{
if (first[1].length > 1 || token[0] !== '{') {
this.tokenizer.back(token);
return false;
}
while (token && validTypes.includes(token[0])) {
tokens.push(token);
token = this.tokenizer.nextToken();
}
const words = tokens.map((tokn) => tokn[1]);
[first] = tokens;
const last = tokens.pop();
const start = [first[2], first[3]];
const end = [last[4] || last[2], last[5] || last[3]];
const newToken = ['word', words.join('')].concat(start, end);
this.tokenizer.back(token);
this.tokenizer.back(newToken);
return true;
}
};