mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
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.
This commit is contained in:
21
examples/Makefile.am
Normal file
21
examples/Makefile.am
Normal file
@@ -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
|
||||
@@ -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)
|
||||
86
examples/calc++/Makefile.am
Normal file
86
examples/calc++/Makefile.am
Normal file
@@ -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)
|
||||
@@ -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 ();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#line 7414 "../../doc/bison.texinfo"
|
||||
#line 7416 "../../doc/bison.texinfo"
|
||||
#include <iostream>
|
||||
#include "calc++-driver.hh"
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -1,4 +1,5 @@
|
||||
#! /bin/sh
|
||||
|
||||
set +e
|
||||
cat >input <<EOF
|
||||
a := 1
|
||||
@@ -24,3 +25,5 @@ toto := 1
|
||||
toto
|
||||
EOF
|
||||
./calc++ -s input
|
||||
|
||||
rm input
|
||||
|
||||
Reference in New Issue
Block a user