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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }