@@ -41,24 +41,29 @@ namespace TINY
41
41
Scanner scanner (input);
42
42
43
43
// First identifier: "varName"
44
- EXPECT_EQ (scanner.getNextToken ().getType (), TokenType::IDENTIFIER);
45
- EXPECT_EQ (scanner.getNextToken ().getValue (), " varName" );
44
+ Token token1 = scanner.getNextToken (); // Store the token
45
+ EXPECT_EQ (token1.getType (), TokenType::IDENTIFIER);
46
+ EXPECT_EQ (token1.getValue (), " varName" );
46
47
47
48
// Identifier: "another"
48
- EXPECT_EQ (scanner.getNextToken ().getType (), TokenType::IDENTIFIER);
49
- EXPECT_EQ (scanner.getNextToken ().getValue (), " another" );
49
+ Token token2 = scanner.getNextToken (); // Store the next token
50
+ EXPECT_EQ (token2.getType (), TokenType::IDENTIFIER);
51
+ EXPECT_EQ (token2.getValue (), " another" );
50
52
51
53
// Underscore as UNKNOWN token
52
- EXPECT_EQ (scanner.getNextToken ().getType (), TokenType::UNKNOWN);
53
- EXPECT_EQ (scanner.getNextToken ().getValue (), " _" );
54
+ Token token3 = scanner.getNextToken (); // Store the next token
55
+ EXPECT_EQ (token3.getType (), TokenType::UNKNOWN);
56
+ EXPECT_EQ (token3.getValue (), " _" );
54
57
55
58
// Identifier: "var"
56
- EXPECT_EQ (scanner.getNextToken ().getType (), TokenType::IDENTIFIER);
57
- EXPECT_EQ (scanner.getNextToken ().getValue (), " var" );
59
+ Token token4 = scanner.getNextToken (); // Store the next token
60
+ EXPECT_EQ (token4.getType (), TokenType::IDENTIFIER);
61
+ EXPECT_EQ (token4.getValue (), " var" );
58
62
59
63
// Final identifier: "lastVar"
60
- EXPECT_EQ (scanner.getNextToken ().getType (), TokenType::IDENTIFIER);
61
- EXPECT_EQ (scanner.getNextToken ().getValue (), " lastVar" );
64
+ Token token5 = scanner.getNextToken (); // Store the next token
65
+ EXPECT_EQ (token5.getType (), TokenType::IDENTIFIER);
66
+ EXPECT_EQ (token5.getValue (), " lastVar" );
62
67
}
63
68
64
69
// Test numeric literals
@@ -67,14 +72,20 @@ namespace TINY
67
72
std::string input = " 123 45678 999" ;
68
73
Scanner scanner (input);
69
74
70
- EXPECT_EQ (scanner.getNextToken ().getType (), TokenType::NUMBER);
71
- EXPECT_EQ (scanner.getNextToken ().getValue (), " 123" );
75
+ // First number: "123"
76
+ Token token1 = scanner.getNextToken (); // Store the token
77
+ EXPECT_EQ (token1.getType (), TokenType::NUMBER);
78
+ EXPECT_EQ (token1.getValue (), " 123" );
72
79
73
- EXPECT_EQ (scanner.getNextToken ().getType (), TokenType::NUMBER);
74
- EXPECT_EQ (scanner.getNextToken ().getValue (), " 45678" );
80
+ // Second number: "45678"
81
+ Token token2 = scanner.getNextToken (); // Store the next token
82
+ EXPECT_EQ (token2.getType (), TokenType::NUMBER);
83
+ EXPECT_EQ (token2.getValue (), " 45678" );
75
84
76
- EXPECT_EQ (scanner.getNextToken ().getType (), TokenType::NUMBER);
77
- EXPECT_EQ (scanner.getNextToken ().getValue (), " 999" );
85
+ // Third number: "999"
86
+ Token token3 = scanner.getNextToken (); // Store the next token
87
+ EXPECT_EQ (token3.getType (), TokenType::NUMBER);
88
+ EXPECT_EQ (token3.getValue (), " 999" );
78
89
}
79
90
80
91
// Test mixed tokens
@@ -95,17 +106,28 @@ namespace TINY
95
106
// Test unknown tokens
96
107
TEST (ScannerTest, UnknownTokens)
97
108
{
98
- std::string input = " @ $ #" ;
109
+ std::string input = " @ _ $ #" ;
99
110
Scanner scanner (input);
100
111
101
- EXPECT_EQ (scanner.getNextToken ().getType (), TokenType::UNKNOWN);
102
- EXPECT_EQ (scanner.getNextToken ().getValue (), " @" );
103
-
104
- EXPECT_EQ (scanner.getNextToken ().getType (), TokenType::UNKNOWN);
105
- EXPECT_EQ (scanner.getNextToken ().getValue (), " $" );
106
-
107
- EXPECT_EQ (scanner.getNextToken ().getType (), TokenType::UNKNOWN);
108
- EXPECT_EQ (scanner.getNextToken ().getValue (), " #" );
112
+ // First unknown token: "@"
113
+ Token token1 = scanner.getNextToken (); // Store the token
114
+ EXPECT_EQ (token1.getType (), TokenType::UNKNOWN);
115
+ EXPECT_EQ (token1.getValue (), " @" );
116
+
117
+ // Second unknown token: "_"
118
+ Token token2 = scanner.getNextToken (); // Store the next token
119
+ EXPECT_EQ (token2.getType (), TokenType::UNKNOWN);
120
+ EXPECT_EQ (token2.getValue (), " _" );
121
+
122
+ // Second unknown token: "$"
123
+ Token token3 = scanner.getNextToken (); // Store the next token
124
+ EXPECT_EQ (token3.getType (), TokenType::UNKNOWN);
125
+ EXPECT_EQ (token3.getValue (), " $" );
126
+
127
+ // Third unknown token: "#"
128
+ Token token4 = scanner.getNextToken (); // Store the next token
129
+ EXPECT_EQ (token4.getType (), TokenType::UNKNOWN);
130
+ EXPECT_EQ (token4.getValue (), " #" );
109
131
}
110
132
111
133
} // namespace SCANNER
0 commit comments