在bison中使用C++api的多个解析器与stack.hh冲突
multiple parsers using C++ api in bison, conflicts with stack.hh
当您运行bison时,它会在"stack.hh"中为您创建一个堆栈类。文件名是固定的,但内容封装在您选择的命名空间中。
如果使用bison生成两个独立的语法(即2*y.y文件),并且使用C++模式,则"stack.hh"文件会发生冲突并被覆盖。
自动生成的"location.hh"answers"position.hh"类也会发生类似的情况,但在bison 2.7 中也有一个变通方法
%define api.location.type "foo::location"
它允许您在bar
语法名称空间中重用foo
语法名称空间。
但是,在处理"stack.hh"文件时,我找不到做这个练习的方法。
处理此问题的最简单方法就是将Bison文件放在两个独立的目录中。然后,当您生成代码时,文件将不会发生冲突,假设每组文件都是在与相应Bison文件相同的位置生成的。
相关文章:
- 写入位置0x0000000C时发生访问冲突
- GL_SHADERSTORAGE_BUFFER位置是否与其他着色器位置冲突
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- 引发异常:读取访问冲突**dynamicArray**为0x1118235.发生
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- 链表中写入访问冲突的未知原因
- C++中的openCV Mat访问冲突
- 如何使 std::sort 在 std::swap 和我的命名空间的模板化交换之间没有名称冲突?
- C++尝试深度复制唯一指针时出现内存访问冲突
- 错误:使用通用引用的声明冲突
- 如何解决GTest和LibTorch联动冲突
- 两个运营商的一些奇怪的冲突<<
- 如何在多个线程中创建 QSql数据库连接时防止名称冲突
- C++ 中动态二维数组的访问冲突
- 从嵌套循环中的 std::list 中删除将返回访问冲突
- C++17 十六进制浮点文字单精度后缀冲突?
- 结构字段名称与 GDB 中的 STL 数组冲突
- 写入访问冲突异常
- C++ |匿名命名空间与命名空间 std 冲突
- 在bison中使用C++api的多个解析器与stack.hh冲突