89 |
]]) |
]]) |
90 |
|
|
91 |
AT_CHECK([[bison input.y]], 0, [], |
AT_CHECK([[bison input.y]], 0, [], |
92 |
[[input.y contains 9 useless nonterminals |
[[input.y: warning: 9 useless nonterminals |
93 |
|
input.y:4.8-15: warning: useless nonterminal: useless1 |
94 |
|
input.y:5.8-15: warning: useless nonterminal: useless2 |
95 |
|
input.y:6.8-15: warning: useless nonterminal: useless3 |
96 |
|
input.y:7.8-15: warning: useless nonterminal: useless4 |
97 |
|
input.y:8.8-15: warning: useless nonterminal: useless5 |
98 |
|
input.y:9.8-15: warning: useless nonterminal: useless6 |
99 |
|
input.y:10.8-15: warning: useless nonterminal: useless7 |
100 |
|
input.y:11.8-15: warning: useless nonterminal: useless8 |
101 |
|
input.y:12.8-15: warning: useless nonterminal: useless9 |
102 |
]]) |
]]) |
103 |
|
|
104 |
AT_CHECK([[sed -n '/^Grammar/q;/^$/!p' input.output]], 0, |
AT_CHECK([[sed -n '/^Grammar/q;/^$/!p' input.output]], 0, |
142 |
]]) |
]]) |
143 |
|
|
144 |
AT_CHECK([[bison input.y]], 0, [], |
AT_CHECK([[bison input.y]], 0, [], |
145 |
[[input.y contains 9 useless nonterminals and 9 useless rules |
[[input.y: warning: 9 useless nonterminals and 9 useless rules |
146 |
|
input.y:6.1-8: warning: useless nonterminal: useless1 |
147 |
|
input.y:7.1-8: warning: useless nonterminal: useless2 |
148 |
|
input.y:8.1-8: warning: useless nonterminal: useless3 |
149 |
|
input.y:9.1-8: warning: useless nonterminal: useless4 |
150 |
|
input.y:10.1-8: warning: useless nonterminal: useless5 |
151 |
|
input.y:11.1-8: warning: useless nonterminal: useless6 |
152 |
|
input.y:12.1-8: warning: useless nonterminal: useless7 |
153 |
|
input.y:13.1-8: warning: useless nonterminal: useless8 |
154 |
|
input.y:14.1-8: warning: useless nonterminal: useless9 |
155 |
|
input.y:6.9-13: warning: useless rule: useless1: '1' |
156 |
|
input.y:7.9-13: warning: useless rule: useless2: '2' |
157 |
|
input.y:8.9-13: warning: useless rule: useless3: '3' |
158 |
|
input.y:9.9-13: warning: useless rule: useless4: '4' |
159 |
|
input.y:10.9-13: warning: useless rule: useless5: '5' |
160 |
|
input.y:11.9-13: warning: useless rule: useless6: '6' |
161 |
|
input.y:12.9-13: warning: useless rule: useless7: '7' |
162 |
|
input.y:13.9-13: warning: useless rule: useless8: '8' |
163 |
|
input.y:14.9-13: warning: useless rule: useless9: '9' |
164 |
]]) |
]]) |
165 |
|
|
166 |
AT_CHECK([[sed -n '/^Grammar/q;/^$/!p' input.output]], 0, |
AT_CHECK([[sed -n '/^Grammar/q;/^$/!p' input.output]], 0, |
235 |
]]) |
]]) |
236 |
|
|
237 |
AT_CHECK([[bison not-reduced.y]], 0, [], |
AT_CHECK([[bison not-reduced.y]], 0, [], |
238 |
[[not-reduced.y contains 2 useless nonterminals and 3 useless rules |
[[not-reduced.y: warning: 2 useless nonterminals and 3 useless rules |
239 |
|
not-reduced.y:14.1-13: warning: useless nonterminal: not_reachable |
240 |
|
not-reduced.y:11.6-19: warning: useless nonterminal: non_productive |
241 |
|
not-reduced.y:11.4-57: warning: useless rule: exp: non_productive |
242 |
|
not-reduced.y:14.14-56: warning: useless rule: not_reachable: useful |
243 |
|
not-reduced.y:17.15-18.63: warning: useless rule: non_productive: non_productive useless_token |
244 |
]]) |
]]) |
245 |
|
|
246 |
AT_CHECK([[sed -n '/^Grammar/q;/^$/!p' not-reduced.output]], 0, |
AT_CHECK([[sed -n '/^Grammar/q;/^$/!p' not-reduced.output]], 0, |
307 |
]]) |
]]) |
308 |
|
|
309 |
AT_CHECK([[bison input.y]], 0, [], |
AT_CHECK([[bison input.y]], 0, [], |
310 |
[[input.y contains 2 useless nonterminals and 3 useless rules |
[[input.y: warning: 2 useless nonterminals and 3 useless rules |
311 |
|
input.y:5.15-25: warning: useless nonterminal: underivable |
312 |
|
input.y:6.14-24: warning: useless nonterminal: indirection |
313 |
|
input.y:5.13-25: warning: useless rule: exp: underivable |
314 |
|
input.y:6.12-24: warning: useless rule: underivable: indirection |
315 |
|
input.y:7.12-24: warning: useless rule: indirection: underivable |
316 |
]]) |
]]) |
317 |
|
|
318 |
AT_CHECK([[sed -n '/^Grammar/q;/^$/!p' input.output]], 0, |
AT_CHECK([[sed -n '/^Grammar/q;/^$/!p' input.output]], 0, |