"use strict"; const tokenize = require("postcss/lib/tokenize"); function templateTokenize () { const tokenizer = tokenize.apply(this, arguments); function nextToken () { const args = arguments; const returned = []; let token; let depth = 0; let line; let column; while ((token = tokenizer.nextToken.apply(tokenizer, args))) { if (token[0] !== "word") { if (token[0] === "{") { ++depth; } else if (token[0] === "}") { --depth; } } if (depth || returned.length) { line = token[4] || token[2] || line; column = token[5] || token[3] || column; returned.push(token); } if (!depth) { break; } } if (returned.length) { token = [ "word", returned.map(token => token[1]).join(""), returned[0][2], returned[0][3], line, column, ]; } return token; } return Object.assign({}, tokenizer, { nextToken, }); } module.exports = templateTokenize;