Example #1
0
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
Example #2
0
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