Greater than and Less Than
This commit is contained in:
@@ -25,6 +25,8 @@ var precedences = map[token.TokenType]int{
|
||||
token.NOT_EQ: EQUALS,
|
||||
token.LT: LESSGREATER,
|
||||
token.GT: LESSGREATER,
|
||||
token.LTE: LESSGREATER,
|
||||
token.GTE: LESSGREATER,
|
||||
token.PLUS: SUM,
|
||||
token.MINUS: SUM,
|
||||
token.SLASH: PRODUCT,
|
||||
@@ -78,7 +80,9 @@ func New(l *lexer.Lexer) *Parser {
|
||||
p.registerInfix(token.EQ, p.parseInfixExpression)
|
||||
p.registerInfix(token.NOT_EQ, p.parseInfixExpression)
|
||||
p.registerInfix(token.LT, p.parseInfixExpression)
|
||||
p.registerInfix(token.LTE, p.parseInfixExpression)
|
||||
p.registerInfix(token.GT, p.parseInfixExpression)
|
||||
p.registerInfix(token.GTE, p.parseInfixExpression)
|
||||
p.registerInfix(token.LPAREN, p.parseCallExpression)
|
||||
p.registerInfix(token.LBRACKET, p.parseIndexExpression)
|
||||
|
||||
|
||||
@@ -285,6 +285,14 @@ func TestOperatorPrecedenceParsing(t *testing.T) {
|
||||
"5 < 4 != 3 > 4",
|
||||
"((5 < 4) != (3 > 4))",
|
||||
},
|
||||
{
|
||||
"5 >= 4 == 3 <= 4",
|
||||
"((5 >= 4) == (3 <= 4))",
|
||||
},
|
||||
{
|
||||
"5 <= 4 != 3 >= 4",
|
||||
"((5 <= 4) != (3 >= 4))",
|
||||
},
|
||||
{
|
||||
"3 + 4 * 5 == 3 * 1 + 4 * 5",
|
||||
"((3 + (4 * 5)) == ((3 * 1) + (4 * 5)))",
|
||||
|
||||
Reference in New Issue
Block a user