]> git.donarmstrong.com Git - kiibohd-kll.git/commitdiff
Die gracefully
authorRowan Decker <Smasher816@gmail.com>
Wed, 31 Dec 2014 07:48:08 +0000 (01:48 -0600)
committerRowan Decker <Smasher816@gmail.com>
Wed, 31 Dec 2014 07:48:08 +0000 (01:48 -0600)
Don't explode into a 20 line stack trace if the kll file is formatted
incorrectly. Instead simply show the error message and exit with an
error code (which will stop the rest of a make command).

A misformatted file is most likely a user error so showing the full
backtrace for debugging is not necessary. The file and line number
should (hopefully) be enough to fix the parsing error.

kll.py

diff --git a/kll.py b/kll.py
index 57fd37aa37ce39783f7ae4d442601782d009fbdf..401d22e1f5b0de76b39812d3749a1d8538c4ccc6 100755 (executable)
--- a/kll.py
+++ b/kll.py
@@ -552,9 +552,11 @@ def processKLLFile( filename ):
                data = file.read()
                tokenSequence = tokenize( data )
                #print ( pformat( tokenSequence ) ) # Display tokenization
                data = file.read()
                tokenSequence = tokenize( data )
                #print ( pformat( tokenSequence ) ) # Display tokenization
-               tree = parse( tokenSequence )
-
-
+               try:
+                       tree = parse( tokenSequence )
+               except NoParseError as e:
+                       print("Error parsing %s. %s" % (filename, e.msg), file=sys.stderr)
+                       sys.exit(1)
 
 ### Main Entry Point ###
 
 
 ### Main Entry Point ###