function PseudoClass(s) {
	this.name = s.matchList(PseudoClass.regExp.pseudo)[0];
	if(this.name == 'not') {
		this.arg = new SimpleSelector(s.matchList(PseudoClass.regExp.arg)[0], true);
	} else if(this.name.indexOf('-child') >= 0) {
		var args = s.matchList(PseudoClass.regExp.arg);
		if(args.length == 1)
			this.arg = args[0];
		else
			this.arg = null;
	}
}

PseudoClass.regExp = new Object();
PseudoClass.regExp.pseudo = /^:([^\(]+)/g;
PseudoClass.regExp.arg = /\((.+)\)/g;

PseudoClass.prototype.toString = function () {
	if(this.arg)
		return this.name + '(' + this.arg.toString() + ')';
	else
		return this.name;
}