瀏覽代碼

CppLexer: Add token types for ".", "->"

Nico Weber 5 年之前
父節點
當前提交
1992dbd637
共有 2 個文件被更改,包括 11 次插入0 次删除
  1. 9 0
      Libraries/LibGUI/CppLexer.cpp
  2. 2 0
      Libraries/LibGUI/CppLexer.h

+ 9 - 0
Libraries/LibGUI/CppLexer.cpp

@@ -422,6 +422,11 @@ Vector<CppToken> CppLexer::lex()
                 commit_token(CppToken::Type::MinusEquals);
                 continue;
             }
+            if (peek() == '>') {
+                consume();
+                commit_token(CppToken::Type::Arrow);
+                continue;
+            }
             commit_token(CppToken::Type::Minus);
             continue;
         }
@@ -493,6 +498,10 @@ Vector<CppToken> CppLexer::lex()
             emit_token(CppToken::Type::Semicolon);
             continue;
         }
+        if (ch == '.') {
+            emit_token(CppToken::Type::Dot);
+            continue;
+        }
         if (ch == '#') {
             begin_token();
             consume();

+ 2 - 0
Libraries/LibGUI/CppLexer.h

@@ -81,6 +81,8 @@ namespace GUI {
     __TOKEN(QuestionMark)          \
     __TOKEN(Colon)                 \
     __TOKEN(Semicolon)             \
+    __TOKEN(Dot)                   \
+    __TOKEN(Arrow)                 \
     __TOKEN(DoubleQuotedString)    \
     __TOKEN(SingleQuotedString)    \
     __TOKEN(EscapeSequence)        \