diff options
Diffstat (limited to 'bitbake')
-rw-r--r-- | bitbake/lib/bb/codeparser.py | 5 | ||||
-rw-r--r-- | bitbake/lib/bb/pysh/pyshyacc.py | 17 |
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): | |||
636 | def p_error(p): | 636 | def 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 |