腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(9999+)
视频
沙龙
1
回答
将
继承
属性
作为
继承
属性
的
qi
::
rule
c++
、
boost
、
boost-spirit
、
boost-spirit-qi
、
boost-phoenix
假设我们有一个
rule
1我们认为获取一个int
作为
属性
是不够
的
我们可能有很多与
rule
1相同类型
的
规则。所以最好有一个通用
的
解决方案来解决这个问题。因此,我们可以定义另一个
rule
2。(
浏览 47
提问于2017-03-07
得票数 2
回答已采纳
1
回答
带有
继承
属性
的
Boost精神解析器--简单示例不会编译
c++
、
boost
、
boost-spirit
我正试图为一种类似C
的
语言编写一个解析器,该解析器具有boost::like,它使用
继承
的
属性
来传递有关变量范围
的
信息。例如,“命名空间a{ var b }”
将
"a“
作为
属性
传递给"var b”
的
解析器。我在获得一个使用
继承
属性
编译代码
的
基本解析器时遇到了困难:#define CPARSER_DEF_HPP #
浏览 0
提问于2013-12-07
得票数 1
回答已采纳
1
回答
在规则中分配或修改
继承
的
属性
,并将结果传播到父规则
boost
、
boost-spirit
、
boost-spirit-qi
假设我有一个像这样
的
Boost精灵语法,其中父规则将
继承
的
属性
传递给它
的
子规则。template <typename Iterator>{
qi
::
rule
浏览 2
提问于2010-07-10
得票数 4
回答已采纳
2
回答
如何从Spirit::
Qi
规则访问boost::variant成员?
c++
、
boost
、
boost-spirit
、
boost-spirit-qi
、
boost-phoenix
在我
的
Spirit
Qi
语法中,我找不到使用boost::phoenix访问boost::variant成员
的
正确方法。下面是我想要实现
的
一个简单示例。<Iterator, void(TlstVariants&), Skipper>
rule
1;
qi
::eps [ ph::push_back(
qi
::_r1, ph::我需要phoenix::get<>
的
原因是因为我需要
浏览 0
提问于2011-02-22
得票数 4
回答已采纳
1
回答
提升精神将
属性
传递给子规则
c++
、
boost
、
boost-spirit
我有两个
属性
相同
的
规则。 是否可以
将
matrix_规则
的
属性
传递给matrixBlock_子规则?我希望避免重复指令创建表单vector< >
的
属性
。相反,它应该继续写入matrix_ (numBlock‘s times)
的
属性
。我试图将该
属性
作为
继承
属性
传递给子规则,并进行编译(参见下面)。::
rule
<Iterator, M
浏览 8
提问于2012-09-20
得票数 2
回答已采纳
2
回答
如何用已知键填充地图
的
语义操作?
c++
、
boost
、
boost-spirit
、
boost-spirit-qi
我正在尝试使用boost::spirit:
qi
从其他参数动态构建一个解析器。目标是解析字符串并使用键和值填充std::map<std::string, std::string>。但是,映射
的
关键字段没有被解析(即在生成解析器之前就知道了)。 我猜我需要编写一个语义操作,
将
映射
的
键设置为适当
的
解析值。我可以看到
qi
::_1提供了解析器
的
内容,但是如何引用返回结构(在本例中是std::map)?引用
的
任何字符串。我
的
解析器工作
浏览 4
提问于2013-02-12
得票数 3
1
回答
Boost精神:解析具有更改局部变量值
的
char_
c++
、
boost
、
boost-spirit-qi
我希望实现一种语法,它需要解析实例名称和路径,其中路径是由分隔符分隔
的
实例名称
的
列表。分隔符可以是在列出路径之前在输入文件中给定
的
.,遇到像a/b/c这样
的
路径不应该正确解析)。由于我事先不知道分隔符是什么,所以我考虑将其存储在语法
的
一个变量中,并在相应
的
char_解析器中使用该值(当然,实际
的
语法要复杂得多,但这正是我遇到麻烦
的
地方)。这有点类似于这个问题:,但不是我想要
的
,因为使用Nabialek技巧允许在设置
浏览 3
提问于2017-02-17
得票数 1
回答已采纳
1
回答
如何引用符号表中
的
值?
c++
、
boost-spirit
、
boost-spirit-qi
我不知道如何
将
符号表中
的
值传递给函数。(single_attribute_
rule
);
qi
::
rule
<Iterator, AttributeData(),
qi
::blank_type> single_attribute_
rule
;我认为我可以使用
qi
::_r1引用找到
的
键
的
值,但是代码没有编译: main.cpp:72:31: required f
浏览 2
提问于2017-08-11
得票数 2
回答已采纳
1
回答
Boost.Spirit.
Qi
:获取规则
的
属性
并将其设置为封闭规则
的
结构
属性
的
字段?
c++
、
boost-spirit
、
boost-spirit-qi
、
boost-phoenix
就像其他许多问题一样,我正在尝试使用Boost.Spirit.
Qi
将
一个简单
的
语法解析成一个结构树。我用它来定义然而,当我尝试实际解析一个整数时,使用
qi
::phrase_parse(iter类似地,我尝试了以下定义(显然不能编译
的
定义是错误<e
浏览 0
提问于2011-01-07
得票数 8
回答已采纳
1
回答
增强Spirit语法自定义
属性
boost
、
boost-spirit-qi
正在尝试学习Boost::Spirit,并且想要处理一个简单
的
c样式标识符
的
示例。下面的语法不能编译声明'incompatible_start_
rule
‘
的
代码。此语法
的
目标是返回一个字符串,而不是像默认
属性
传播规则那样返回字符串
的
向量。val, _1)] }
浏览 17
提问于2017-02-20
得票数 0
回答已采纳
1
回答
具有合成和
继承
属性
的
深度递归
的
qi
语法(解析器)
c++
、
boost-spirit-qi
我使用
的
是精神::构造和返回非平凡对象
作为
它们
的
综合
属性
的
齐语法。问题是,我希望语法递归地相互依赖。使用递归规则很简单,但我需要递归语法。 使BarGrammar保持指向FooGrammar
的
(智能)指针。它需要将FooGrammar构造为lit上
的
语义操作(“start_bar”)。但是我不知道
qi
内部是否安
浏览 0
提问于2014-05-09
得票数 3
回答已采纳
2
回答
在boost::spirit::
qi
中,是否可以在运行时动态修改规则定义
c++
、
boost
、
boost-spirit
、
boost-spirit-qi
我用boost::spirit::
qi
::
rule
编写了一些语法来解析互联网数据包。语法是这样
的
:start = (request | response | status例如,是否有像" disable ()“这样
的
函数来禁用规则"response”、"status“和"query"?
浏览 0
提问于2013-11-07
得票数 4
1
回答
是否可以
将
操作附加到boost::spirit::
rule
解析器,该解析器
将
解析
的
结果分配给(尚未)未知实例
的
成员?
c++
、
reference
、
boost-spirit
、
boost-bind
、
boost-spirit-qi
我试图从一个boost::spirit规则定义
的
操作中引用一个未知实例
的
成员,所以在伪代码中,它
的
一种解决方法可以是一个简单
的
“语义操作”,其中包含一个参数,该参数知道该实例并能够向其写入数据,例如my_grammar(DataContext*&
浏览 0
提问于2013-05-22
得票数 3
回答已采纳
1
回答
用自定义BNF规则解析bnf语法
c++
、
boost-spirit
、
boost-spirit-qi
、
bnf
现在,一个“列表”将对应于“\”符号之前
的
所有术语。然而,我想把每一个“列表”
的
最后一个数字
作为
“列表”
的
一个
属性
来阅读。13 23 | <loop> 24 34 | <action> 15 3 此外,最后一个数字(List
属性
来自
的
编译,但它不解析上面的语法: //#define B
浏览 3
提问于2021-04-22
得票数 1
回答已采纳
1
回答
将
包含字符串成员
的
类调整为合成
属性
c++
、
boost-spirit
、
boost-fusion
我正在尝试
将
一个字符串解析为一个自定义类型symbol
的
属性
,该
属性
包含一个std::string成员。我想我可以在这里使用BOOST_FUSION_ADAPT_STRUCT,但这行不通。如果我
将
规则声明为
rule
<It, std::string(), space_type>,它就能工作。我认为精神正试图在
属性
中添加“字符对字符”
的
值,而该
属性
如预期
的
那样失败。但是,如果没有添加一个捕获std::stri
浏览 3
提问于2014-02-02
得票数 7
回答已采纳
1
回答
如果规则和解析器
的
属性
类型不匹配,如何访问精神规则
的
属性
?
c++
、
boost
、
boost-spirit
、
boost-spirit-qi
使用boost::spirit::
qi
进行解析,可以使用语义动作通过凤凰调用函数。然后,可以使用boost::
qi
::_val
将
结果分配给规则
的
属性
,以防规则
的
属性
类型与分配
的
解析器匹配。如果类型不同,标签
qi
::_val表示top
属性
。:如您所见,赋值
qi
::_val = ph::bind(&add, ql::_1,
浏览 3
提问于2020-12-07
得票数 2
回答已采纳
1
回答
为什么Boost.Spirit正确地
将
标识符解析为std::string,而不解析为仅由std::string组成
的
经过调整
的
结构?
c++
、
parsing
、
boost-spirit
、
boost-spirit-qi
、
boost-fusion
当我直接解析为std::string时,与包含单个std::string
的
经过调整
的
结构相比,我有不同
的
结果。// Options: //#define DEFINE_STR
浏览 2
提问于2013-08-10
得票数 4
回答已采纳
1
回答
当
将
规则分配给包含自身
的
序列时,Boost.Spirit.
Qi
会崩溃
c++
、
boost-spirit
、
boost-spirit-qi
);
qi
::
rule
<std::string::iterator, void(),
qi
::space_type> parser2;
qi
::
rule
<std::string::iterator, void(),
qi
::space_type>
浏览 2
提问于2013-11-23
得票数 3
回答已采纳
1
回答
在运行时动态组合Boost.Spirit.
Qi
规则(任意数量
的
备选方案)
c++
、
boost
、
runtime
、
boost-spirit
、
boost-spirit-qi
我想知道在Boost.Spirit.
Qi
中是否有一种方法可以在运行时动态组合任意数量
的
规则。/*
qi</em
浏览 0
提问于2011-05-07
得票数 15
回答已采纳
1
回答
在struct boost::fusion::extension::adt_attribute_proxy<Ast::Term,0,false>中没有类型名称'value_type‘
boost
、
boost-spirit
在此之后,我
将
结构更改为一个类,并添加了其他副本构造函数,并重载了=操作符。我还为解析器添加了识别换行符、制表符等
的
功能。但是,由于一些错误,代码没有运行。我有个解决办法
的
线索。下面是错误消息和代码
的
片段。, Ast::Syntax()> start;
qi
::
rule
&l
浏览 0
提问于2021-03-09
得票数 1
回答已采纳
点击加载更多
热门
标签
更多标签
云服务器
ICP备案
对象存储
实时音视频
云点播
活动推荐
运营活动
广告
关闭
领券