bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

FYI: Bind examples/calc++ to the package


From: Akim Demaille
Subject: FYI: Bind examples/calc++ to the package
Date: Wed, 06 Jul 2005 09:45:12 +0200
User-agent: Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux)

The sources of the example were under CVS, so they should be in
srcdir.  Now that they are extracted, it is troublesome to keep them
in srcdir, but it makes it easy to check if the extraction went wrong
using cvs diff.  Do you think we should keep them in srcdir and ship
them, or rather move everything into builddir?  Hm.  Then there is the
problem of making sure the extraction scheme is portable (currently it
calls gawk).

Index: ChangeLog
from  Akim Demaille  <address@hidden>

        Bind examples/calc++ to the package.
        * examples/calc++/Makefile: Remove, replaced by...
        * examples/calc++/Makefile.am: ... this new file.
        * examples/calc++/compile: Remove.
        * examples/Makefile.am: New.
        * configure.ac, Makefile.am: Adjust.

Index: Makefile.am
===================================================================
RCS file: /cvsroot/bison/bison/Makefile.am,v
retrieving revision 1.34
diff -u -u -r1.34 Makefile.am
--- Makefile.am 14 May 2005 06:49:46 -0000 1.34
+++ Makefile.am 6 Jul 2005 07:42:21 -0000
@@ -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
 
Index: configure.ac
===================================================================
RCS file: /cvsroot/bison/bison/configure.ac,v
retrieving revision 1.54
diff -u -u -r1.54 configure.ac
--- configure.ac 22 May 2005 17:45:28 -0000 1.54
+++ configure.ac 6 Jul 2005 07:42:21 -0000
@@ -129,5 +129,7 @@
                  config/Makefile
                  po/Makefile.in
                  data/Makefile
+                examples/Makefile
+                   examples/calc++/Makefile
                  lib/Makefile src/Makefile doc/Makefile])
 AC_OUTPUT
Index: doc/bison.texinfo
===================================================================
RCS file: /cvsroot/bison/bison/doc/bison.texinfo,v
retrieving revision 1.147
diff -u -u -r1.147 bison.texinfo
--- doc/bison.texinfo 5 Jul 2005 07:21:30 -0000 1.147
+++ doc/bison.texinfo 6 Jul 2005 07:42:22 -0000
@@ -7360,10 +7360,12 @@
 
 @comment file: calc++-scanner.ll
 @example
address@hidden
+# define YY_USER_ACTION  yylloc->columns (yyleng);
address@hidden
 %%
 address@hidden
   yylloc->step ();
-# define YY_USER_ACTION  yylloc->columns (yyleng);
 address@hidden
 @address@hidden   yylloc->step ();
 [\n]+      yylloc->lines (yyleng); yylloc->step ();
Index: examples/Makefile.am
===================================================================
RCS file: examples/Makefile.am
diff -N examples/Makefile.am
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ examples/Makefile.am 6 Jul 2005 07:42:22 -0000
@@ -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
Index: examples/calc++/Makefile
===================================================================
RCS file: examples/calc++/Makefile
diff -N examples/calc++/Makefile
--- examples/calc++/Makefile 5 Jul 2005 07:21:30 -0000 1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -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)
Index: examples/calc++/Makefile.am
===================================================================
RCS file: examples/calc++/Makefile.am
diff -N examples/calc++/Makefile.am
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ examples/calc++/Makefile.am 6 Jul 2005 07:42:22 -0000
@@ -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 = tests
+EXTRA_DIST += $(TESTS)
Index: examples/calc++/calc++-scanner.ll
===================================================================
RCS file: /cvsroot/bison/bison/examples/calc++/calc++-scanner.ll,v
retrieving revision 1.2
diff -u -u -r1.2 calc++-scanner.ll
--- examples/calc++/calc++-scanner.ll 5 Jul 2005 07:21:30 -0000 1.2
+++ examples/calc++/calc++-scanner.ll 6 Jul 2005 07:42:22 -0000
@@ -10,10 +10,12 @@
 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 ();
Index: examples/calc++/calc++.cc
===================================================================
RCS file: /cvsroot/bison/bison/examples/calc++/calc++.cc,v
retrieving revision 1.2
diff -u -u -r1.2 calc++.cc
--- examples/calc++/calc++.cc 5 Jul 2005 07:21:30 -0000 1.2
+++ examples/calc++/calc++.cc 6 Jul 2005 07:42:22 -0000
@@ -1,4 +1,4 @@
-#line 7414 "../../doc/bison.texinfo"
+#line 7416 "../../doc/bison.texinfo"
 #include <iostream>
 #include "calc++-driver.hh"
 
Index: examples/calc++/compile
===================================================================
RCS file: examples/calc++/compile
diff -N examples/calc++/compile
--- examples/calc++/compile 22 Jun 2005 15:32:10 -0000 1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -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
Index: examples/calc++/test
===================================================================
RCS file: /cvsroot/bison/bison/examples/calc++/test,v
retrieving revision 1.1
diff -u -u -r1.1 test
--- examples/calc++/test 22 Jun 2005 15:32:10 -0000 1.1
+++ examples/calc++/test 6 Jul 2005 07:42:22 -0000
@@ -1,4 +1,5 @@
 #! /bin/sh
+
 set +e
 cat >input <<EOF
 a := 1





reply via email to

[Prev in Thread] Current Thread [Next in Thread]