2023-10-03 11:14:36 +08:00
|
|
|
var utils = require('../utils')
|
|
|
|
, nodes = require('../nodes');
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Splits the given `val` by `delim`
|
|
|
|
*
|
|
|
|
* @param {String} delim
|
|
|
|
* @param {String|Ident} val
|
|
|
|
* @return {Expression}
|
|
|
|
* @api public
|
|
|
|
*/
|
|
|
|
|
|
|
|
function split(delim, val){
|
|
|
|
utils.assertString(delim, 'delimiter');
|
|
|
|
utils.assertString(val, 'val');
|
|
|
|
var splitted = val.string.split(delim.string);
|
|
|
|
var expr = new nodes.Expression();
|
|
|
|
var ItemNode = val instanceof nodes.Ident
|
|
|
|
? nodes.Ident
|
|
|
|
: nodes.String;
|
|
|
|
for (var i = 0, len = splitted.length; i < len; ++i) {
|
|
|
|
expr.nodes.push(new ItemNode(splitted[i]));
|
|
|
|
}
|
|
|
|
return expr;
|
|
|
|
}
|
|
|
|
split.params = ['delim', 'val'];
|
|
|
|
module.exports = split;
|