mirror of
https://github.com/matrix-construct/construct
synced 2024-12-26 15:33:54 +01:00
ircd: Consolidate spirit typedefs from all relevant units into spirit.h.
This commit is contained in:
parent
d81291e367
commit
30eb9178bd
7 changed files with 60 additions and 135 deletions
|
@ -21,3 +21,41 @@
|
|||
#include <boost/fusion/include/std_pair.hpp>
|
||||
#include <boost/fusion/adapted/std_pair.hpp>
|
||||
#include <boost/fusion/adapted/std_tuple.hpp>
|
||||
|
||||
namespace ircd::spirit
|
||||
{
|
||||
namespace spirit = boost::spirit;
|
||||
namespace ascii = spirit::ascii;
|
||||
namespace karma = spirit::karma;
|
||||
namespace qi = spirit::qi;
|
||||
|
||||
using spirit::unused_type;
|
||||
|
||||
using qi::lit;
|
||||
using qi::char_;
|
||||
using qi::string;
|
||||
using qi::short_;
|
||||
using qi::int_;
|
||||
using qi::long_;
|
||||
using qi::double_;
|
||||
using qi::raw;
|
||||
using qi::omit;
|
||||
using qi::matches;
|
||||
using qi::hold;
|
||||
using qi::eoi;
|
||||
using qi::eps;
|
||||
using qi::attr;
|
||||
using qi::attr_cast;
|
||||
using qi::repeat;
|
||||
using qi::_r1_type;
|
||||
|
||||
using karma::lit;
|
||||
using karma::char_;
|
||||
using karma::long_;
|
||||
using karma::double_;
|
||||
using karma::bool_;
|
||||
using karma::eps;
|
||||
using karma::attr_cast;
|
||||
using karma::maxwidth;
|
||||
using karma::buffer;
|
||||
}
|
||||
|
|
13
ircd/fmt.cc
13
ircd/fmt.cc
|
@ -21,18 +21,7 @@ BOOST_FUSION_ADAPT_STRUCT
|
|||
namespace ircd {
|
||||
namespace fmt {
|
||||
|
||||
namespace qi = boost::spirit::qi;
|
||||
namespace karma = boost::spirit::karma;
|
||||
|
||||
using qi::lit;
|
||||
using qi::char_;
|
||||
using qi::ushort_;
|
||||
using qi::int_;
|
||||
using qi::eps;
|
||||
using qi::raw;
|
||||
using qi::repeat;
|
||||
using qi::omit;
|
||||
using qi::unused_type;
|
||||
using namespace ircd::spirit;
|
||||
|
||||
std::map<string_view, specifier *, std::less<>> _specifiers;
|
||||
|
||||
|
|
20
ircd/http.cc
20
ircd/http.cc
|
@ -12,25 +12,7 @@
|
|||
|
||||
namespace ircd::http
|
||||
{
|
||||
namespace spirit = boost::spirit;
|
||||
namespace qi = spirit::qi;
|
||||
namespace karma = spirit::karma;
|
||||
namespace ascii = qi::ascii;
|
||||
|
||||
using qi::lit;
|
||||
using qi::string;
|
||||
using qi::char_;
|
||||
using qi::short_;
|
||||
using qi::int_;
|
||||
using qi::long_;
|
||||
using qi::repeat;
|
||||
using qi::omit;
|
||||
using qi::raw;
|
||||
using qi::attr;
|
||||
using qi::eps;
|
||||
using qi::attr_cast;
|
||||
using karma::maxwidth;
|
||||
using spirit::unused_type;
|
||||
using namespace ircd::spirit;
|
||||
|
||||
template<class it, class top = unused_type> struct grammar;
|
||||
struct parser extern const parser;
|
||||
|
|
29
ircd/json.cc
29
ircd/json.cc
|
@ -13,34 +13,7 @@
|
|||
|
||||
namespace ircd::json
|
||||
{
|
||||
namespace spirit = boost::spirit;
|
||||
namespace ascii = spirit::ascii;
|
||||
namespace karma = spirit::karma;
|
||||
namespace qi = spirit::qi;
|
||||
|
||||
using spirit::unused_type;
|
||||
|
||||
using qi::lit;
|
||||
using qi::char_;
|
||||
using qi::long_;
|
||||
using qi::double_;
|
||||
using qi::raw;
|
||||
using qi::omit;
|
||||
using qi::matches;
|
||||
using qi::hold;
|
||||
using qi::eoi;
|
||||
using qi::eps;
|
||||
using qi::attr;
|
||||
using qi::repeat;
|
||||
using qi::_r1_type;
|
||||
|
||||
using karma::lit;
|
||||
using karma::char_;
|
||||
using karma::long_;
|
||||
using karma::double_;
|
||||
using karma::bool_;
|
||||
using karma::eps;
|
||||
using karma::attr_cast;
|
||||
using namespace ircd::spirit;
|
||||
|
||||
template<class it> struct input;
|
||||
template<class it> struct output;
|
||||
|
|
37
ircd/m/id.cc
37
ircd/m/id.cc
|
@ -13,43 +13,16 @@
|
|||
|
||||
namespace ircd::m
|
||||
{
|
||||
namespace spirit = boost::spirit;
|
||||
namespace qi = spirit::qi;
|
||||
namespace karma = spirit::karma;
|
||||
namespace ascii = qi::ascii;
|
||||
|
||||
using qi::lit;
|
||||
using qi::string;
|
||||
using qi::char_;
|
||||
using qi::short_;
|
||||
using qi::ushort_;
|
||||
using qi::int_;
|
||||
using qi::long_;
|
||||
using qi::repeat;
|
||||
using qi::omit;
|
||||
using qi::raw;
|
||||
using qi::attr;
|
||||
using qi::eps;
|
||||
using qi::eoi;
|
||||
using qi::attr_cast;
|
||||
|
||||
using karma::lit;
|
||||
using karma::char_;
|
||||
using karma::long_;
|
||||
using karma::double_;
|
||||
using karma::bool_;
|
||||
using karma::maxwidth;
|
||||
using karma::eps;
|
||||
using karma::attr_cast;
|
||||
using namespace ircd::spirit;
|
||||
|
||||
[[noreturn]] void failure(const qi::expectation_failure<const char *> &, const string_view &);
|
||||
}
|
||||
|
||||
template<class it>
|
||||
struct ircd::m::id::input
|
||||
:qi::grammar<it, spirit::unused_type>
|
||||
:qi::grammar<it, unused_type>
|
||||
{
|
||||
template<class R = spirit::unused_type, class... S> using rule = qi::rule<it, R, S...>;
|
||||
template<class R = unused_type, class... S> using rule = qi::rule<it, R, S...>;
|
||||
|
||||
// Sigils
|
||||
const rule<m::id::sigil> event_id_sigil { lit(char(m::id::EVENT)) ,"event_id sigil" };
|
||||
|
@ -252,9 +225,9 @@ struct ircd::m::id::input
|
|||
|
||||
template<class it>
|
||||
struct ircd::m::id::output
|
||||
:karma::grammar<it, spirit::unused_type>
|
||||
:karma::grammar<it, unused_type>
|
||||
{
|
||||
template<class T = spirit::unused_type> using rule = karma::rule<it, T>;
|
||||
template<class T = unused_type> using rule = karma::rule<it, T>;
|
||||
|
||||
output()
|
||||
:output::base_type{rule<>{}}
|
||||
|
|
|
@ -12,21 +12,11 @@
|
|||
|
||||
namespace ircd::rfc1459
|
||||
{
|
||||
namespace spirit = boost::spirit;
|
||||
namespace karma = spirit::karma;
|
||||
namespace qi = spirit::qi;
|
||||
using namespace ircd::spirit;
|
||||
}
|
||||
|
||||
namespace ircd::rfc1459::parse
|
||||
{
|
||||
using qi::lit;
|
||||
using qi::char_;
|
||||
using qi::repeat;
|
||||
using qi::attr;
|
||||
using qi::eps;
|
||||
using qi::raw;
|
||||
using qi::omit;
|
||||
|
||||
template<class it, class top> struct grammar;
|
||||
struct capstan extern const capstan;
|
||||
struct head extern const head;
|
||||
|
@ -34,11 +24,7 @@ namespace ircd::rfc1459::parse
|
|||
|
||||
namespace ircd::rfc1459::gen
|
||||
{
|
||||
using karma::lit;
|
||||
using karma::int_;
|
||||
using karma::char_;
|
||||
using karma::buffer;
|
||||
using karma::repeat;
|
||||
using ircd::spirit::buffer;
|
||||
|
||||
template<class it, class top> struct grammar;
|
||||
}
|
||||
|
@ -438,11 +424,14 @@ try
|
|||
|
||||
qi::parse(start, stop, grammar, *this);
|
||||
}
|
||||
catch(const boost::spirit::qi::expectation_failure<const char *> &e)
|
||||
catch(const qi::expectation_failure<const char *> &e)
|
||||
{
|
||||
throw syntax_error("@%d expecting :%s",
|
||||
throw syntax_error
|
||||
{
|
||||
"@%d expecting :%s",
|
||||
int(e.last - e.first),
|
||||
string(e.what_).c_str());
|
||||
ircd::string(e.what_).c_str()
|
||||
};
|
||||
}
|
||||
|
||||
bool
|
||||
|
|
|
@ -10,37 +10,18 @@
|
|||
|
||||
#include <ircd/spirit.h>
|
||||
|
||||
namespace spirit = boost::spirit;
|
||||
namespace qi = spirit::qi;
|
||||
namespace karma = spirit::karma;
|
||||
namespace ascii = qi::ascii;
|
||||
|
||||
using qi::lit;
|
||||
using qi::string;
|
||||
using qi::char_;
|
||||
using qi::short_;
|
||||
using qi::ushort_;
|
||||
using qi::int_;
|
||||
using qi::long_;
|
||||
using qi::repeat;
|
||||
using qi::omit;
|
||||
using qi::raw;
|
||||
using qi::attr;
|
||||
using qi::eps;
|
||||
using qi::attr_cast;
|
||||
|
||||
using karma::maxwidth;
|
||||
|
||||
namespace ircd::rfc3986
|
||||
{
|
||||
using namespace ircd::spirit;
|
||||
|
||||
template<class it> struct grammar;
|
||||
}
|
||||
|
||||
template<class it>
|
||||
struct ircd::rfc3986::grammar
|
||||
:qi::grammar<it, spirit::unused_type>
|
||||
:qi::grammar<it, unused_type>
|
||||
{
|
||||
template<class R = spirit::unused_type, class... S> using rule = qi::rule<it, R, S...>;
|
||||
template<class R = unused_type, class... S> using rule = qi::rule<it, R, S...>;
|
||||
|
||||
const rule<> port
|
||||
{
|
||||
|
@ -206,7 +187,7 @@ ircd::rfc3986::encode(const string_view &url,
|
|||
struct ircd::rfc3986::decoder
|
||||
:qi::grammar<const char *, mutable_buffer>
|
||||
{
|
||||
template<class R = spirit::unused_type, class... S> using rule = qi::rule<const char *, R, S...>;
|
||||
template<class R = unused_type, class... S> using rule = qi::rule<const char *, R, S...>;
|
||||
|
||||
rule<> url_illegal
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue