24 |
## Invalid $n. ## |
## Invalid $n. ## |
25 |
## ------------ ## |
## ------------ ## |
26 |
|
|
|
|
|
27 |
AT_SETUP([Invalid $n]) |
AT_SETUP([Invalid $n]) |
28 |
|
|
29 |
AT_DATA([input.y], |
AT_DATA([input.y], |
42 |
## Invalid @n. ## |
## Invalid @n. ## |
43 |
## ------------ ## |
## ------------ ## |
44 |
|
|
|
|
|
45 |
AT_SETUP([Invalid @n]) |
AT_SETUP([Invalid @n]) |
46 |
|
|
47 |
AT_DATA([input.y], |
AT_DATA([input.y], |
54 |
]]) |
]]) |
55 |
|
|
56 |
AT_CLEANUP |
AT_CLEANUP |
57 |
|
|
58 |
|
|
59 |
|
## -------------- ## |
60 |
|
## Type clashes. ## |
61 |
|
## -------------- ## |
62 |
|
|
63 |
|
AT_SETUP([Type clashes]) |
64 |
|
|
65 |
|
AT_DATA([input.y], |
66 |
|
[[%token foo |
67 |
|
%type <bar> exp |
68 |
|
%% |
69 |
|
exp: foo {} foo |
70 |
|
| foo |
71 |
|
| /* Empty. */ |
72 |
|
; |
73 |
|
]]) |
74 |
|
|
75 |
|
AT_CHECK([bison input.y], [1], [], |
76 |
|
[[input.y:5: type clash (`bar' `') on default action |
77 |
|
input.y:6: type clash (`bar' `') on default action |
78 |
|
input.y:7: empty rule for typed nonterminal, and no action |
79 |
|
]]) |
80 |
|
|
81 |
|
AT_CLEANUP |