var seq = Parsimmon.seq;
var alt = Parsimmon.alt;
var regex = Parsimmon.regex;
var string = Parsimmon.string;
var optWhitespace = Parsimmon.optWhitespace;
var whitespace = Parsimmon.whitespace;
var lazy = Parsimmon.lazy;
var str = alt(
regex(/"[^"\\]*(?:\\.[^"\\]*)*"/),
regex(/'[^'\\]*(?:\\.[^'\\]*)*'/)
);
function opt(parser, empty) {
if (typeof empty === 'undefined') return parser.or(Parsimmon.succeed([]));
return parser.or(Parsimmon.succeed(empty));
}
const tag = regex(/[a-zA-Z]/);
const klass = regex(/\.[\w-]+/);
const pseudoClass = regex(/:[\w]+/).map(token => ({type: 'pseudo-class', content: token})).many();
console.log(
pseudoClass.parse(':hover:active').value
)
console