art-template
Version:
JavaScript Template Engine
26 lines (22 loc) • 662 B
JavaScript
;
var isKeyword = require('is-keyword-js');
var jsTokens = require('js-tokens').default;
var matchToToken = require('js-tokens').matchToToken;
/**
* 将逻辑表达式解释为 Tokens
* @param {string} code
* @return {Object[]}
*/
var esTokenizer = function esTokenizer(code) {
var tokens = code.match(jsTokens).map(function (value) {
jsTokens.lastIndex = 0;
return matchToToken(jsTokens.exec(value));
}).map(function (token) {
if (token.type === 'name' && isKeyword(token.value)) {
token.type = 'keyword';
}
return token;
});
return tokens;
};
module.exports = esTokenizer;