@@ -193,9 +193,15 @@ func (l *LexerTests) TestTwoCharacterOperator() {
193193 10 <= 9;
194194 10 || 9;
195195 10 && 9;
196+ 10++;
197+ 10 += 1;
198+ 10--;
199+ 10 -= 1;
200+ 10 *= 2;
201+ 10 /= 2;
196202 `
197203
198- tokens := l .loadTokens (24 , source )
204+ tokens := l .loadTokens (46 , source )
199205
200206 expectedTokens := []src.Token {
201207 {Token_type : src .INT , Literal : "10" },
@@ -222,6 +228,28 @@ func (l *LexerTests) TestTwoCharacterOperator() {
222228 {Token_type : src .AND , Literal : "&&" },
223229 {Token_type : src .INT , Literal : "9" },
224230 {Token_type : src .SEMICOLON , Literal : ";" },
231+ {Token_type : src .INT , Literal : "10" },
232+ {Token_type : src .PLUS2 , Literal : "++" },
233+ {Token_type : src .SEMICOLON , Literal : ";" },
234+ {Token_type : src .INT , Literal : "10" },
235+ {Token_type : src .PLUSASSING , Literal : "+=" },
236+ {Token_type : src .INT , Literal : "1" },
237+ {Token_type : src .SEMICOLON , Literal : ";" },
238+ {Token_type : src .INT , Literal : "10" },
239+ {Token_type : src .MINUS2 , Literal : "--" },
240+ {Token_type : src .SEMICOLON , Literal : ";" },
241+ {Token_type : src .INT , Literal : "10" },
242+ {Token_type : src .MINUSASSING , Literal : "-=" },
243+ {Token_type : src .INT , Literal : "1" },
244+ {Token_type : src .SEMICOLON , Literal : ";" },
245+ {Token_type : src .INT , Literal : "10" },
246+ {Token_type : src .TIMEASSI , Literal : "*=" },
247+ {Token_type : src .INT , Literal : "2" },
248+ {Token_type : src .SEMICOLON , Literal : ";" },
249+ {Token_type : src .INT , Literal : "10" },
250+ {Token_type : src .DIVASSING , Literal : "/=" },
251+ {Token_type : src .INT , Literal : "2" },
252+ {Token_type : src .SEMICOLON , Literal : ";" },
225253 }
226254
227255 l .Assert ().Equal (expectedTokens , tokens )
0 commit comments