summaryrefslogtreecommitdiff
path: root/symbol_analyzer/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'symbol_analyzer/main.py')
-rw-r--r--symbol_analyzer/main.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/symbol_analyzer/main.py b/symbol_analyzer/main.py
new file mode 100644
index 0000000..1fa5457
--- /dev/null
+++ b/symbol_analyzer/main.py
@@ -0,0 +1,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)