def __do_state_machine(SmOrSmList, EngineType, dial_db, ReloadStateForward=None, ReverseF=False): """Generates code for state machine 'sm' and the 'EngineType'. RETURNS: list of strings """ assert type(SmOrSmList) == list or len(SmOrSmList.get_orphaned_state_index_list()) == 0 # -- Analyze state machine --> optimized version analyzer = analyzer_generator.do(SmOrSmList, EngineType, ReloadStateExtern = ReloadStateForward, dial_db = dial_db, ReverseF = ReverseF) txt = [] # -- [optional] comment state machine transitions if Setup.comment_state_machine_f: if type(SmOrSmList) != list: SmOrSmList = [ SmOrSmList ] for sm in SmOrSmList: Lng.COMMENT_STATE_MACHINE(txt, sm) # -- Generate code for analyzer txt.extend( do_analyzer(analyzer) ) return txt, analyzer
def do_state_machine(sm, EngineType): """Generates code for state machine 'sm' and the 'EngineType'. RETURNS: list of strings """ assert len(sm.get_orphaned_state_index_list()) == 0 txt = [] # -- [optional] comment state machine transitions if Setup.comment_state_machine_f: Lng.COMMENT_STATE_MACHINE(txt, sm) # -- Analyze state machine --> optimized version analyzer = analyzer_generator.do(sm, EngineType) # -- Generate code for analyzer txt.extend(do_analyzer(analyzer)) return txt, analyzer