int _scanner::transition (int curr_state, char next_char) { switch (curr_state) { case STRING: switch (next_char) { case '"': return FINAL; default: return STRING; } case DECIMAL: switch (next_char) { case '.': return FLOAT; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': return DECIMAL; default: return FINAL; } break; } return 0; }