aboutsummaryrefslogtreecommitdiff
path: root/interpreter.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2013-06-02 14:25:35 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2013-06-02 14:25:35 +0300
commitb63c493844261e533edfcb30ca76d2f3412ae0cb (patch)
treeb8aeeeb8dacc61bbd3ea4dbacf1dad52d85b5068 /interpreter.py
parentc3972d512a3d3da9b3c5442cde7ebef6740195e1 (diff)
downloadmeson-b63c493844261e533edfcb30ca76d2f3412ae0cb.zip
meson-b63c493844261e533edfcb30ca76d2f3412ae0cb.tar.gz
meson-b63c493844261e533edfcb30ca76d2f3412ae0cb.tar.bz2
Better error reporting for parsing errors.
Diffstat (limited to 'interpreter.py')
-rwxr-xr-xinterpreter.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/interpreter.py b/interpreter.py
index 86d464e..ede7e1b 100755
--- a/interpreter.py
+++ b/interpreter.py
@@ -598,7 +598,11 @@ class Interpreter():
if len(code.strip()) == 0:
raise InvalidCode('Builder file is empty.')
assert(isinstance(code, str))
- self.ast = mparser.build_ast(code)
+ try:
+ self.ast = mparser.build_ast(code)
+ except coredata.MesonException as me:
+ me.file = environment.build_filename
+ raise me
self.sanity_check_ast()
self.variables = {}
self.builtin = {}
@@ -859,7 +863,11 @@ class Interpreter():
self.build_def_files.append(buildfilename)
code = open(os.path.join(self.environment.get_source_dir(), buildfilename)).read()
assert(isinstance(code, str))
- codeblock = mparser.build_ast(code)
+ try:
+ codeblock = mparser.build_ast(code)
+ except coredata.MesonException as me:
+ me.file = buildfilename
+ raise me
print('Going to subdirectory "%s".' % self.subdir)
self.evaluate_codeblock(codeblock)
self.subdir = prev_subdir