From 828c373b6d032450b89f6ace178f7e114e666fd8 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Wed, 6 Jul 2005 07:49:25 +0000 Subject: [PATCH] Bind examples/calc++ to the package. * examples/calc++/Makefile: Remove, replaced by... * examples/calc++/Makefile.am: ... this new file. * examples/calc++/test: Remove input. * examples/calc++/compile: Remove. * examples/Makefile.am: New. * configure.ac, Makefile.am: Adjust. * doc/Makefile.am (clean-local): New, for more recent texi2dvis. --- ChangeLog | 11 ++++ Makefile.am | 4 +- configure.ac | 2 + doc/Makefile.am | 5 +- doc/bison.texinfo | 4 +- examples/Makefile.am | 21 ++++++++ examples/calc++/Makefile | 35 ------------- examples/calc++/Makefile.am | 86 +++++++++++++++++++++++++++++++ examples/calc++/calc++-scanner.ll | 4 +- examples/calc++/calc++.cc | 2 +- examples/calc++/compile | 9 ---- examples/calc++/test | 3 ++ 12 files changed, 136 insertions(+), 50 deletions(-) create mode 100644 examples/Makefile.am delete mode 100644 examples/calc++/Makefile create mode 100644 examples/calc++/Makefile.am delete mode 100755 examples/calc++/compile diff --git a/ChangeLog b/ChangeLog index 0c4f8132..23bdb1bf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2005-07-06 Akim Demaille + + Bind examples/calc++ to the package. + * examples/calc++/Makefile: Remove, replaced by... + * examples/calc++/Makefile.am: ... this new file. + * examples/calc++/test: Remove input. + * examples/calc++/compile: Remove. + * examples/Makefile.am: New. + * configure.ac, Makefile.am: Adjust. + * doc/Makefile.am (clean-local): New, for more recent texi2dvis. + 2005-07-05 Paul Eggert * data/glr.c (yyFail): Drastically simplify; since the format argument diff --git a/Makefile.am b/Makefile.am index a307e631..3baff6fb 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,5 +1,5 @@ ## Process this file with automake to produce Makefile.in -*-Makefile-*- -## Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +## Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ## 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 @@ -18,7 +18,7 @@ ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = config po lib data src doc tests +SUBDIRS = config po lib data src doc tests examples EXTRA_DIST = REFERENCES OChangeLog Makefile.maint GNUmakefile Makefile.cfg diff --git a/configure.ac b/configure.ac index 23e99ff5..fb1a97c9 100644 --- a/configure.ac +++ b/configure.ac @@ -129,5 +129,7 @@ AC_CONFIG_FILES([Makefile config/Makefile po/Makefile.in data/Makefile + examples/Makefile + examples/calc++/Makefile lib/Makefile src/Makefile doc/Makefile]) AC_OUTPUT diff --git a/doc/Makefile.am b/doc/Makefile.am index 567e5b78..b7b2d4ea 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -1,5 +1,5 @@ ## Process this file with automake to produce Makefile.in -*-Makefile-*- -## Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. +## Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. ## 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 @@ -25,6 +25,9 @@ EXTRA_DIST = FAQ bison.1 refcard.tex CLEANFILES = refcard.dvi refcard.log refcard.ps bison.fns +clean-local: + rm -rf *.t2d + refcard.dvi: refcard.tex tex refcard.tex diff --git a/doc/bison.texinfo b/doc/bison.texinfo index 5f7b6c38..14857352 100644 --- a/doc/bison.texinfo +++ b/doc/bison.texinfo @@ -7360,10 +7360,12 @@ preceding tokens. Comments would be treated equally. @comment file: calc++-scanner.ll @example +%@{ +# define YY_USER_ACTION yylloc->columns (yyleng); +%@} %% %@{ yylloc->step (); -# define YY_USER_ACTION yylloc->columns (yyleng); %@} @{blank@}+ yylloc->step (); [\n]+ yylloc->lines (yyleng); yylloc->step (); diff --git a/examples/Makefile.am b/examples/Makefile.am new file mode 100644 index 00000000..c997eb22 --- /dev/null +++ b/examples/Makefile.am @@ -0,0 +1,21 @@ +## Process this file with automake to produce Makefile.in -*-Makefile-*- +## Copyright (C) 2005 Free Software Foundation, Inc. + +## 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 +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. + +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. + +## You should have received a copy of the GNU General Public License +## along with this program; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +## 02110-1301 USA + +SUBDIRS = calc++ + +dist_noinst_SCRIPTS = extexi diff --git a/examples/calc++/Makefile b/examples/calc++/Makefile deleted file mode 100644 index 5a56f3d5..00000000 --- a/examples/calc++/Makefile +++ /dev/null @@ -1,35 +0,0 @@ -all: calc++ - -calc++: - flex -ocalc++-scanner.cc calc++-scanner.ll - bison -o calc++-parser.cc calc++-parser.yy - $(CC) -o calc++ calc++.cc calc++-driver.cc calc++-parser.cc calc++-scanner.cc - -check: all - ./test - -clean: - rm -f *~ *.o *.tab.* input position.hh location.hh stack.hh \ - calc++-parser.cc calc++-parser.hh \ - calc++-scanner.cc \ - calc++ - -## ------------ ## -## Extracting. ## -## ------------ ## - -EXTRACTED = \ -calc++-driver.hh calc++-driver.cc \ -calc++-parser.yy \ -calc++-scanner.ll \ -calc++.cc - -doc = ../../doc/bison.texinfo -extexi = gawk -f ../extexi - -RECURSIVE_TARGETS += extract - -$(EXTRACTED): $(doc) ../extexi - $(extexi) $(doc) -- $(EXTRACTED) - -extract extract-am: $(EXTRACTED) diff --git a/examples/calc++/Makefile.am b/examples/calc++/Makefile.am new file mode 100644 index 00000000..0894483f --- /dev/null +++ b/examples/calc++/Makefile.am @@ -0,0 +1,86 @@ +## Process this file with automake to produce Makefile.in -*-Makefile-*- +## Copyright (C) 2005 Free Software Foundation, Inc. + +## 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 +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. + +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. + +## You should have received a copy of the GNU General Public License +## along with this program; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +## 02110-1301 USA + +## ------------------------------------- ## +## Running the bison from this tarball. ## +## ------------------------------------- ## + +BISON = $(top_builddir)/tests/bison +BISON_IN = $(top_srcdir)/tests/bison.in + +$(BISON): $(BISON_IN) + cd $(top_builddir)/tests && $(MAKE) $(AM_MAKEFLAGS) bison + +## ------------ ## +## Extracting. ## +## ------------ ## + +doc = $(top_srcdir)/doc/bison.texinfo +extexi = $(top_srcdir)/examples/extexi +run_extexi = gawk -f $(extexi) +$(calc_sources_extracted): $(doc) $(extexi) +# Extract in src. + cd $(srcdir) && \ + gawk -f ../extexi ../../doc/bison.texinfo -- \ + calc++-scanner.ll calc++.cc calc++-driver.hh calc++-driver.cc + + +## ------------------- ## +## Parser generation. ## +## ------------------- ## + +# We do not use Automake features here. +BUILT_SOURCES = $(calc_sources_generated) +MAINTAINERCLEANFILES = $(calc_sources_generated) + +# Compile the parser and save cycles. +# This code comes from "Handling Tools that Produce Many Outputs", +# from the Automake documentation. +EXTRA_DIST = $(srcdir)/calc++-parser.stamp $(srcdir)/calc++-parser.yy +# Don't depend on $(BISON) otherwise we would rebuild these files +# in srcdir, including during distcheck, which is forbidden. +$(srcdir)/calc++-parser.stamp: $(srcdir)/calc++-parser.yy $(BISON_IN) + @rm -f calc++-parser.tmp + @touch calc++-parser.tmp + $(BISON) -S lalr1.cc $(srcdir)/calc++-parser.yy -o $(srcdir)/calc++-parser.cc -d -ra + @mv -f calc++-parser.tmp $@ + +$(calc_sources_generated): $(srcdir)/calc++-parser.stamp + @if test -f $@; then :; else x\ + rm -f $(srcdir)/calc++-parser.stamp; \ + $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/calc++-parser.stamp; \ + fi + + +## --------------------------- ## +## Building & testing calc++. ## +## --------------------------- ## + +noinst_PROGRAMS = calc++ + +calc_sources_extracted = $(srcdir)/calc++-scanner.ll $(srcdir)/calc++.cc \ +$(srcdir)/calc++-driver.hh $(srcdir)/calc++-driver.cc +calc_extracted = $(calc_sources_extracted) calc++-parser.yy +calc_sources_generated = \ + $(srcdir)/stack.hh $(srcdir)/position.hh $(srcdir)/location.hh \ + $(srcdir)/calc++-parser.hh $(srcdir)/calc++-parser.cc + +calc___SOURCES = $(calc_sources_extracted) $(calc_sources_generated) + +TESTS = test +EXTRA_DIST += $(TESTS) diff --git a/examples/calc++/calc++-scanner.ll b/examples/calc++/calc++-scanner.ll index 7b1e4ef7..750e6ca7 100644 --- a/examples/calc++/calc++-scanner.ll +++ b/examples/calc++/calc++-scanner.ll @@ -10,10 +10,12 @@ id [a-zA-Z][a-zA-Z_0-9]* int [0-9]+ blank [ \t] +%{ +# define YY_USER_ACTION yylloc->columns (yyleng); +%} %% %{ yylloc->step (); -# define YY_USER_ACTION yylloc->columns (yyleng); %} {blank}+ yylloc->step (); [\n]+ yylloc->lines (yyleng); yylloc->step (); diff --git a/examples/calc++/calc++.cc b/examples/calc++/calc++.cc index 92163968..5a59d741 100644 --- a/examples/calc++/calc++.cc +++ b/examples/calc++/calc++.cc @@ -1,4 +1,4 @@ -#line 7414 "../../doc/bison.texinfo" +#line 7416 "../../doc/bison.texinfo" #include #include "calc++-driver.hh" diff --git a/examples/calc++/compile b/examples/calc++/compile deleted file mode 100755 index fac1036b..00000000 --- a/examples/calc++/compile +++ /dev/null @@ -1,9 +0,0 @@ -#! /bin/sh - -set -ex -BISON_PKGDATADIR=$HOME/src/bison/data -export BISON_PKGDATADIR - -flex -ocalc++-scanner.cc calc++-scanner.ll -bison -o calc++-parser.cc calc++-parser.yy -g++ -o calc++ calc++.cc calc++-driver.cc calc++-parser.cc calc++-scanner.cc diff --git a/examples/calc++/test b/examples/calc++/test index b4f0d258..d44a4789 100755 --- a/examples/calc++/test +++ b/examples/calc++/test @@ -1,4 +1,5 @@ #! /bin/sh + set +e cat >input <