package builtins import "monkey/object" import ( "fmt" "os" ) // Assert ... func Assert(args ...object.Object) object.Object { if len(args) != 2 { return newError("wrong number of arguments. got=%d, want=2", len(args)) } if args[0].Type() != object.BOOLEAN_OBJ { return newError("argument #1 to `assert` must be BOOLEAN, got %s", args[0].Type()) } if args[1].Type() != object.STRING_OBJ { return newError("argument #2 to `assert` must be STRING, got %s", args[0].Type()) } if !args[0].(*object.Boolean).Value { fmt.Printf("Assertion Error: %s", args[1].(*object.String).Value) os.Exit(1) } return nil }