Atom parse_atom_aux(char *token) { if (is_integer_token(token)) return parse_integer(token); if (is_ratio_token(token)) return parse_ratio(token); if (is_string_token(token)) return parse_string(token); return parse_symbol(token, package); }
bool is_token(const std::string& token) { if (is_comment_token(token)) return true; else if (is_string_token(token)) return true; else if (is_char_token(token)) return true; else if (is_whitespace(token[token.size() - 1])) return false; else if (symbols.count(token) == 1) return true; else if (keywords.count(token) == 1) return true; else if (is_number_token(token)) return true; else return is_identifier_token(token); }