예제 #1
0
inline Token&
include_guards<Token>::state_3(Token& t)
{
    token_id id = token_id(t);
    if (T_IDENTIFIER == id && t.get_value() == guard_name)
        state = &include_guards::state_4;
    else if (!is_skippable(id))
        current_state = false;
    return t;
}
예제 #2
0
inline Token&
include_guards<Token>::state_5(Token& t)
{
    token_id id = token_id(t);
    if (T_EOF == id)
        detected_guards = current_state;
    else if (!is_skippable(id))
        current_state = false;
    return t;
}
예제 #3
0
inline Token&
include_guards<Token>::state_1e(Token& t)
{
    token_id id = token_id(t);
    if (T_RIGHTPAREN == id)
        state = &include_guards::state_2;
    else if (!is_skippable(id))
        current_state = false;
    return t;
}
예제 #4
0
inline Token&
include_guards<Token>::state_2(Token& t)
{
    token_id id = token_id(t);
    if (T_PP_DEFINE == id)
        state = &include_guards::state_3;
    else if (!is_skippable(id))
        current_state = false;
    return t;
}
예제 #5
0
inline Token&
include_guards<Token>::state_1a(Token& t)
{
    token_id id = token_id(t);
    if (T_NOT == BASE_TOKEN(id))
        state = &include_guards::state_1b;
    else if (!is_skippable(id))
        current_state = false;
    return t;
}
예제 #6
0
inline Token const& 
include_guards<Token>::state_1b(Token const& t)
{
    token_id id = token_id(t);
    if (T_IDENTIFIER == id && t.get_value() == "defined") 
        state = &include_guards::state_1c;
    else if (!is_skippable(id))
        current_state = false;
    return t;
}
예제 #7
0
inline Token&
include_guards<Token>::state_1d(Token& t)
{
    token_id id = token_id(t);
    if (T_IDENTIFIER == id) {
        guard_name = t.get_value();
        state = &include_guards::state_1e;
    }
    else if (!is_skippable(id))
        current_state = false;
    return t;
}
예제 #8
0
inline Token const& 
include_guards<Token>::state_0(Token const& t)
{
    token_id id = token_id(t);
    if (T_PP_IFNDEF == id)
        state = &include_guards::state_1;
    else if (T_PP_IF == id)
        state = &include_guards::state_1a;
    else if (!is_skippable(id))
        current_state = false;
    return t;
}
예제 #9
0
inline Token const& 
include_guards<Token>::state_1c(Token const& t)
{
    token_id id = token_id(t);
    if (T_LEFTPAREN == id) 
        state = &include_guards::state_1d;
    else if (T_IDENTIFIER == id) {
        guard_name = t.get_value();
        state = &include_guards::state_2;
    }
    else if (!is_skippable(id))
        current_state = false;
    return t;
}