Example #1
0
 def __error(self,msg='invalid syntax'):
     pos = self._tokens[self._tokenX].start
     f = StringIO()
     traceback.print_exc(file=f)
     f = f.getvalue()
     m = 'File "<string>", line '
     i = f.rfind('File "<string>", line ')
     if i<0:
         t, v = map(str,sys.exc_info()[:2])
         self.__lexerror('%s %s(%s)' % (msg, t, v),pos)
     else:
         i += len(m)
         f = f[i:].split('\n')
         n = int(f[0].strip())+self.source[:pos].count('\n')
         raise SyntaxError('  File %s, line %d\n%s' % (self.filename,n,'\n'.join(f[1:])))