29 |
# Found in GCJ: they expect the tokens to be defined before the user |
# Found in GCJ: they expect the tokens to be defined before the user |
30 |
# prologue, so that they can use the token definitions in it. |
# prologue, so that they can use the token definitions in it. |
31 |
|
|
32 |
AT_DATA([input.y], |
AT_DATA_GRAMMAR([input.y], |
33 |
[[%{ |
[[%{ |
34 |
void yyerror (const char *s); |
void yyerror (const char *s); |
35 |
int yylex (void); |
int yylex (void); |
313 |
AT_SETUP([Token definitions]) |
AT_SETUP([Token definitions]) |
314 |
|
|
315 |
# Bison managed, when fed with `%token 'f' "f"' to #define 'f'! |
# Bison managed, when fed with `%token 'f' "f"' to #define 'f'! |
316 |
AT_DATA([input.y], |
AT_DATA_GRAMMAR([input.y], |
317 |
[%{ |
[%{ |
318 |
void yyerror (const char *s); |
void yyerror (const char *s); |
319 |
int yylex (void); |
int yylex (void); |
340 |
|
|
341 |
AT_SETUP([Characters Escapes]) |
AT_SETUP([Characters Escapes]) |
342 |
|
|
343 |
AT_DATA([input.y], |
AT_DATA_GRAMMAR([input.y], |
344 |
[%{ |
[%{ |
345 |
void yyerror (const char *s); |
void yyerror (const char *s); |
346 |
int yylex (void); |
int yylex (void); |
352 |
| '"' "'" |
| '"' "'" |
353 |
; |
; |
354 |
]]) |
]]) |
355 |
|
# Pacify font-lock-mode: " |
356 |
|
|
357 |
AT_CHECK([bison -o input.c input.y]) |
AT_CHECK([bison -o input.c input.y]) |
358 |
AT_COMPILE([input.o], [-c input.c]) |
AT_COMPILE([input.o], [-c input.c]) |