コード例 #1
0
ファイル: if_block.cpp プロジェクト: levelplane/circa
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
ファイル: stateful_code.cpp プロジェクト: mokerjoke/circa
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
ファイル: stateful_code.cpp プロジェクト: whunmr/circa
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
ファイル: if_block.cpp プロジェクト: levelplane/circa
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
ファイル: stateful_code.cpp プロジェクト: levelplane/circa
bool has_implicit_state(Term* term)
{
    return has_state_input(term_get_function_details(term));
}