Пример #1
0
void append_state_placeholders_if_needed(Branch* branch)
{
    if (!has_state_input(branch))
        append_state_input(branch);
    if (!has_state_output(branch))
        append_state_output(branch);
}
Пример #2
0
bool is_function_stateful(Term* func)
{
    if (!is_function(func))
        return false;
    Function* attrs = as_function(func);
    if (attrs == NULL)
        return false;

    Branch* branch = function_contents(func);
    return has_state_input(branch);
}
Пример #3
0
bool is_function_stateful(Term* func)
{
    if (!is_function(func))
        return false;
    Function* attrs = as_function(func);
    if (attrs == NULL)
        return false;

    Block* block = function_contents(func);
    return has_state_input(block);
}
Пример #4
0
void if_block_normalize_state_inputs(Term* ifBlock)
{
    Branch* contents = nested_contents(ifBlock);

    // Check if any branches have a state input
    bool anyState = false;
    for (CaseIterator it(contents); it.unfinished(); it.advance()) {
        if (has_state_input(nested_contents(it.current())))
            anyState = true;
    }

    if (!anyState)
        return;

    append_state_placeholders_if_needed(contents);
    for (CaseIterator it(contents); it.unfinished(); it.advance())
        append_state_placeholders_if_needed(nested_contents(it.current()));
}
Пример #5
0
bool has_implicit_state(Term* term)
{
    return has_state_input(term_get_function_details(term));
}