CppLexer: Add token types for "<", "<=", "<<", "<<=", "<>"

This commit is contained in:
Nico Weber 2020-07-26 16:37:23 -04:00 committed by Andreas Kling
parent 23082e528f
commit 97c4344f33
Notes: sideshowbarker 2024-07-19 04:35:23 +09:00
2 changed files with 41 additions and 0 deletions

View file

@ -342,6 +342,32 @@ Vector<CppToken> CppLexer::lex()
emit_token(CppToken::Type::RightBracket);
continue;
}
if (ch == '<') {
begin_token();
consume();
if (peek() == '<') {
consume();
if (peek() == '=') {
consume();
commit_token(CppToken::Type::LessLessEquals);
continue;
}
commit_token(CppToken::Type::LessLess);
continue;
}
if (peek() == '=') {
consume();
commit_token(CppToken::Type::LessEquals);
continue;
}
if (peek() == '>') {
consume();
commit_token(CppToken::Type::LessGreater);
continue;
}
commit_token(CppToken::Type::Less);
continue;
}
if (ch == ',') {
emit_token(CppToken::Type::Comma);
continue;
@ -358,6 +384,10 @@ Vector<CppToken> CppLexer::lex()
emit_token_equals(CppToken::Type::Asterisk, CppToken::Type::AsteriskEquals);
continue;
}
if (ch == '%') {
emit_token_equals(CppToken::Type::Percent, CppToken::Type::PercentEquals);
continue;
}
if (ch == '=') {
emit_token_equals(CppToken::Type::Equals, CppToken::Type::EqualsEquals);
continue;