[kernel] r10829 - people/waldi/utils/kconfigeditor2/lib/kconfigeditor/kconfig/menu
Bastian Blank
waldi at alioth.debian.org
Thu Mar 13 11:22:26 UTC 2008
Author: waldi
Date: Thu Mar 13 11:22:25 2008
New Revision: 10829
Log:
lib/kconfigeditor/kconfig/menu/file.py: Provide proper exception.
Modified:
people/waldi/utils/kconfigeditor2/lib/kconfigeditor/kconfig/menu/file.py
Modified: people/waldi/utils/kconfigeditor2/lib/kconfigeditor/kconfig/menu/file.py
==============================================================================
--- people/waldi/utils/kconfigeditor2/lib/kconfigeditor/kconfig/menu/file.py (original)
+++ people/waldi/utils/kconfigeditor2/lib/kconfigeditor/kconfig/menu/file.py Thu Mar 13 11:22:25 2008
@@ -1,5 +1,15 @@
import re
+class ParseException(Exception):
+ filename = None
+ lineno = None
+
+ def __init__(self, text):
+ self.text = text
+
+ def __str__(self):
+ return "%s:%d: %s" % (self.filename, self.lineno, self.text)
+
class File(list):
def __init__(self, filename):
self.filename = filename
@@ -41,8 +51,10 @@
else:
try:
stack.top().process_line(line)
- except Exception, e:
- raise Exception("Can't parse: '%s' (%d): %s" % (line, lineno, e))
+ except ParseException, e:
+ e.filename = filename
+ e.lineno = lineno
+ raise
lineno += 1
return stack.top().process_stop(lineno, 0)
@@ -121,7 +133,7 @@
def process_line(self, text):
match = self.split_re.match(text)
if not match:
- raise Exception, "Can't parse: '%s'" % text
+ raise ParseException("No match")
rest = match.group('rest1') or match.group('rest2')
getattr(self, "process_%s" % match.group('word'))(rest, match.group('ind'))
@@ -224,7 +236,7 @@
self.entry.prompt = match.group('text1') or match.group('text2')
text = match.group('expression')
else:
- raise Exception
+ raise ParseException("Can't find a prompt")
_Expression(self, text)
def process_bool(self, text, ind):
More information about the Kernel-svn-changes
mailing list