* 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-06 Akim Demaille <akim@epita.fr>
+
+ 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 <eggert@cs.ucla.edu>
* data/glr.c (yyFail): Drastically simplify; since the format argument
## 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
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
config/Makefile
po/Makefile.in
data/Makefile
+ examples/Makefile
+ examples/calc++/Makefile
lib/Makefile src/Makefile doc/Makefile])
AC_OUTPUT
## 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
CLEANFILES = refcard.dvi refcard.log refcard.ps bison.fns
+clean-local:
+ rm -rf *.t2d
+
refcard.dvi: refcard.tex
tex refcard.tex
@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 ();
--- /dev/null
+## 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
+++ /dev/null
-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)
--- /dev/null
+## 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)
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 ();
-#line 7414 "../../doc/bison.texinfo"
+#line 7416 "../../doc/bison.texinfo"
#include <iostream>
#include "calc++-driver.hh"
+++ /dev/null
-#! /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
#! /bin/sh
+
set +e
cat >input <<EOF
a := 1
toto
EOF
./calc++ -s input
+
+rm input