2026-07-10 10:38:57 +02:00

34 lines
955 B
Python

import logging
from ScEpTIC.llvmir_parser import sections_divider
from ScEpTIC.llvmir_parser import sections_parser
from ScEpTIC.llvmir_parser import token_generator
def parse_file(file, set_logging_level=None, log_section_content=False):
"""
Parses a .ll file and returns the AST
"""
logging.debug('Calling parse_file()')
current_logging_level = logging.getLogger().level
if set_logging_level is not None:
logging.getLogger().setLevel(set_logging_level)
# parse file to get corresponding tokens
tokens = token_generator.get_symbols_from_file(file)
# divide into section
sections = sections_divider.divide_into_sections(tokens)
# parse each section
parsed_sections = sections_parser.parse_sections(sections, log_section_content)
if set_logging_level is not None:
logging.getLogger().setLevel(current_logging_level)
return parsed_sections