module.exports = parse;
//following www.w3.org/TR/css3-selectors/#nth-child-pseudo
//[ ['-'|'+']? INTEGER? {N} [ S* ['-'|'+'] S* INTEGER ]? var re_nthElement = /^([+-]?d*n)?s*(?:(?)s*(d+))?$/;
/*
parses a nth-check formula, returns an array of two numbers
*/ function parse(formula){
formula = formula.trim().toLowerCase(); if(formula === "even"){ return [2, 0]; } else if(formula === "odd"){ return [2, 1]; } else { var parsed = formula.match(re_nthElement); if(!parsed){ throw new SyntaxError("n-th rule couldn't be parsed ('" + formula + "')"); } var a; if(parsed[1]){ a = parseInt(parsed[1], 10); if(isNaN(a)){ if(parsed[1].charAt(0) === "-") a = -1; else a = 1; } } else a = 0; return [ a, parsed[3] ? parseInt((parsed[2] || "") + parsed[3], 10) : 0 ]; }
}