import pprint
import os
import ast
import astunparse
SUFFIX_FILE_NAME = "_con_"
SPLIT_LINE_SHOW = "*" * 30
CONST_DEFINE = """
#define True 1
#define False 0
#define_attr switches.IS_SERVER 1
#define_attr switches.IS_CLIENT 0
"""
class NodeVisitDefine(ast.NodeTransformer):
"""
节点转换器
"""
def __init__(self):
super(NodeVisitDefine, self).__init__()
self.const_define_dict = dict()
self.attr_define_dict = dict()
for one_define in CONST_DEFINE.split("\n"):
one_define = one_define.lstrip()
define_keys = one_define.split(" ")
if define_keys[0] == "#define":
self.const_define_dict[define_keys[1]] = eval(define_keys[2])
if define_keys[0] == "#define_attr":
self.att
让Python支持 #define C的宏语法(目前先支持const inline在后续)
最新推荐文章于 2024-07-06 03:18:49 发布
本文介绍了如何使用Python的Ast模块来模拟C语言中的#define常量定义和const属性,以提高代码运行效率。通过CONST_DEFINE变量存储定义,对指定包目录的文件进行转换,未来计划支持函数内联。
摘要由CSDN通过智能技术生成