Added exception hierarchy except for OSError and UnicodeError (requires arguments). Comment out the errors that aren't needed if memory becomes an issue.
diff --git a/py/qstrdefs.h b/py/qstrdefs.h
index 0e0479e..96d94d9 100644
--- a/py/qstrdefs.h
+++ b/py/qstrdefs.h
@@ -34,21 +34,64 @@
 Q(StopIteration)
 
 Q(BaseException)
+Q(ArithmeticError)
 Q(AssertionError)
 Q(AttributeError)
+Q(BlockingIOError)
+Q(BrokenPipeError)
+Q(BufferError)
+Q(BytesWarning)
+Q(ChildProcessError)
+Q(ConnectionAbortedError)
+Q(ConnectionError)
+Q(ConnectionRefusedError)
+Q(ConnectionResetError)
+Q(DeprecationWarning)
+Q(EOFError)
+Q(EnvironmentError)
+Q(Exception)
+Q(FileExistsError)
+Q(FileNotFoundError)
+Q(FloatingPointError)
+Q(FutureWarning)
+Q(GeneratorExit)
+Q(IOError)
 Q(ImportError)
+Q(ImportWarning)
 Q(IndentationError)
 Q(IndexError)
+Q(InterruptedError)
+Q(IsADirectoryError)
 Q(KeyError)
+Q(LookupError)
+Q(MemoryError)
 Q(NameError)
+Q(NotADirectoryError)
 Q(NotImplementedError)
 Q(OSError)
-Q(SyntaxError)
-Q(TypeError)
-Q(ValueError)
 Q(OverflowError)
+Q(PendingDeprecationWarning)
+Q(PermissionError)
+Q(ProcessLookupError)
+Q(ReferenceError)
+Q(ResourceWarning)
+Q(RuntimeError)
+Q(RuntimeWarning)
+Q(SyntaxError)
+Q(SyntaxWarning)
+Q(SystemError)
+Q(SystemExit)
+Q(TabError)
+Q(TimeoutError)
+Q(TypeError)
+Q(UnboundLocalError)
+Q(UnicodeWarning)
+Q(UserWarning)
+Q(ValueError)
+Q(Warning)
 Q(ZeroDivisionError)
 
+
 Q(NoneType)
 
 Q(abs)