611 |
|
|
612 |
AT_TEST_CPP_GUARD_H([input/input]) |
AT_TEST_CPP_GUARD_H([input/input]) |
613 |
AT_TEST_CPP_GUARD_H([9foo]) |
AT_TEST_CPP_GUARD_H([9foo]) |
614 |
|
|
615 |
|
|
616 |
|
## ---------------- ## |
617 |
|
## Broken Closure. ## |
618 |
|
## ---------------- ## |
619 |
|
|
620 |
|
# TC was once broken during a massive `simplification' of the code. |
621 |
|
# It resulted in bison dumping core on the following grammar (the |
622 |
|
# computation of FIRSTS uses TC). It managed to produce a pretty |
623 |
|
# exotic closure: |
624 |
|
# |
625 |
|
# TC: Input |
626 |
|
# |
627 |
|
# 01234567 |
628 |
|
# +--------+ |
629 |
|
# 0| 1 | |
630 |
|
# 1| 1 | |
631 |
|
# 2| 1 | |
632 |
|
# 3| 1 | |
633 |
|
# 4| 1 | |
634 |
|
# 5| 1 | |
635 |
|
# 6| 1| |
636 |
|
# 7| | |
637 |
|
# +--------+ |
638 |
|
# |
639 |
|
# TC: Output |
640 |
|
# |
641 |
|
# 01234567 |
642 |
|
# +--------+ |
643 |
|
# 0| 1 | |
644 |
|
# 1| 111 | |
645 |
|
# 2| 111 | |
646 |
|
# 3| 1111 | |
647 |
|
# 4| 111 1 | |
648 |
|
# 5| 111 1 | |
649 |
|
# 6| 111 1| |
650 |
|
# 7| 111 | |
651 |
|
# +--------+ |
652 |
|
# |
653 |
|
# instead of that below. |
654 |
|
|
655 |
|
AT_SETUP([Broken Closure]) |
656 |
|
|
657 |
|
AT_DATA([input.y], |
658 |
|
[[%% |
659 |
|
a: b |
660 |
|
b: c |
661 |
|
c: d |
662 |
|
d: e |
663 |
|
e: f |
664 |
|
f: g |
665 |
|
g: h |
666 |
|
h: 'h' |
667 |
|
]]) |
668 |
|
|
669 |
|
AT_CHECK([bison --trace input.y 2>&1 | |
670 |
|
sed -n '/^TC: Output BEGIN/,/^TC: Output END/p'], |
671 |
|
[0], |
672 |
|
[[TC: Output BEGIN |
673 |
|
@&t@ |
674 |
|
01234567 |
675 |
|
+--------+ |
676 |
|
0| 1111111| |
677 |
|
1| 111111| |
678 |
|
2| 11111| |
679 |
|
3| 1111| |
680 |
|
4| 111| |
681 |
|
5| 11| |
682 |
|
6| 1| |
683 |
|
7| | |
684 |
|
+--------+ |
685 |
|
TC: Output END |
686 |
|
]]) |
687 |
|
|
688 |
|
AT_CLEANUP |