module.exports = function (sch) { var noComments = function (line) { var i = line.indexOf('//') return i > -1 ? line.slice(0, i) : line } var noMultilineComments = function () { var inside = false return function (token) { if (token === '/*') { inside = true return false } if (token === '*/') { inside = false return false } return !inside } } var trim = function (line) { return line.trim() } return sch .replace(/([;,{}()=:[\]<>]|\/\*|\*\/)/g, ' $1 ') .split(/\n/) .map(trim) .filter(Boolean) .map(noComments) .map(trim) .filter(Boolean) .join('\n') .split(/\s+|\n+/gm) .filter(noMultilineComments()) }