def __init__(self, is_intaractive_run, an_errhandler): """ EvalVisitorを初期化して応答する. """ self.is_test = False self.is_intaractive_run = is_intaractive_run self.errhandler = an_errhandler self.scopes = ScopeList() self.is_break = False self.is_return = False self.return_value = UnitXObject(value=None, varname=None, unit=None, token=None, is_none=True) this_dir, _ = os.path.split(__file__) data_path = os.path.join(this_dir, Constants.SYSTEM_UNIT_DATA) self.unit_manager = UnitManager(data_path) # Sets a database(data/unit_table.dat) for calculating units. self.stdlib = Stdlib() self.NULL_UNITX_OBJ = UnitXObject(value=None, varname=None, is_none=True, unit=Unit(), token=None) # # Sets a mediator to each classes for a management, # because this class is a mediator class. # Also, UnitXObject, Unit, Scope classes have to create many new instances. # So, We set a mediator by using classmethod. # self.scopes.set_mediator(self) self.unit_manager.set_mediator(self) self.stdlib.set_mediator(self) UnitXObject.set_mediator(self) Unit.set_mediator(self) Scope.set_mediator(self) DefinedFunction.set_mediator(self) UnitXObject.manager = self.get_unit_manager() UnitXObject.scopes = self.get_scopes()