Prevent infinite loop when parsing an invalid selector
diff --git a/lib/parser.dart b/lib/parser.dart
index 72e6e88..fbf291c 100644
--- a/lib/parser.dart
+++ b/lib/parser.dart
@@ -225,6 +225,8 @@
       var selector = processSelector();
       if (selector != null) {
         productions.add(selector);
+      } else {
+        break; // Prevent infinite loop if we can't parse something.
       }
     }