38 lines
995 B
Python
38 lines
995 B
Python
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=[]
|
|
|