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