mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-18 16:53:02 +00:00
Add maintainer-push-check to run maintainer-check using push parsing in
place of pull parsing where available. * Makefile.am (maintainer-push-check): New. * data/bison.m4 (b4_use_push_for_pull_if): New. * data/push.c: Redefine b4_push_if and b4_use_push_for_pull_if appropriately based on their existing values. (yypush_parse): Don't print push-parser-specific diagnostics if push parsing is being used in place of pull parsing. * data/yacc.c: If push parsing should replace pull parsing, redirect to push.c. * src/output.c (prepare): Check BISON_USE_PUSH_FOR_PULL environment variable, and insert b4_use_push_for_pull_flag into muscles. * tests/Makefile.am (maintainer-push-check): New.
This commit is contained in:
16
ChangeLog
16
ChangeLog
@@ -1,3 +1,19 @@
|
|||||||
|
2007-01-01 Joel E. Denny <jdenny@ces.clemson.edu>
|
||||||
|
|
||||||
|
Add maintainer-push-check to run maintainer-check using push parsing in
|
||||||
|
place of pull parsing where available.
|
||||||
|
* Makefile.am (maintainer-push-check): New.
|
||||||
|
* data/bison.m4 (b4_use_push_for_pull_if): New.
|
||||||
|
* data/push.c: Redefine b4_push_if and b4_use_push_for_pull_if
|
||||||
|
appropriately based on their existing values.
|
||||||
|
(yypush_parse): Don't print push-parser-specific diagnostics if push
|
||||||
|
parsing is being used in place of pull parsing.
|
||||||
|
* data/yacc.c: If push parsing should replace pull parsing, redirect to
|
||||||
|
push.c.
|
||||||
|
* src/output.c (prepare): Check BISON_USE_PUSH_FOR_PULL environment
|
||||||
|
variable, and insert b4_use_push_for_pull_flag into muscles.
|
||||||
|
* tests/Makefile.am (maintainer-push-check): New.
|
||||||
|
|
||||||
2006-12-31 Joel E. Denny <jdenny@ces.clemson.edu>
|
2006-12-31 Joel E. Denny <jdenny@ces.clemson.edu>
|
||||||
|
|
||||||
* data/push.c (yypush_parse): Set yynew = 1 at the end of a parse
|
* data/push.c (yypush_parse): Set yynew = 1 at the end of a parse
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
## Process this file with automake to produce Makefile.in -*-Makefile-*-
|
## Process this file with automake to produce Makefile.in -*-Makefile-*-
|
||||||
## Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
## Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 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
|
||||||
@@ -35,3 +36,7 @@ EXTRA_DIST = GNUmakefile Makefile.cfg Makefile.maint \
|
|||||||
.PHONY: maintainer-check
|
.PHONY: maintainer-check
|
||||||
maintainer-check:
|
maintainer-check:
|
||||||
cd tests && $(MAKE) $(AM_MAKEFLAGS) $@
|
cd tests && $(MAKE) $(AM_MAKEFLAGS) $@
|
||||||
|
|
||||||
|
.PHONY: maintainer-push-check
|
||||||
|
maintainer-push-check:
|
||||||
|
cd tests && $(MAKE) $(AM_MAKEFLAGS) $@
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
m4_divert(-1) -*- Autoconf -*-
|
m4_divert(-1) -*- Autoconf -*-
|
||||||
|
|
||||||
# Language-independent M4 Macros for Bison.
|
# Language-independent M4 Macros for Bison.
|
||||||
# Copyright (C) 2002, 2004, 2005, 2006 Free Software Foundation, Inc.
|
# Copyright (C) 2002, 2004, 2005, 2006, 2007 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
|
||||||
@@ -130,6 +130,10 @@ b4_define_flag_if([nondeterministic]) # Whether conflicts should be handled.
|
|||||||
b4_define_flag_if([pull]) # Whether pull parsing is requested.
|
b4_define_flag_if([pull]) # Whether pull parsing is requested.
|
||||||
b4_define_flag_if([pure]) # Whether the interface is pure.
|
b4_define_flag_if([pure]) # Whether the interface is pure.
|
||||||
b4_define_flag_if([push]) # Whether push parsing is requested.
|
b4_define_flag_if([push]) # Whether push parsing is requested.
|
||||||
|
b4_define_flag_if([use_push_for_pull]) # Whether push parsing should be used
|
||||||
|
# in place of pull parsing (where
|
||||||
|
# available) for the sake of the test
|
||||||
|
# suite.
|
||||||
b4_define_flag_if([yacc]) # Whether POSIX Yacc is emulated.
|
b4_define_flag_if([yacc]) # Whether POSIX Yacc is emulated.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
21
data/push.c
21
data/push.c
@@ -2,8 +2,8 @@ m4_divert(-1) -*- C -*-
|
|||||||
|
|
||||||
# Yacc compatible skeleton for Bison
|
# Yacc compatible skeleton for Bison
|
||||||
|
|
||||||
# Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
|
# Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
|
||||||
# Free Software Foundation, Inc.
|
# 2007 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
|
||||||
@@ -20,6 +20,18 @@ m4_divert(-1) -*- C -*-
|
|||||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
# 02110-1301 USA
|
# 02110-1301 USA
|
||||||
|
|
||||||
|
# Handle BISON_USE_PUSH_FOR_PULL for the test suite. So that push parsing
|
||||||
|
# tests function as written, don't let BISON_USE_PUSH_FOR_PULL modify Bison's
|
||||||
|
# behavior at all when push parsing is already requested.
|
||||||
|
b4_use_push_for_pull_if([
|
||||||
|
b4_push_if([
|
||||||
|
m4_define([b4_use_push_for_pull_flag], [[0]])
|
||||||
|
b4_define_flag_if([use_push_for_pull])
|
||||||
|
], [
|
||||||
|
m4_define([b4_push_flag], [[1]])
|
||||||
|
b4_define_flag_if([push])
|
||||||
|
])])
|
||||||
|
|
||||||
m4_include(b4_pkgdatadir/[c.m4])
|
m4_include(b4_pkgdatadir/[c.m4])
|
||||||
|
|
||||||
## ---------------- ##
|
## ---------------- ##
|
||||||
@@ -1317,8 +1329,9 @@ yybackup:
|
|||||||
{
|
{
|
||||||
]b4_push_if([[ if (!yyps->yynew)
|
]b4_push_if([[ if (!yyps->yynew)
|
||||||
{
|
{
|
||||||
YYDPRINTF ((stderr, "Return for a new token:\n"));
|
]b4_use_push_for_pull_if([],
|
||||||
yyresult = YYPUSH_MORE;
|
[[ YYDPRINTF ((stderr, "Return for a new token:\n"));
|
||||||
|
]])[ yyresult = YYPUSH_MORE;
|
||||||
goto yypushreturn;
|
goto yypushreturn;
|
||||||
}
|
}
|
||||||
yyps->yynew = 0;
|
yyps->yynew = 0;
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ m4_divert(-1) -*- C -*-
|
|||||||
|
|
||||||
# Yacc compatible skeleton for Bison
|
# Yacc compatible skeleton for Bison
|
||||||
|
|
||||||
# Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
|
# Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
|
||||||
# Free Software Foundation, Inc.
|
# 2007 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
|
||||||
@@ -20,6 +20,9 @@ m4_divert(-1) -*- C -*-
|
|||||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
# 02110-1301 USA
|
# 02110-1301 USA
|
||||||
|
|
||||||
|
# Handle BISON_USE_PUSH_FOR_PULL for the test suite.
|
||||||
|
b4_use_push_for_pull_if([m4_include(b4_pkgdatadir/[push.c])m4_exit])
|
||||||
|
|
||||||
m4_include(b4_pkgdatadir/[c.m4])
|
m4_include(b4_pkgdatadir/[c.m4])
|
||||||
|
|
||||||
## ---------------- ##
|
## ---------------- ##
|
||||||
|
|||||||
12
src/output.c
12
src/output.c
@@ -1,7 +1,7 @@
|
|||||||
/* Output the generated parsing program for Bison.
|
/* Output the generated parsing program for Bison.
|
||||||
|
|
||||||
Copyright (C) 1984, 1986, 1989, 1992, 2000, 2001, 2002, 2003, 2004,
|
Copyright (C) 1984, 1986, 1989, 1992, 2000, 2001, 2002, 2003, 2004,
|
||||||
2005, 2006 Free Software Foundation, Inc.
|
2005, 2006, 2007 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of Bison, the GNU Compiler Compiler.
|
This file is part of Bison, the GNU Compiler Compiler.
|
||||||
|
|
||||||
@@ -586,6 +586,15 @@ output_skeleton (void)
|
|||||||
static void
|
static void
|
||||||
prepare (void)
|
prepare (void)
|
||||||
{
|
{
|
||||||
|
/* BISON_USE_PUSH_FOR_PULL is for the test suite and should not be documented
|
||||||
|
for the user. */
|
||||||
|
char const *use_push_for_pull_env = getenv ("BISON_USE_PUSH_FOR_PULL");
|
||||||
|
bool use_push_for_pull_flag = false;
|
||||||
|
if (use_push_for_pull_env != NULL
|
||||||
|
&& use_push_for_pull_env[0] != '\0'
|
||||||
|
&& 0 != strcmp (use_push_for_pull_env, "0"))
|
||||||
|
use_push_for_pull_flag = true;
|
||||||
|
|
||||||
/* Flags. */
|
/* Flags. */
|
||||||
MUSCLE_INSERT_BOOL ("debug_flag", debug_flag);
|
MUSCLE_INSERT_BOOL ("debug_flag", debug_flag);
|
||||||
MUSCLE_INSERT_BOOL ("defines_flag", defines_flag);
|
MUSCLE_INSERT_BOOL ("defines_flag", defines_flag);
|
||||||
@@ -595,6 +604,7 @@ prepare (void)
|
|||||||
MUSCLE_INSERT_BOOL ("nondeterministic_flag", nondeterministic_parser);
|
MUSCLE_INSERT_BOOL ("nondeterministic_flag", nondeterministic_parser);
|
||||||
MUSCLE_INSERT_BOOL ("pull_flag", pull_parser);
|
MUSCLE_INSERT_BOOL ("pull_flag", pull_parser);
|
||||||
MUSCLE_INSERT_BOOL ("pure_flag", pure_parser);
|
MUSCLE_INSERT_BOOL ("pure_flag", pure_parser);
|
||||||
|
MUSCLE_INSERT_BOOL ("use_push_for_pull_flag", use_push_for_pull_flag);
|
||||||
MUSCLE_INSERT_BOOL ("push_flag", push_parser);
|
MUSCLE_INSERT_BOOL ("push_flag", push_parser);
|
||||||
MUSCLE_INSERT_BOOL ("synclines_flag", !no_lines_flag);
|
MUSCLE_INSERT_BOOL ("synclines_flag", !no_lines_flag);
|
||||||
MUSCLE_INSERT_BOOL ("tag_seen_flag", tag_seen);
|
MUSCLE_INSERT_BOOL ("tag_seen_flag", tag_seen);
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## Makefile for Bison testsuite.
|
## Makefile for Bison testsuite.
|
||||||
|
|
||||||
## Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
|
## Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
|
||||||
## Foundation, Inc.
|
## 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
|
||||||
@@ -93,3 +93,7 @@ maintainer-check-valgrind: $(TESTSUITE)
|
|||||||
|
|
||||||
.PHONY: maintainer-check
|
.PHONY: maintainer-check
|
||||||
maintainer-check: maintainer-check-posix maintainer-check-valgrind maintainer-check-g++
|
maintainer-check: maintainer-check-posix maintainer-check-valgrind maintainer-check-g++
|
||||||
|
|
||||||
|
.PHONY: maintainer-push-check
|
||||||
|
maintainer-push-check:
|
||||||
|
BISON_USE_PUSH_FOR_PULL=1 $(MAKE) $(AM_MAKEFLAGS) maintainer-check
|
||||||
|
|||||||
Reference in New Issue
Block a user