summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitbake/lib/bb/codeparser.py5
-rw-r--r--bitbake/lib/bb/pysh/pyshyacc.py17
2 files changed, 13 insertions, 9 deletions
diff --git a/bitbake/lib/bb/codeparser.py b/bitbake/lib/bb/codeparser.py
index ddd1b97dcb..3f8ac1d5f6 100644
--- a/bitbake/lib/bb/codeparser.py
+++ b/bitbake/lib/bb/codeparser.py
@@ -368,8 +368,9 @@ class ShellParser():
368 def _parse_shell(self, value): 368 def _parse_shell(self, value):
369 try: 369 try:
370 tokens, _ = pyshyacc.parse(value, eof=True, debug=False) 370 tokens, _ = pyshyacc.parse(value, eof=True, debug=False)
371 except pyshlex.NeedMore: 371 except Exception:
372 raise sherrors.ShellSyntaxError("Unexpected EOF") 372 bb.error('Error during parse shell code, the last 5 lines are:\n%s' % '\n'.join(value.split('\n')[-5:]))
373 raise
373 374
374 self.process_tokens(tokens) 375 self.process_tokens(tokens)
375 376
diff --git a/bitbake/lib/bb/pysh/pyshyacc.py b/bitbake/lib/bb/pysh/pyshyacc.py
index ba4cefdcb8..de565dc9af 100644
--- a/bitbake/lib/bb/pysh/pyshyacc.py
+++ b/bitbake/lib/bb/pysh/pyshyacc.py
@@ -636,13 +636,16 @@ def p_empty(p):
636def p_error(p): 636def p_error(p):
637 msg = [] 637 msg = []
638 w = msg.append 638 w = msg.append
639 w('%r\n' % p) 639 if p:
640 w('followed by:\n') 640 w('%r\n' % p)
641 for i in range(5): 641 w('followed by:\n')
642 n = yacc.token() 642 for i in range(5):
643 if not n: 643 n = yacc.token()
644 break 644 if not n:
645 w(' %r\n' % n) 645 break
646 w(' %r\n' % n)
647 else:
648 w('Unexpected EOF')
646 raise sherrors.ShellSyntaxError(''.join(msg)) 649 raise sherrors.ShellSyntaxError(''.join(msg))
647 650
648# Build the parser 651# Build the parser