Skip to content

Commit b093448

Browse files
added <> as inequality operator
1 parent a3c4e65 commit b093448

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

ExpressionTest/TokenizerTest.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public void TestEveryTokenType()
1414
AssertTokensMatch("=", Token(TokenType.Assignment, "=", 0), Token(TokenType.EndOfFile, "", 1));
1515
AssertTokensMatch("==", Token(TokenType.Equal, "==", 0), Token(TokenType.EndOfFile, "", 2));
1616
AssertTokensMatch("!=", Token(TokenType.NotEqual, "!=", 0), Token(TokenType.EndOfFile, "", 2));
17+
AssertTokensMatch("<>", Token(TokenType.NotEqual, "<>", 0), Token(TokenType.EndOfFile, "", 2));
1718
AssertTokensMatch("(", Token(TokenType.LeftParenthesis, "(", 0), Token(TokenType.EndOfFile, "", 1));
1819
AssertTokensMatch(")", Token(TokenType.RightParenthesis, ")", 0), Token(TokenType.EndOfFile, "", 1));
1920
AssertTokensMatch("+", Token(TokenType.Plus, "+", 0), Token(TokenType.EndOfFile, "", 1));

shunting_yard/src/tokenizer/Tokenizer.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,11 +139,12 @@ IEnumerable<Token> Scan()
139139
if (IsWhiteSpace())
140140
{
141141
yield return ScanWhiteSpace();
142-
}
142+
}
143143
else if (IsDigit())
144144
{
145145
yield return ScanInteger();
146-
} else if (Peek() == '.')
146+
}
147+
else if (Peek() == '.')
147148
{
148149
yield return ScanFloatingPointNumber();
149150
}
@@ -271,6 +272,11 @@ Token ScanPunctuation()
271272
Consume();
272273
return CreateToken(TokenType.LessOrEqual);
273274
}
275+
if (Peek() == '>')
276+
{
277+
Consume();
278+
return CreateToken(TokenType.NotEqual);
279+
}
274280
return CreateToken(TokenType.Less);
275281
case '+':
276282
Consume();

0 commit comments

Comments
 (0)