3 #ifndef GAUDIKERNEL_PARSERS_ICPP
4 #define GAUDIKERNEL_PARSERS_ICPP 1
16 #include "boost/bind.hpp"
20 #include <boost/version.hpp>
21 #if BOOST_VERSION >= 103800
23 #if !defined(BOOST_SPIRIT_USE_OLD_NAMESPACE)
24 #define BOOST_SPIRIT_USE_OLD_NAMESPACE
26 #include <boost/spirit/include/classic.hpp>
27 #include <boost/spirit/include/phoenix1.hpp>
29 #include <boost/spirit.hpp>
30 #include <boost/spirit/phoenix.hpp>
35 #include "GaudiKernel/Parsers.h"
36 #include "GaudiKernel/Grammars.h"
61 using namespace boost::spirit ;
64 typedef boost::spirit::position_iterator<string::const_iterator>
IteratorT;
68 {
return IteratorT ( input.begin(), input.end() ) ; }
84 template<
typename IntegerT>
86 (IntegerT& result,
const string& input)
88 IntGrammar<IntegerT>
g;
92 g[var(result)=arg1]).full;
111 template<
typename IntegerT>
113 ( std::vector<IntegerT>& result,
const string& input)
115 VectorGrammar<IntGrammar<IntegerT> >
g;
120 SkipperGrammar()).full;
136 template<
typename CharT>
138 ( CharT& result ,
const string& input )
140 CharGrammar<CharT>
g;
144 g[var(result)=arg1]).full;
163 template<
typename CharT>
165 (std::vector<CharT>& result,
const string& input)
167 VectorGrammar<CharGrammar<CharT> >
g;
172 SkipperGrammar()).full;
187 template<
typename RealT>
189 ( RealT& result ,
const string& input)
191 RealGrammar<RealT>
g;
196 SkipperGrammar()).full;
215 template<
typename RealT>
217 ( std::vector<RealT>& result,
const string& input)
219 VectorGrammar< RealGrammar<RealT> >
g;
224 SkipperGrammar()).full;