Skip to content

Commit 2a95148

Browse files
committed
Add ability to compare strings
1 parent 9b7bc13 commit 2a95148

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

evaluator/evaluator.go

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,8 @@ func evalMinusPrefixOperatorExpression(right object.Object, line int) object.Obj
224224

225225
func evalInfixExpression(operator string, left, right object.Object, line int) object.Object {
226226
switch {
227+
case left.Type() == object.STRING_OBJ && right.Type() == object.STRING_OBJ:
228+
return evalStringInfixExpression(operator, left, right, line)
227229

228230
case operator == "+" && left.Type() == object.DICT_OBJ && right.Type() == object.DICT_OBJ:
229231
leftVal := left.(*object.Dict).Pairs
@@ -285,9 +287,6 @@ func evalInfixExpression(operator string, left, right object.Object, line int) o
285287
return newError("Mstari %d: Aina Hazilingani: %s %s %s",
286288
line, left.Type(), operator, right.Type())
287289

288-
case left.Type() == object.STRING_OBJ && right.Type() == object.STRING_OBJ:
289-
return evalStringInfixExpression(operator, left, right, line)
290-
291290
default:
292291
return newError("Mstari %d: Operesheni Haielweki: %s %s %s",
293292
line, left.Type(), operator, right.Type())
@@ -450,11 +449,10 @@ func evalStringInfixExpression(operator string, left, right object.Object, line
450449
switch operator {
451450
case "+":
452451
return &object.String{Value: leftVal + rightVal}
453-
// doesn't work for some reason, maybe cause its cause its 4am
454-
// case "==":
455-
// return nativeBoolToBooleanObject(leftVal == rightVal)
456-
// case "!=":
457-
// return nativeBoolToBooleanObject(leftVal != rightVal)
452+
case "==":
453+
return nativeBoolToBooleanObject(leftVal == rightVal)
454+
case "!=":
455+
return nativeBoolToBooleanObject(leftVal != rightVal)
458456
default:
459457
return newError("Mstari %d: Operesheni Haielweki: %s %s %s", line, left.Type(), operator, right.Type())
460458
}

0 commit comments

Comments
 (0)