sceptic-biomem/ScEpTIC/config/program_config.py
2026-07-10 10:38:57 +02:00

40 lines
1.3 KiB
Python

from ScEpTIC.config.base_config import ScEpTICBaseConfig
class ProgramConfig(ScEpTICBaseConfig):
"""
Program configuration
"""
_config_domain = {
'ir_function_prefix': {'class': str, 'mode': 'set'},
'main_function_name': {'class': str, 'mode': 'set'},
'file': {'class': str, 'mode': 'set'}
}
def __init__(self, main_config):
super().__init__(main_config)
# LLVM main function name
self.ir_function_prefix = '@'
# Main
self.main_function_name = f"{self.ir_function_prefix}main"
# File name
self.file = 'source.ll'
self._register_config_callback("ir_function_prefix", self._append_prefix_callback)
self._register_config_callback("main_function_name", self._append_prefix_callback)
def _append_prefix_callback(self, config_name, config_value):
"""
Callback to append prefix to function names
:param config_name: the configuration name
:param config_value: the configuration value
"""
if self.main_function_name[0] != self.ir_function_prefix:
self.main_function_name = f"{self.ir_function_prefix}{self.main_function_name}"
self._main_config.state_retention._append_prefix_callback(config_name, config_value)