// match arm arrow
skip_input ();
current_column += 2;
+ loc += 1;
return Token::make (MATCH_ARROW, loc);
}
// equality operator
skip_input ();
current_column += 2;
+ loc += 1;
return Token::make (EQUAL_EQUAL, loc);
}
// return type specifier
skip_input ();
current_column += 2;
+ loc += 1;
return Token::make (RETURN_TYPE, loc);
}
// minus-assign
skip_input ();
current_column += 2;
+ loc += 1;
return Token::make (MINUS_EQ, loc);
}
// add-assign
skip_input ();
current_column += 2;
+ loc += 1;
return Token::make (PLUS_EQ, loc);
}
// multiplication-assign
skip_input ();
current_column += 2;
+ loc += 1;
return Token::make (ASTERISK_EQ, loc);
}
// division-assign
skip_input ();
current_column += 2;
+ loc += 1;
return Token::make (DIV_EQ, loc);
}
start_line (current_line, max_column_hint);
str.shrink_to_fit ();
+
+ loc += str.size () - 1;
if (is_inner)
return Token::make_inner_doc_comment (loc, std::move (str));
else
}
str.shrink_to_fit ();
+
+ loc += str.size () - 1;
if (is_inner)
return Token::make_inner_doc_comment (loc, std::move (str));
else
// modulo-assign
skip_input ();
current_column += 2;
+ loc += 1;
return Token::make (PERCENT_EQ, loc);
}
// xor-assign?
skip_input ();
current_column += 2;
+ loc += 1;
return Token::make (CARET_EQ, loc);
}
// left-shift assign
skip_input (1);
current_column += 3;
+ loc += 2;
return Token::make (LEFT_SHIFT_EQ, loc);
}
// left-shift
skip_input ();
current_column += 2;
+ loc += 1;
return Token::make (LEFT_SHIFT, loc);
}
// smaller than or equal to
skip_input ();
current_column += 2;
+ loc += 1;
return Token::make (LESS_OR_EQUAL, loc);
}
// right-shift-assign
skip_input (1);
current_column += 3;
+ loc += 2;
return Token::make (RIGHT_SHIFT_EQ, loc);
}
// right-shift
skip_input ();
current_column += 2;
+ loc += 1;
return Token::make (RIGHT_SHIFT, loc);
}
// larger than or equal to
skip_input ();
current_column += 2;
+ loc += 1;
return Token::make (GREATER_OR_EQUAL, loc);
}
// scope resolution ::
skip_input ();
current_column += 2;
+ loc += 1;
return Token::make (SCOPE_RESOLUTION, loc);
}
// not equal boolean operator
skip_input ();
current_column += 2;
+ loc += 1;
return Token::make (NOT_EQUAL, loc);
}
// bitwise or-assign?
skip_input ();
current_column += 2;
+ loc += 1;
return Token::make (PIPE_EQ, loc);
}
// logical or
skip_input ();
current_column += 2;
+ loc += 1;
return Token::make (OR, loc);
}
// bitwise and-assign?
skip_input ();
current_column += 2;
+ loc += 1;
return Token::make (AMP_EQ, loc);
}
// logical and
skip_input ();
current_column += 2;
+ loc += 1;
return Token::make (LOGICAL_AND, loc);
}
// ellipsis
skip_input (1);
current_column += 3;
+ loc += 2;
return Token::make (ELLIPSIS, loc);
}
// ..=
skip_input (1);
current_column += 3;
+ loc += 2;
return Token::make (DOT_DOT_EQ, loc);
}
// ..
skip_input ();
current_column += 2;
+ loc += 1;
return Token::make (DOT_DOT, loc);
}
current_column += length;
+ loc += length - 1;
+
return Token::make_byte_char (loc, byte_char);
}
}
str.shrink_to_fit ();
+ loc += str.size () - 1;
return Token::make_byte_string (loc, std::move (str));
}
current_column += length;
+ loc += length - 1;
+
str.shrink_to_fit ();
return Token::make_byte_string (loc, std::move (str));
else
{
str.shrink_to_fit ();
+ loc += length - 1;
return Token::make_identifier (loc, std::move (str));
}
}
str.shrink_to_fit ();
+ loc += length - 1;
+
return Token::make_string (loc, std::move (str));
}
str.shrink_to_fit ();
+ loc += length - 1;
+
TokenId keyword = classify_keyword (str);
if (keyword == IDENTIFIER)
return Token::make_identifier (loc, std::move (str));
current_column += length;
+ loc += length - 1;
+
str.shrink_to_fit ();
return Token::make_string (loc, std::move (str));
: "<insert unknown base>")));
return nullptr;
}
+
+ loc += length - 1;
+
return Token::make_int (loc, std::move (existent_str), type_hint);
}
current_column += length;
+ loc += length - 1;
+
str.shrink_to_fit ();
return Token::make_float (loc, std::move (str), type_hint);
}
current_column += length;
+ loc += length - 1;
+
str.shrink_to_fit ();
return Token::make_float (loc, std::move (str), CORETYPE_UNKNOWN);
}
current_column += length;
+ loc += length - 1;
+
str.shrink_to_fit ();
return Token::make_float (loc, std::move (str), type_hint);
}
current_column += length;
+ loc += length - 1;
+
str.shrink_to_fit ();
return Token::make_int (loc, std::move (str), type_hint);
}
current_column += length;
+ loc += length - 1;
+
return Token::make_char (loc, current_char32);
}
else
// TODO fix due to different widths of utf-8 chars?
current_column += 3;
+ loc += 2;
+
return Token::make_char (loc, current_char32);
}
else if (ISDIGIT (current_char32.value) || ISALPHA (current_char32.value)
current_column += length;
+ loc += length - 1;
+
str.shrink_to_fit ();
return Token::make_lifetime (loc, std::move (str));
}