nl_tokens: Return a range of numbers or letters .
pl_tokens: function fillRange ( start , stop , step , options ) { if ( typeof start === 'undefined' ) { return [ ] ; } if ( typeof stop === 'undefined' || start === stop ) { // special case, for handling negative zero var isString = typeof start === 'string' ; if ( isNumber ( start ) && ! toNumber ( start ) ) { return [ isString ? '0' : 0 ] ; } return [ start ] ; } if ( typeof step !== 'number' && typeof step !== 'string' ) { options = step ; step = undefined ; } if ( typeof options === 'function' ) { options = { transform : options } ; } var opts = extend ( { step : step } , options ) ; if ( opts . step && ! isValidNumber ( opts . step ) ) { if ( opts . strictRanges === true ) { throw new TypeError ( 'expected options.step to be a number' ) ; } return [ ] ; } opts . isNumber = isValidNumber ( start ) && isValidNumber ( stop ) ; if ( ! opts . isNumber && ! isValid ( start , stop ) ) { if ( opts . strictRanges === true ) { throw <mask> RangeError ( 'invalid range arguments: ' + util . inspect ( [ start , stop ] ) ) ; } return [ ] ; } opts . isPadded = isPadded ( start ) || isPadded ( stop ) ; opts . toString = opts . stringify || typeof opts . step === 'string' || typeof start === 'string' || typeof stop === 'string' || ! opts . isNumber ; if ( opts . isPadded ) { opts . maxLength = Math . max ( String ( start ) . length , String ( stop ) . length ) ; } // support legacy minimatch/fill-range options if ( typeof opts . optimize === 'boolean' ) opts . toRegex = opts . optimize ; if ( typeof opts . makeRe === 'boolean' ) opts . toRegex = opts . makeRe ; return expand ( start , stop , opts ) ; }