]> git.saurik.com Git - bison.git/blame_incremental - tests/input.at
* data/bison.simple (b4_pure_if): New.
[bison.git] / tests / input.at
... / ...
CommitLineData
1# Checking the output filenames. -*- Autotest -*-
2# Copyright (C) 2002 Free Software Foundation, Inc.
3
4# This program is free software; you can redistribute it and/or modify
5# it under the terms of the GNU General Public License as published by
6# the Free Software Foundation; either version 2, or (at your option)
7# any later version.
8
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12# GNU General Public License for more details.
13
14# You should have received a copy of the GNU General Public License
15# along with this program; if not, write to the Free Software
16# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
17# 02111-1307, USA.
18
19AT_BANNER([[Input Processing.]])
20
21# Mostly test that we are robust to mistakes.
22
23
24## ----------------------- ##
25## Torturing the Scanner. ##
26## ----------------------- ##
27
28AT_SETUP([Torturing the Scanner])
29
30AT_DATA([input.y],
31[[%{
32/* This is seen in GCC: a %{ and %} in middle of a comment. */
33const char *foo = "So %{ and %} can be here.";
34%}
35/* %{ and %} can be here too. */
36
37%%
38exp: 'a';
39]])
40
41AT_CHECK([bison input.y])
42
43AT_CLEANUP
44
45
46
47
48## ------------ ##
49## Invalid $n. ##
50## ------------ ##
51
52AT_SETUP([Invalid $n])
53
54AT_DATA([input.y],
55[[%%
56exp: { $$ = $1 ; };
57]])
58
59AT_CHECK([bison input.y], [1], [],
60[[input.y:2.6-14: invalid value: $1
61]])
62
63AT_CLEANUP
64
65
66## ------------ ##
67## Invalid @n. ##
68## ------------ ##
69
70AT_SETUP([Invalid @n])
71
72AT_DATA([input.y],
73[[%%
74exp: { @$ = @1 ; };
75]])
76
77AT_CHECK([bison input.y], [1], [],
78[[input.y:2.6-14: invalid value: @1
79]])
80
81AT_CLEANUP
82
83
84## -------------- ##
85## Type clashes. ##
86## -------------- ##
87
88AT_SETUP([Type clashes])
89
90AT_DATA([input.y],
91[[%token foo
92%type <bar> exp
93%%
94exp: foo {} foo
95 | foo
96 | /* Empty. */
97 ;
98]])
99
100AT_CHECK([bison input.y], [1], [],
101[[input.y:5: type clash (`bar' `') on default action
102input.y:6: type clash (`bar' `') on default action
103input.y:7: empty rule for typed nonterminal, and no action
104]])
105
106AT_CLEANUP