将CPP定义移植到python
porting CPP defines to python
我有一个程序(用C/C++编写),它的行为就像套接字服务器。我想用python编写客户端。通过TCP套接字交换的数据包遵循"自制"协议(简单),使用定义为#define的宏。。。在XXX.h文件中。我想解析XXX.h文件以生成等效的XXX.pyXXX.h文件仅包含CPP宏定义(和注释),例如:
//the following commands are used when talking to the server
//A tcp message is: the command(32bit word) followed by the flags (32 bits)
#define CMD_DO_SOMETHING1 1 //this does something
#define CMD_DO_SOMETHING2 2 //that does something else
#define FLAG1 0x0001 //These flags are used as parameter in cmd2
#define FLAG2 0x0002
#define FLAG3 0x0004
#define FLAG4 0x0008
#define TEST_FLAG1(x) (x&FLAG1) //this tests for flag1
我想要一些类似的东西:XXX.py:
CMD_DO_SOMETHING1=1
CMD_DO_SOMETHING2=2
FLAG1=1
...
def test_flag1(x):
return(x&flag1)
我曾短暂地看过swig,但不相信它真的符合我的要求。手动解析XXX.h文件并匹配正则表达式感觉是错误的。在*.py文件上运行CPP的想法也是如此。至少,常量定义应该被转换,这样我就不必重写它们两次。有更好的主意吗?
h2py.py
正是这样做的。它包含在Tools/scripts 的Python发行版(*)中
如果您需要转换超过#defines,请参阅问题"将C++头文件转换为Python "
编辑:(*)它至少包含在完整的源发行版中。
为什么不使用宏预处理器来执行此操作?这就是他们的目的。
相关文章:
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 是否可以使用 libclang python 解析 cpp 文件中没有标头的函数原型
- 如何大致将 cpp 代码结构转换为 python
- 在 cpp 中嵌入 python:如何获取指向 python 函数(而不是 PyObject)的 C 指针?
- 在cpp中使用boost-python的python代码是否进行动态内存分配
- ROS CPP 相当于 Python subprocess.call() 和 shell=True
- Python vs CPP:为什么速度差异如此之大
- Or-Tools:CPP中琐碎的问题是不可行的,但在Python中起作用
- 从 Python 中以“.cpp”格式保存 LGBM 模型
- 使用python在非阳性组件中使用python与cpp中的特征库来计算特征值
- 编译 PythonService.cpp来自 win32 Python 扩展构建
- 如何在 Coverity Scan 中忽略生成的 cpp 文件(来自 swig/python)
- 从 python ctypes 调用 CPP 函数
- 将Python词典转换为CPP对象
- 将CPP EXE打印到Python脚本输入中
- Python 与 CPP 的行为不同
- 如何比较cpp和python输出
- Python 子进程.Popen 在 g++ 中编译,自动添加.cpp文件
- Swig C++ to python:编译一堆.cpp和.h文件
- Python .cpp读取,追加,保存和关闭,但不工作