* tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.

* tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
location with columns.
* tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
All reported by Paul Eggert.
This commit is contained in:
Akim Demaille
2002-04-23 09:06:42 +00:00
parent 8e521837dc
commit 1207eeacc2
4 changed files with 40 additions and 17 deletions

View File

@@ -1,3 +1,11 @@
2002-04-23 Akim Demaille <akim@epita.fr>
* tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
* tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
location with columns.
* tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
All reported by Paul Eggert.
2002-04-22 Akim Demaille <akim@epita.fr> 2002-04-22 Akim Demaille <akim@epita.fr>
* src/reduce.c (dump_grammar): Move to... * src/reduce.c (dump_grammar): Move to...

View File

@@ -50,16 +50,22 @@ AT_SETUP([%nonassoc and eof])
AT_DATA([input.y], AT_DATA([input.y],
[[ [[
%{ %{
#include <config.h>
/* We don't need a perfect malloc for these tests. */
#undef malloc
#include <stdio.h> #include <stdio.h>
#include <stdlib.h>
#include <string.h> #if STDC_HEADERS
#include <error.h> # include <stdlib.h>
#endif
#define YYERROR_VERBOSE 1 #define YYERROR_VERBOSE 1
#define yyerror(Msg) \ static void
do { \ yyerror (const char *msg)
fprintf (stderr, "%s\n", Msg); \ {
exit (1); \ fprintf (stderr, "%s\n", msg);
} while (0) exit (1);
}
/* The current argument. */ /* The current argument. */
static const char *input = NULL; static const char *input = NULL;

View File

@@ -1,5 +1,5 @@
# Exercising Bison Grammar Sets. -*- Autotest -*- # Exercising Bison Grammar Sets. -*- Autotest -*-
# Copyright 2001, 2002 Free Software Foundation, Inc. # Copyright (C) 2001, 2002 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
@@ -16,6 +16,7 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA. # 02111-1307, USA.
# AT_EXTRACT_SETS(INPUT, OUTPUT) # AT_EXTRACT_SETS(INPUT, OUTPUT)
# ------------------------------ # ------------------------------
# Extract the information about the grammar sets from a bison # Extract the information about the grammar sets from a bison
@@ -25,10 +26,10 @@ m4_define([AT_EXTRACT_SETS],
[AT_DATA([extract.sed], [AT_DATA([extract.sed],
[[#n [[#n
/^NULLABLE$/ { /^NULLABLE$/ {
:nullable :null
p p
n n
/^[ ]*$/! b nullable /^[ ]*$/! b null
} }
/^FIRSTS$/ { /^FIRSTS$/ {
:firsts :firsts
@@ -37,16 +38,16 @@ m4_define([AT_EXTRACT_SETS],
/^[ ]*$/! b firsts /^[ ]*$/! b firsts
} }
/^FDERIVES$/ { /^FDERIVES$/ {
:fderives :fderiv
p p
n n
/^[ ]*$/! b fderives /^[ ]*$/! b fderiv
} }
/^DERIVES$/ { /^DERIVES$/ {
:derives :deriv
p p
n n
/^[ ]*$/! b derives /^[ ]*$/! b deriv
} }
]]) ]])
AT_CHECK([sed -f extract.sed $1], 0, [stdout]) AT_CHECK([sed -f extract.sed $1], 0, [stdout])

View File

@@ -1,5 +1,5 @@
# Executing Actions. -*- Autotest -*- # Executing Actions. -*- Autotest -*-
# Copyright 2002 Free Software Foundation, Inc. # Copyright (C) 2002 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
@@ -33,7 +33,15 @@ AT_DATA([[input.y]],
[$2]) [$2])
AT_CHECK([bison input.y -o input.c]) AT_CHECK([bison input.y -o input.c])
AT_CHECK([$CC $CFLAGS $CPPFLAGS input.c -o input], 1, [], [$3]) AT_CHECK([$CC $CFLAGS $CPPFLAGS input.c -o input], 1, [], [stderr])
# In case GCC displays column information, strip it down.
#
# input.y:4:2: #error "4" or input.y:4.2: #error "4"
# =>
# input.y:4: #error "4"
#
AT_CHECK([[sed 's/^\([^:]*:[^:.]*\)[.:][^:]*:\(.*\)$/\1:\2/' stderr]],
0, [$3])
AT_CLEANUP AT_CLEANUP
]) ])