python类初始化详解_Python C头文件解析和反向初始化

2023-05-16

我有兴趣使用Python以递归方式解析C头文件(只有结构和变量声明)。Python C头文件解析和反向初始化

这是我正在寻找的一个例子。假设如下:

typedef struct

{

double value[3];

} vector3;

typedef struct

{

unsigned int variable_a[4][2];

vector3 variable_b[5];

} my_example;

而且,假设有一个包含初始值,如文件:

ANCHOR_STRUCT(my_example) =

{

// variable_a

{ {1,2}, {3, 4}, {5,6} ,{7,8} },

// variable_b

{ {1.0,2.0,3.0}, {4.0,5.0,6.0}, {7.0,8.0,9.0}, {10.0,11.0,12.0}, {13.0,14.0,15.0} }

}

我希望能够解析这两个文件,并能够产生报告如:

OUTPUT:

my_example.variable_a[0][0] = 1

my_example.variable_a[0][1] = 2

my_example.variable_a[1][0] = 3

my_example.variable_a[1][1] = 4

my_example.variable_a[2][0] = 5

my_example.variable_a[2][1] = 6

my_example.variable_a[3][0] = 7

my_example.variable_a[3][1] = 8

my_example.variable_b[0].value[0] = 1

my_example.variable_b[0].value[1] = 2

my_example.variable_b[0].value[2] = 3

my_example.variable_b[1].value[0] = 4

my_example.variable_b[1].value[1] = 5

my_example.variable_b[1].value[2] = 6

my_example.variable_b[2].value[0] = 7

my_example.variable_b[2].value[1] = 8

my_example.variable_b[2].value[2] = 9

my_example.variable_b[3].value[0] = 10

my_example.variable_b[3].value[1] = 11

my_example.variable_b[3].value[2] = 12

my_example.variable_b[4].value[0] = 13

my_example.variable_b[4].value[1] = 14

my_example.variable_b[4].value[2] = 15

我希望能够报告这个没有运行的代码(只通过解析)。是否存在可解析和打印此信息的Python工具?我也想打印出数据类型。

在解析文件中解析“{”和“,”和“}”似乎有点复杂,并且能够将其与结构的变量和子元素进行匹配。将值与正确的代码名称相匹配似乎很困难,因为顺序非常重要。我还假定父/子/孙子变量需要递归。

感谢, 斯内德

+0

可能有用:https://fedorahosted.org/gcc-python-plugin/ –

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python类初始化详解_Python C头文件解析和反向初始化 的相关文章

随机推荐