实现python版本的c语言词法分析

This commit is contained in:
ranchuan
2024-11-29 19:11:43 +08:00
commit c736ef5b1b
4 changed files with 300 additions and 0 deletions

30
parser_c.py Normal file
View File

@@ -0,0 +1,30 @@
import os
import sys
import dataclasses
from lex_c import lex_token
from lex_c import lex
@dataclasses.dataclass
class node:
name:str
next:None
chid:None
token_list:list[lex_token]
# 变量声明节点
@dataclasses.dataclass
class node_vdecl(node):
vvalue:None
vtype:str
vattr:list[str]
# 函数定义节点
@dataclasses.dataclass
class node_fdef(node):
rettype:str
if __name__ == "__main__":
with open("main.c",mode='rb') as f:
token_list=lex(f.read())