summaryrefslogtreecommitdiff
path: root/symbol_analyzer/main.py
blob: 1fa5457e4bc67901fe9a121c121d223bcf43447c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import os

from extractor import parse_file
from parser import parse_definition_tokens
from symbols import symbols_from_struct_tokens, symbols_from_enum_tokens

symbols = set()

for root, subdirs, files in os.walk("include"):
    for file in files:
        file_symbols = ["int", "bool", "char"]
        definitions, usage = parse_file(root + "/" + file)
        structs, enums, functions, typedefs = parse_definition_tokens(
            definitions,
            file_symbols
        )
        file_symbols.extend(symbols_from_struct_tokens(structs))
        file_symbols.extend(symbols_from_enum_tokens(enums))
        file_symbols.extend(functions)
        file_symbols.extend(typedefs)
        for item in file_symbols:
            if item.isnumeric():
                continue
            symbols.add(item)

print(symbols)