В тесте на членство оба значения должны быть одного типа.В вашем случае input
- это Unbounded_String
, а "!Close"
- строковый литерал.Вы должны либо преобразовать один из них в другой, либо просто использовать оператор равенства, определенный в Ada.Strings.Unbounded
(а так как вы уже сделали use Ada.Strings.Unbounded
, у вас есть видимость всех альтернатив):
while input not in To_Unbounded_String("!Close") loop --Line 18
или
while To_String(input) not in "!Close" loop --Line 18
или
while input /= "!Close" loop --Line 18