Fix python3 issues
diff --git a/pytoml/parser.py b/pytoml/parser.py
index 0b26ea5..7da05d1 100644
--- a/pytoml/parser.py
+++ b/pytoml/parser.py
@@ -20,10 +20,7 @@
     scope = root
 
     src = _Source(s, filename=filename)
-    try:
-        ast = _p_toml(src)
-    except TomlError:
-        src.raise_latest()
+    ast = _p_toml(src)
 
     def error(msg):
         raise TomlError(msg, pos[0], pos[1], filename)
@@ -95,12 +92,8 @@
         self._pos = (1, 1)
         self._last = None
         self._filename = filename
-        self._latest_error = None
         self.backtrack_stack = []
 
-    def raise_latest(self):
-        raise self._latest_error[0], self._latest_error[1], self._latest_error[2]
-
     def last(self):
         return self._last
 
@@ -161,12 +154,7 @@
             self.backtrack_stack.pop()
         else:
             self.s, self._pos = self.backtrack_stack.pop()
-        if type == TomlError:
-            if self._latest_error is None or self._latest_error[1][1:3] < value.args[1:3]:
-                self._latest_error = (type, value, traceback)
-            return True
-        else:
-            return False
+        return type == TomlError
 
     def commit(self):
         self.backtrack_stack[-1] = (self.s, self._pos)
@@ -194,7 +182,7 @@
 _escapes = { 'b': '\b', 'n': '\n', 'r': '\r', 't': '\t', '"': '"', '\'': '\'',
     '\\': '\\', '/': '/', 'f': '\f' }
 
-_basicstr_re = re.compile(ur'[^"\\\000-\037]*')
+_basicstr_re = re.compile(r'[^"\\\000-\037]*')
 _short_uni_re = re.compile(r'u([0-9a-fA-F]{4})')
 _long_uni_re = re.compile(r'U([0-9a-fA-F]{8})')
 _escapes_re = re.compile('[bnrt"\'\\\\/f]')
@@ -208,7 +196,7 @@
         if s.consume_re(_newline_esc_re):
             pass
         elif s.consume_re(_short_uni_re) or s.consume_re(_long_uni_re):
-            res.append(unichr(int(s.last().group(1), 16)))
+            res.append(_chr(int(s.last().group(1), 16)))
         else:
             s.expect_re(_escapes_re)
             res.append(_escapes[s.last().group(0)])
@@ -226,9 +214,9 @@
 _float_re = re.compile(r'[+-]?(?:0|[1-9](?:_?\d)*)(?:\.(?:_?\d)+)?(?:[eE][+-]?(?:0|[1-9](?:_?\d)*))?')
 _datetime_re = re.compile(r'(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d+)?(?:Z|([+-]\d{2}):(\d{2}))')
 
-_basicstr_ml_re = re.compile(ur'(?:(?:|"|"")[^"\\\000-\011\013-\037])*')
-_litstr_re = re.compile(ur"[^'\000-\037]*")
-_litstr_ml_re = re.compile(ur"(?:(?:|'|'')(?:[^'\000-\011\013-\037]))*")
+_basicstr_ml_re = re.compile(r'(?:(?:|"|"")[^"\\\000-\011\013-\037])*')
+_litstr_re = re.compile(r"[^'\000-\037]*")
+_litstr_ml_re = re.compile(r"(?:(?:|'|'')(?:[^'\000-\011\013-\037]))*")
 def _p_value(s):
     pos = s.pos()