else if ((m = source.scan(PSEUDO_CLASS)) != null) {
encoder.textToken(m.group(), TokenType.pseudo_class);
return true;
}
else if ((m = source.scan(ATTRIBUTE_SELECTOR)) != null) {
encoder.textToken(m.group().substring(0, 1), TokenType.operator);
if (m.group().length() > 2) {
encoder.textToken(m.group().substring(1, m.group().length() - 1), TokenType.attribute_name);
}
if (SQUARE_END.matcher(m.group().substring(m.group().length() - 1)).matches()) {
encoder.textToken(m.group().substring(m.group().length() - 1), TokenType.operator);