}
}
-/* Returns whether the token id is (or is likely to be) a right angle bracket.
- * i.e. '>', '>>', '>=' and '>>=' tokens. */
-inline bool
-is_right_angle_tok (TokenId id)
-{
- switch (id)
- {
- case RIGHT_ANGLE:
- case RIGHT_SHIFT:
- case GREATER_OR_EQUAL:
- case RIGHT_SHIFT_EQ:
- return true;
- default:
- return false;
- }
-}
-
/* HACK-y special handling for skipping a right angle token at the end of
* generic arguments.
* Currently, this replaces the "current token" with one that is identical
rust_debug ("skipped left angle in generic param");
std::vector<std::unique_ptr<AST::GenericParam>> generic_params
- = parse_generic_params (is_right_angle_tok);
+ = parse_generic_params (Parse::Utils::is_right_angle_tok);
// DEBUG:
rust_debug ("finished parsing actual generic params (i.e. inside angles)");
/* cannot specify end token due to parsing problems with '>' tokens being
* nested */
- params = parse_lifetime_params_objs (is_right_angle_tok);
+ params = parse_lifetime_params_objs (Parse::Utils::is_right_angle_tok);
if (!skip_generics_right_angle ())
{
const_TokenPtr t = lexer.peek_token ();
location_t locus = t->get_locus ();
- while (!is_right_angle_tok (t->get_id ()))
+ while (!Parse::Utils::is_right_angle_tok (t->get_id ()))
{
auto lifetime = parse_lifetime (false);
if (!lifetime)
// TODO: think of better control structure
t = lexer.peek_token ();
- while (!is_right_angle_tok (t->get_id ()))
+ while (!Parse::Utils::is_right_angle_tok (t->get_id ()))
{
// FIXME: Is it fine to break if there is one binding? Can't there be
// bindings in between types?
// TODO: think of better control structure
t = lexer.peek_token ();
- while (!is_right_angle_tok (t->get_id ()))
+ while (!Parse::Utils::is_right_angle_tok (t->get_id ()))
{
AST::GenericArgsBinding binding = parse_generic_args_binding ();
if (binding.is_error ())