本文介绍了简单的字符串通过Bison/Yacc中的节点传递的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我必须在yacc文件的语义规则中连接字符串:
I have to concatenate strings in semantic rules of my yacc file:
%union {
stringstream sstream;
}
%type<sstream> node1 node2
---
node1
: node2 { $$ << $1 << " goodbye" }
node2
: final { $$ << "hello" }
但是,由于在联合中不允许使用stringstream
甚至string
,所以我找不到任何简单的方法来混合char *
,int
并使节点传输我可以在任何地方操纵的字符串.我该怎么办?
However, as stringstream
or even string
are not allowed in unions, I don't find any easy way to mix char *
, int
, and make nodes transport a string that I can manipulate everywhere.How should I do it ?
推荐答案
我不记得bison
/yacc
的详细信息,但是您可以使用指针和new
.只要记住delete
,如果bison
/yacc
给您机会.
I don't remember bison
/yacc
details, but you sure can use pointer and new
it. Just remember to delete
if bison
/yacc
gives you the opportunity.
这篇关于简单的字符串通过Bison/Yacc中的节点传递的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!