- Update devel/boost to 1.32.0

- Add slave devel/boost-python port
- Remove devel/spirit because of it's a part boost now

PR:		ports/75377
Submitted by:	Simon Barner <barner(at)gmx.de> (maintainer)
This commit is contained in:
Sergey Matveychuk 2004-12-24 12:23:12 +00:00
parent 3be4888157
commit 19acb22d90
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=125059
20 changed files with 4084 additions and 3417 deletions

View File

@ -85,6 +85,7 @@
SUBDIR += bonobo
SUBDIR += bonobo-conf
SUBDIR += boost
SUBDIR += boost-python
SUBDIR += bugbuddy2
SUBDIR += bugzilla
SUBDIR += buildtool
@ -1365,7 +1366,6 @@
SUBDIR += sparc-rtems-gdb
SUBDIR += sparc-rtems-objc
SUBDIR += spin
SUBDIR += spirit
SUBDIR += splint
SUBDIR += st
SUBDIR += stlfilt

View File

@ -0,0 +1,17 @@
# New ports collection makefile for: boost-python
# Date Created: Dec 15 2004
# Whom: Simon Barner <barner@gmx.de>
#
# $FreeBSD$
#
MAINTAINER= barner@gmx.de
COMMENT= Free portable C++ source libraries with Python bindings
MASTERDIR= ${.CURDIR}/../../devel/boost
PKGDIR= ${.CURDIR}
PLIST= ${MASTERDIR}/pkg-plist
WITH_PYTHON= yes
.include "${MASTERDIR}/Makefile"

View File

@ -0,0 +1,11 @@
The Boost web site provides free peer-reviewed portable C++ source
libraries. The emphasis is on libraries which work well with the C++
Standard Library. One goal is to establish "existing practice" and
provide reference implementations so that the Boost libraries are
suitable for eventual standardization. Some of the libraries have
already been proposed for inclusion in the C++ Standards Committee's
upcoming C++ Standard Library Technical Report.
This slave port adds Python bindings to Boost.
WWW: http://www.boost.org/

View File

@ -6,11 +6,12 @@
# $FreeBSD$
PORTNAME= boost
PORTVERSION= 1.31.0
PORTVERSION= 1.32.0
CATEGORIES= devel
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR=${PORTNAME}
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:S/$/:boost_site,spirit_site/}
MASTER_SITE_SUBDIR=boost/:boost_site
DISTNAME= ${PORTNAME}_${PORTVERSION:S/./_/g}
DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:boost_site
MAINTAINER= barner@gmx.de
COMMENT= Free peer-reviewed portable C++ source libraries
@ -20,36 +21,81 @@ USE_REINPLACE= yes
INSTALLS_SHLIB= yes
MAKE_ENV+= GCC="${CC} ${CFLAGS}"\
GXX="${CXX} ${CXXFLAGS}"
.if defined(WITH_PYTHON)
USE_PYTHON= 2.3+
PYTHON_VERSION= python2.3
PLIST_SUB= BOOST_PYTHON=""
MAKE_ENV+= PYTHON_ROOT="${PREFIX}"\
PYTHON_VERSION="${PYTHON_VERSION}"\
PYTHON_INCLUDES="${PYTHON_INCLUDEDIR}"\
PYTHON_LIB_PATH="${PYTHON_LIBDIR}"
.else
PLIST_SUB= BOOST_PYTHON="@comment "
.endif
GXX="${CXX} ${CXXFLAGS}"\
STLPORT_ROOT=/
OPTIONS= VERBOSE_BUILD "Show compiler messages" off \
DEBUG "Build debugging symbols" off \
THREADS "Thread support" on \
OPTIMIZED_CFLAGS "Enable -O3 optimization" off \
PYTHON "Build Python bindings" off
OPTIMIZED_CFLAGS "Enable -O3 optimization" off
#
# Unfortunately, it is not possible to use OPTIONS to control the
# optional Python support
#
# In order to build Boost's Python bindings, please specify
# -DWITH_PYTHON on the command line or use the devel/boost-python
# slave port.
#
.if defined(WITH_PYTHON)
PKGNAMESUFFIX= -python
USE_PYTHON= 2.3+
PLIST_SUB+= BOOST_PYTHON=""
MAKE_ENV+= PYTHON_ROOT="${LOCALBASE}"\
PYTHON_VERSION="${PYTHON_VERSION}"\
PYTHON_INCLUDES="${PYTHON_INCLUDEDIR}"\
PYTHON_LIB_PATH="${PYTHON_LIBDIR}"
.else
PLIST_SUB+= BOOST_PYTHON="@comment "
.endif
.include <bsd.port.pre.mk>
SPIRIT_VERSION= 1.6.2
# FreeBSD 4:
# - no wchar support
# - needs stlport
# - spirit 1.6.x
.if ${OSVERSION} < 500000
USE_ZIP= yes
EXTRA_PATCHES= ${FILESDIR}/FBSD4-patch-libs::serialization::build::Jamfile\
${FILESDIR}/FBSD4-patch-boost::program_options::detail::utf8_codecvt_facet.hpp
DISTFILES+= spirit-only-${SPIRIT_VERSION}.zip:spirit_site
MASTER_SITE_SUBDIR+=spirit/:spirit_site
BJAM_BUILD+= <stlport-iostream>on
BOOST_TOOLS= gcc-stlport
PLIST_SUB+= BOOST_WCHAR="@comment "\
BOOST_SPIRIT_1.6=""\
BOOST_SPIRIT_1.8="@comment "
BOOST_STL_OPTS= "-sSTLPORT_INCLUDE_DIRECTORY=${LOCALBASE}/include/stlport"\
"-sSTLPORT_LIB_DIRECTORY=${LOCALBASE}/lib"
RUN_DEPENDS= ${LOCALBASE}/lib/libstlport_gcc.so:${PORTSDIR}/devel/stlport
BUILD_DEPENDS+= ${RUN_DEPENDS}
# FreeBSD 5
# - wchar support
# - spirit 1.8.x
.else
BOOST_TOOLS= gcc
EXTRA_PATCHES= ${FILESDIR}/FBSD5-patch-boost::python::detail::config.hpp
PLIST_SUB+= BOOST_WCHAR=""\
BOOST_SPIRIT_1.6="@comment "\
BOOST_SPIRIT_1.8=""
.endif
.if defined (WITH_VERBOSE_BUILD)
BJAM_OPTIONS= -d2
.endif
.if defined (WITH_DEBUG)
BJAM_BUILD= debug
.if defined (WITHOUT_DEBUG)
BJAM_BUILD+= release
.else
BJAM_BUILD= release
BJAM_BUILD+= debug
.endif
.if defined (WITHOUT_THREADS)
@ -60,17 +106,20 @@ BJAM_BUILD+= <threading>multi
PLIST_SUB+= BOOST_THREADS=""
.endif
.if defined (WITH_OPTIMIZED_CFLAGS)
.if defined (WITHOUT_OPTIMIZED_CFLAGS)
BJAM_BUILD+= <optimization>off
.else
BJAM_BUILD+= <optimization>speed\
<inlining>full
.else
BJAM_BUILD+= <optimization>off
.endif
.if ${ARCH} == alpha
BJAM= ${WRKSRC}/tools/build/jam_src/bin.freebsdaxp/bjam
# temporary work around for GCC bug on alpha
# ("-mcpu=ev4 -mtune=ev5 -mieee" makes gcc consume all virtual memory)
#
# If you are trying to build this on alpha, a quick test whether the problem
# still exists would be very much appreciated!
CXXFLAGS=-O -pipe
.elif ${ARCH} == sparc64
BJAM= ${WRKSRC}/tools/build/jam_src/bin.freebsdsparc/bjam
@ -87,29 +136,71 @@ SCRIPTS_ENV+= BJAM="${BJAM}"\
REINPLACE_CMD="${REINPLACE_CMD}"\
LN="${LN}"\
MKDIR="${MKDIR}"\
TAR="${TAR}"
TAR="${TAR}" \
RM="${RM}" \
UNIQ="/usr/bin/uniq"
.if !defined(NOPORTDOCS)
SCRIPTS_ENV+= PORTDOCS="true"\
DOCSDIR="${DOCSDIR}"\
EXAMPLESDIR="${EXAMPLESDIR}"
DOCSDIR="${DOCSDIR}"
.endif
pre-everything::
.if !defined(WITH_PYTHON)
@${ECHO_CMD}
@${ECHO_CMD} To build Boost\'s Python bindings hit CTRL+C now and
@${ECHO_CMD} run \`\`make -DWITH_PYTHON [...]\'\' or use the
@${ECHO_CMD} devel/boost-python slave port.
@${ECHO_CMD}
@sleep 2
.else
@${ECHO_CMD}
@${ECHO_CMD} Python bindings enabled!
@${ECHO_CMD}
.endif
do-extract:
@${MKDIR} ${WRKDIR}
@cd ${WRKDIR} && ${TAR} -xjpof ${DISTDIR}/${DISTNAME}.tar.bz2
# boost 1.32.0's spirit 1.8.x cannot be built with GCC 2.95.4,
# so we use spirit 1.6.x
.if ${OSVERSION} < 500000
@cd ${WRKDIR} && ${UNZIP_CMD} ${DISTDIR}/spirit-only-${SPIRIT_VERSION}.zip > /dev/null
# remove CRLF
@${FIND} ${WRKDIR}/spirit_${SPIRIT_VERSION:S/./_/g} -type f -exec \
${REINPLACE_CMD} -i '' -e "s|"`printf '\015'`"||g" {} \;
# replace spirit v1.8 with v1.6
@${RM} -rf ${WRKSRC}/boost/spirit* ${WRKSRC}/libs/spirit
@${MV} ${WRKDIR}/spirit_${SPIRIT_VERSION:S/./_/g}/boost/* ${WRKSRC}/boost
@${MV} ${WRKDIR}/spirit_${SPIRIT_VERSION:S/./_/g}/libs/spirit ${WRKSRC}/libs
.endif
post-patch:
# If necessary, remove Boost.Python
.if !defined(WITH_PYTHON)
@${RM} -rf ${WRKSRC}/boost/python* ${WRKSRC}/libs/python
.endif
# Do the right thing(tm) for pthread support
post-patch:
@${REINPLACE_CMD} -e 's|%%PTHREAD_CFLAGS%%|${PTHREAD_CFLAGS}|'\
${WRKSRC}/tools/build/v1/gcc-tools.jam
${WRKSRC}/tools/build/v1/gcc-tools.jam \
${WRKSRC}/tools/build/v1/gcc-stlport-tools.jam
@${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%|${PTHREAD_LIBS}|'\
${WRKSRC}/tools/build/v1/gcc-tools.jam
${WRKSRC}/tools/build/v1/gcc-tools.jam \
${WRKSRC}/tools/build/v1/gcc-stlport-tools.jam
do-build:
# build the bjam project build tool
@cd ${WRKSRC}/tools/build/jam_src && ./build.sh gcc
cd ${WRKSRC}/tools/build/jam_src && ./build.sh gcc
# build the library
@cd ${WRKSRC}; \
${SETENV} ${MAKE_ENV} ${BJAM} ${BJAM_OPTIONS} --prefix=${PREFIX}\
"-sTOOLS=gcc" "-sBUILD=${BJAM_BUILD}"
"-sTOOLS=${BOOST_TOOLS}" "-sBUILD=${BJAM_BUILD}"\
${BOOST_STL_OPTS}
do-install:
@${SETENV} ${SCRIPTS_ENV} ${SH} ${SCRIPTDIR}/do-install

View File

@ -1,2 +1,4 @@
MD5 (boost_1_31_0.tar.bz2) = 8cc183538eaa5cfc53d88d0e94bd2fd4
SIZE (boost_1_31_0.tar.bz2) = 6979482
MD5 (boost_1_32_0.tar.bz2) = e1d1fc7b8fc8c51df4564c2188ca51cb
SIZE (boost_1_32_0.tar.bz2) = 10181552
MD5 (spirit-only-1.6.2.zip) = f6fe37e4dc32ac8a503d68f19c4fdd99
SIZE (spirit-only-1.6.2.zip) = 1719158

View File

@ -0,0 +1,20 @@
--- boost/program_options/detail/utf8_codecvt_facet.hpp.orig Mon Dec 13 18:48:58 2004
+++ boost/program_options/detail/utf8_codecvt_facet.hpp Mon Dec 13 18:49:51 2004
@@ -67,7 +67,7 @@
#elif defined(BOOST_NO_STDC_NAMESPACE)
typedef std::mbstate_t mbstate_t;
namespace std{
- using ::codecvt;
+ using std::codecvt;
} // namespace std
#endif
@@ -81,7 +81,7 @@
{
public:
explicit utf8_codecvt_facet_wchar_t(std::size_t no_locale_manage=0)
- : std::codecvt<wchar_t, char, mbstate_t>(no_locale_manage)
+ : std::codecvt<wchar_t, char, mbstate_t>() // FIXME
{}
protected:
virtual std::codecvt_base::result do_in(

View File

@ -0,0 +1,15 @@
--- libs/serialization/build/Jamfile.orig Mon Dec 13 18:36:52 2004
+++ libs/serialization/build/Jamfile Mon Dec 13 18:37:28 2004
@@ -90,12 +90,10 @@
install serialization lib :
<lib>boost_serialization
- <lib>boost_wserialization
;
stage stage/lib :
<lib>boost_serialization
- <lib>boost_wserialization
:
<locate>$(BOOST_ROOT)
common-stage-tag

View File

@ -0,0 +1,15 @@
--- boost/python/detail/config.hpp.orig Tue Dec 14 14:17:42 2004
+++ boost/python/detail/config.hpp Tue Dec 14 14:19:36 2004
@@ -110,7 +110,11 @@
# define BOOST_PYTHON_OFFSETOF(s_name, s_member) \
((size_t)__INTADDR__(&(((s_name *)0)->s_member)))
#else
-# define BOOST_PYTHON_OFFSETOF offsetof
+// workaround from http://www.freebsd.org/cgi/query-pr.cgi?pr=72307
+#define BOOST_PYTHON_OFFSETOF(TYPE, MEMBER)\
+ (__offsetof__ (reinterpret_cast <size_t>\
+ (&reinterpret_cast <const volatile char &>\
+ (static_cast<TYPE *> (0)->MEMBER))))
#endif
#endif // CONFIG_DWA052200_H_

View File

@ -0,0 +1,25 @@
--- boost/config/platform/bsd.hpp.orig Fri Feb 27 14:13:00 2004
+++ boost/config/platform/bsd.hpp Wed Dec 15 16:01:21 2004
@@ -39,9 +39,20 @@
#endif
//
-// No wide character support in the BSD header files:
+// Enable wide character support on FreeBSD 5 and above
//
-#define BOOST_NO_CWCHAR
+#if defined(__FreeBSD__) && (__FreeBSD__ >= 5)
+# undef BOOST_NO_CWCHAR
+# undef BOOST_NO_SWPRINTF
+# undef BOOST_NO_CWCTYPE
+# undef BOOST_DEDUCED_TYPENAME
+#else
+# define BOOST_NO_CWCHAR
+# define BOOST_NO_SWPRINTF
+# define BOOST_NO_CWCTYPE
+#endif
+
+#define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
//
// The BSD <ctype.h> has macros only, no functions:

View File

@ -1,11 +0,0 @@
--- libs/test/src/test_tools.cpp.orig Tue Feb 17 16:31:56 2004
+++ libs/test/src/test_tools.cpp Tue Feb 17 16:32:10 2004
@@ -191,7 +191,7 @@
void
print_log_value<char>::operator()( std::ostream& ostr, char t )
{
- if( std::isprint( t ) )
+ if( isprint( t ) )
ostr << '\'' << t << '\'';
else
ostr << std::hex

View File

@ -5,7 +5,7 @@
STDHDRS ?= /usr/include ;
SUFEXE ?= "" ;
-SUFDLL ?= .so ;
+SUFDLL ?= .so.1 ;
+SUFDLL ?= .so.2 ;
SUFLIB ?= .a ;
SUFOBJ ?= .o ;
PREDLL ?= lib ;

View File

@ -0,0 +1,11 @@
--- tools/build/v1/gcc-stlport-tools.jam.orig Mon Dec 13 19:13:56 2004
+++ tools/build/v1/gcc-stlport-tools.jam Mon Dec 13 19:14:18 2004
@@ -40,7 +40,7 @@
}
case *BSD :
{
- flags gcc LINKFLAGS <stlport-iostream>on : -pthread ;
+ flags gcc LINKFLAGS <stlport-iostream>on : %%PTHREAD_LIBS%% ;
}
case IRIX :
{

File diff suppressed because it is too large Load Diff

View File

@ -7,48 +7,37 @@ ${BSD_INSTALL_PROGRAM} ${BJAM} ${PREFIX}/bin/
${FIND} ${WRKSRC}/bin/boost/libs -type f -name "*.a"\
-exec ${BSD_INSTALL_DATA} \{\} ${PREFIX}/lib \;
${FIND} ${WRKSRC}/bin/boost/libs -type f -name "*.so.1"\
${FIND} ${WRKSRC}/bin/boost/libs -type f -name "*.so.2"\
-exec ${BSD_INSTALL_DATA} \{\} ${PREFIX}/lib \;
# Create symlinks for shared libraries
cd ${PREFIX}/lib;
for i in libboost*.so.1; do
${LN} -s $i ${i%%.1};
for i in libboost*.so.2; do
${LN} -s $i ${i%%.2};
done;
# Install headers
cd ${WRKSRC} && ${FIND} boost -type d\
cd ${WRKSRC} && ${FIND} boost -type d -a \! -name "*.orig"\
-exec ${MKDIR} ${PREFIX}/include/\{\} \;
cd ${WRKSRC} && ${FIND} boost -type f\
cd ${WRKSRC} && ${FIND} boost -type f -a \! -name "*.orig"\
-exec ${BSD_INSTALL_DATA} \{\} ${PREFIX}/include/\{\} \;
# Documentation & examples
if [ -n ${NOPORTDOCS+xyz} ]; then
# Fix links to example files
cd ${WRKSRC}/libs && for dir in *; do
if [ -d $dir/doc ]; then
for file in $dir/doc/*; do
${GREP} -s -q '\.\./example/' $file && \
${REINPLACE_CMD} -e\
"s|../example/|${PREFIX}/share/examples/boost/$dir/|g" $file
done;
fi;
done;
if [ "${NOPORTDOCS}xyz" = "xyz" ]; then
# Installation
${MKDIR} ${DOCSDIR} ${EXAMPLESDIR}
${MKDIR} ${DOCSDIR}
${FIND} ${WRKSRC} -type f -exec chmod 0444 {} \;
${FIND} ${WRKSRC} -type d -exec chmod 0555 {} \;
cd ${WRKSRC} &&\
${FIND} . -name "*.htm" -o -name "*.html" -o -name "*.css"\
-o -name "*.jp*g" -o -name "*.png" -o -name "*.gif"\
| ${TAR} cTf - - | ${TAR} xUCf ${DOCSDIR} -
cd ${WRKSRC}/libs && for dir in *; do
if [ -d ${WRKSRC}/libs/${dir}/example ]; then
${MKDIR} ${EXAMPLESDIR}/${dir};
cd ${WRKSRC}/libs/${dir}/example && ${TAR} cf - * \
| ${TAR} xUCf ${EXAMPLESDIR}/${dir} -;
fi;
done;
cd ${WRKSRC}/libs &&\
${FIND} . -name "example" -o -name "examples" -o -name "*example*.cpp"\
-o -name "*example*.c" -o -name "*example*.hpp" | ${UNIQ} |\
${GREP} -v "assign/test" | ${GREP} -v "iterator/test" | \
${GREP} -v "range/test" |\
${TAR} cTf - - | ${TAR} xUCf ${DOCSDIR}/libs -
fi;

View File

@ -1,44 +0,0 @@
# ex:ts=8
# New ports collection makefile for: spirit
# Date created: Nov 4, 2001
# Whom: ijliao
#
# $FreeBSD$
#
PORTNAME= spirit
PORTVERSION= 1.6.1
PORTREVISION= 1
CATEGORIES= devel
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR= ${PORTNAME}
MAINTAINER= ports@FreeBSD.org
COMMENT= An object oriented recursive descent parser generator framework
BUILD_DEPENDS= ${LOCALBASE}/lib/libboost_thread.so:${PORTSDIR}/devel/boost
RUN_DEPENDS= ${LOCALBASE}/lib/libboost_thread.so:${PORTSDIR}/devel/boost
USE_REINPLCE= yes
USE_GNOME= gnomehack
GNU_CONFIGURE= yes
CFLAGS= -pipe # -O makes -stable memory exhausted
CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" \
LDFLAGS="-L${LOCALBASE}/lib"
CONFIGURE_ARGS= --enable-spirit-threadsafe
.include <bsd.port.pre.mk>
.if ${ARCH} == "amd64"
IGNORE= does not build: cc1plus hangs forever (gcc bug)
.elif ${ARCH} != "i386" && ${ARCH} != "alpha"
BROKEN= "Internal compiler error during build on !i386 and !alpha"
.endif
post-patch:
@${REINPLACE_CMD} -e "s|-lpthread|${PTHREAD_LIBS}|g" ${WRKSRC}/configure
@${FIND} ${WRKSRC} -name "Makefile.in" | ${XARGS} \
${GREP} -lR "^htmldir" | ${XARGS} ${REINPLACE_CMD} \
-e "s@libs/@share/doc/spirit/@"
.include <bsd.port.post.mk>

View File

@ -1,2 +0,0 @@
MD5 (spirit-1.6.1.tar.gz) = 2340dd47fc8ce0326c04f3d1e6cdfffd
SIZE (spirit-1.6.1.tar.gz) = 1709091

View File

@ -1,28 +0,0 @@
--- configure.orig Wed Nov 19 13:39:56 2003
+++ configure Wed Nov 19 13:40:28 2003
@@ -3394,9 +3394,9 @@
rm -f conftest.$ac_objext conftest.$ac_ext
if test "$have_boost" = "yes"; then
- WANT_BOOST_MAJOR=`expr $boost_min_version : '\([0-9]\+\)'`
- WANT_BOOST_MINOR=`expr $boost_min_version : '[0-9]\+\.\([0-9]\+\)'`
- WANT_BOOST_SUB_MINOR=`expr $boost_min_version : '[0-9]\+\.[0-9]\+\.\([0-9]\+\)'`
+ WANT_BOOST_MAJOR=1
+ WANT_BOOST_MINOR=30
+ WANT_BOOST_SUB_MINOR=0
WANT_BOOST_VERSION=`expr $WANT_BOOST_MAJOR \* 100000 \+ $WANT_BOOST_MINOR \* 100 \+ $WANT_BOOST_SUB_MINOR`
cat >conftest.$ac_ext <<_ACEOF
@@ -3562,9 +3562,9 @@
rm -f conftest.$ac_objext conftest.$ac_ext
if test "$have_boost" = "yes"; then
- WANT_BOOST_MAJOR=`expr $boost_min_version : '\([0-9]\+\)'`
- WANT_BOOST_MINOR=`expr $boost_min_version : '[0-9]\+\.\([0-9]\+\)'`
- WANT_BOOST_SUB_MINOR=`expr $boost_min_version : '[0-9]\+\.[0-9]\+\.\([0-9]\+\)'`
+ WANT_BOOST_MAJOR=1
+ WANT_BOOST_MINOR=30
+ WANT_BOOST_SUB_MINOR=0
WANT_BOOST_VERSION=`expr $WANT_BOOST_MAJOR \* 100000 \+ $WANT_BOOST_MINOR \* 100 \+ $WANT_BOOST_SUB_MINOR`
cat >conftest.$ac_ext <<_ACEOF

View File

@ -1,20 +0,0 @@
--- libs/spirit/example/application/slex/lexer.hpp.orig Fri Oct 15 11:57:49 2004
+++ libs/spirit/example/application/slex/lexer.hpp Fri Oct 15 11:58:01 2004
@@ -2108,7 +2108,7 @@
s = dfa.transition_table[s][(uchar)*p];
if (s == invalid_node)
break;
- if (token) token->append((string_t::size_type)1, *p);
+ if (token) token->append((typename string_t::size_type)1, *p);
++p;
if (dfa.acceptance_index[s] != invalid_node)
{
@@ -2163,7 +2163,7 @@
goto break_while;
}
}
- if (token) token->append((string_t::size_type)1, *wp);
+ if (token) token->append((typename string_t::size_type)1, *wp);
++wp;
if (dfa.acceptance_index[s] != invalid_node)
{

View File

@ -1,15 +0,0 @@
Spirit is an object oriented recursive descent parser generator framework
implemented using template meta-programming techniques. Expression templates
allow us to approximate the syntax of Extended Backus Normal Form (EBNF)
completely in C++. Parser objects are composed through operator overloading
and the result is a backtracking LL(inf) parser that is capable of parsing
rather ambiguous grammars.
The Spirit framework enables a target grammar to be written exclusively in
C++. Inline EBNF grammar specifications can mix freely with other C++ code
and, thanks to the generative power of C++ templates, are immediately
executable. In retrospect, conventional compiler-compilers or parser-
generators have to perform an additional translation step from the source
EBNF code to C or C++ code.
WWW: http://spirit.sourceforge.net/

File diff suppressed because it is too large Load Diff