小编Yma*_*Yen的帖子

X3 解析规则无法编译

我正在通过编写一个解析器来解析 NAMS 使用的两种十六进制数变体来学习 Boost Spirit:

  1. 用的任一后缀十六进制数0x/0h或前缀h/ x
  2. 前缀为$and 的十六进制数字后必须跟一个十进制数字。

这是我到目前为止和Coliru Session 提出的内容

//#define BOOST_SPIRIT_X3_DEBUG
#include <iostream>
#include <boost/spirit/home/x3.hpp>
#include <boost/spirit/home/x3/support/ast/variant.hpp>
#include <boost/spirit/include/support_extended_variant.hpp>

namespace x3 = boost::spirit::x3;

namespace ast {
    struct hex_data : std::string {};
    struct pascal_hex_data : std::string {};

    struct declared_data : boost::spirit::extended_variant<hex_data, pascal_hex_data>
    {
        declared_data () : base_type ()                              { std::cout << "ctor default\n";               } 
        declared_data (hex_data const& rhs) : base_type (rhs)        { std::cout << "ctor …
Run Code Online (Sandbox Code Playgroud)

c++ boost-spirit boost-spirit-x3

2
推荐指数
1
解决办法
339
查看次数

标签 统计

boost-spirit ×1

boost-spirit-x3 ×1

c++ ×1