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]) |
|
|
|
|
|
|
|
## ---------------- ## |
|
|
## Broken Closure. ## |
|
|
## ---------------- ## |
|
|
|
|
|
# TC was once broken during a massive `simplification' of the code. |
|
|
# It resulted in bison dumping core on the following grammar (the |
|
|
# computation of FIRSTS uses TC). It managed to produce a pretty |
|
|
# exotic closure: |
|
|
# |
|
|
# TC: Input |
|
|
# |
|
|
# 01234567 |
|
|
# +--------+ |
|
|
# 0| 1 | |
|
|
# 1| 1 | |
|
|
# 2| 1 | |
|
|
# 3| 1 | |
|
|
# 4| 1 | |
|
|
# 5| 1 | |
|
|
# 6| 1| |
|
|
# 7| | |
|
|
# +--------+ |
|
|
# |
|
|
# TC: Output |
|
|
# |
|
|
# 01234567 |
|
|
# +--------+ |
|
|
# 0| 1 | |
|
|
# 1| 111 | |
|
|
# 2| 111 | |
|
|
# 3| 1111 | |
|
|
# 4| 111 1 | |
|
|
# 5| 111 1 | |
|
|
# 6| 111 1| |
|
|
# 7| 111 | |
|
|
# +--------+ |
|
|
# |
|
|
# instead of that below. |
|
|
|
|
|
AT_SETUP([Broken Closure]) |
|
|
|
|
|
AT_DATA([input.y], |
|
|
[[%% |
|
|
a: b |
|
|
b: c |
|
|
c: d |
|
|
d: e |
|
|
e: f |
|
|
f: g |
|
|
g: h |
|
|
h: 'h' |
|
|
]]) |
|
|
|
|
|
AT_CHECK([bison --trace input.y 2>&1 | |
|
|
sed -n '/^TC: Output BEGIN/,/^TC: Output END/p'], |
|
|
[0], |
|
|
[[TC: Output BEGIN |
|
|
@&t@ |
|
|
01234567 |
|
|
+--------+ |
|
|
0| 1111111| |
|
|
1| 111111| |
|
|
2| 11111| |
|
|
3| 1111| |
|
|
4| 111| |
|
|
5| 11| |
|
|
6| 1| |
|
|
7| | |
|
|
+--------+ |
|
|
TC: Output END |
|
|
]]) |
|
|
|
|
|
AT_CLEANUP |
|