added preprocessor, requirements.txt

This commit is contained in:
Dominic Höglinger 2022-11-21 17:21:28 +01:00
parent 97f6b7989e
commit 83350bd6c9
2 changed files with 21 additions and 4 deletions

View File

@ -1,7 +1,8 @@
from __future__ import print_function
import argparse
import sys
import os,sys,io
from pycparser import parse_file, c_ast, CParser
from pcpp import Preprocessor
import graphviz as gv
from modelbuilder import *
@ -26,15 +27,27 @@ if __name__ == "__main__":
#read whole file to a string
source = f.read()
p = Preprocessor()
p.add_path('/usr/lib/gcc/x86_64-linux-gnu/12/include/')
p.parse(source)
oh = io.StringIO()
p.write(oh)
prep_source = oh.getvalue()
#print(prep_source)
#exit()
parser = CParser()
ast = parser.parse(comment_remover(source))
ast = parser.parse(prep_source)
#ast = parse_file(args.filename, use_cpp=False)
assign_table = []
state_enums = []
func_table = {}
enum_table = {}
state_asmts = []
fdv = FuncDefVisitor()
fdv.visit(ast)
func_table = fdv.func_table
@ -43,7 +56,8 @@ if __name__ == "__main__":
etv.visit(ast)
enum_table = etv.enums
state_asmts = []
if not(args.func in func_table):
raise Exception(f"Function name '{args.func}' not found!")
if args.enum in enum_table:
ev = EnumVisitor()

3
requirements.txt Normal file
View File

@ -0,0 +1,3 @@
pycparser
graphviz
pcpp>=1.30