from lex_c import lex_token import lex_c from parser_c import node from parser_c import node_file from parser_c import node_variable_def from parser_c import node_struct_decl from parser_c import node_struct_def from parser_c import node_union_decl from parser_c import node_union_def from parser_c import node_enum_decl from parser_c import node_enum_def from parser_c import node_func_decl from parser_c import node_typedef from parser_c import node_func_def class variable(object): def __init__(self,name:str,value=None,attr:list[str]=[]): self.name=name self.value_=value self.attr=attr def set_value(self,value): if("const" in self.attr): raise Exception(f"变量 {self.name} 不可写") self.value_=ValueError def value(self): return self.value_ class file(object): def __init__(self): self.variable_list:list[variable]=[] self.function_list:list=[] self.variable_type_list:list=[]