diff --git a/HTMLKit/CSSSelectorParser.m b/HTMLKit/CSSSelectorParser.m
index f207194..62df088 100644
--- a/HTMLKit/CSSSelectorParser.m
+++ b/HTMLKit/CSSSelectorParser.m
@@ -358,6 +358,36 @@
} else if ([pseudoClass isEqualToString:@"checked"]) {
return checkedSelector();
}
+
+ else if ([pseudoClass isEqualToString:@"parent"]) {
+ return parentSelector();
+ } else if ([pseudoClass isEqualToString:@"button"]) {
+ return buttonSelector();
+ } else if ([pseudoClass isEqualToString:@"checkbox"]) {
+ return checkboxSelector();
+ } else if ([pseudoClass isEqualToString:@"file"]) {
+ return fileSelector();
+ } else if ([pseudoClass isEqualToString:@"header"]) {
+ return headerSelector();
+ } else if ([pseudoClass isEqualToString:@"image"]) {
+ return imageSelector();
+ } else if ([pseudoClass isEqualToString:@"optional"]) {
+ return optionalSelector();
+ } else if ([pseudoClass isEqualToString:@"parent"]) {
+ return parentSelector();
+ } else if ([pseudoClass isEqualToString:@"password"]) {
+ return passwordSelector();
+ } else if ([pseudoClass isEqualToString:@"radio"]) {
+ return radioSelector();
+ } else if ([pseudoClass isEqualToString:@"reset"]) {
+ return resetSelector();
+ } else if ([pseudoClass isEqualToString:@"submit"]) {
+ return submitSelector();
+ } else if ([pseudoClass isEqualToString:@"text"]) {
+ return textSelector();
+ } else if ([pseudoClass isEqualToString:@"required"]) {
+ return resetSelector();
+ }
}
NSString *reason = [NSString stringWithFormat:@"Unknown pseudo class: %@", pseudoClass];
[self emitError:error reason:reason location:_location + _inputStream.currentLocation];