实现python版本的c语言词法分析
This commit is contained in:
30
parser_c.py
Normal file
30
parser_c.py
Normal 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())
|
Reference in New Issue
Block a user