private Value Not(NotNode exp)
 {
     try
     {
         Constant  node = Eval(exp.InnerNode).GetRValue();
         BoolValue n    = (BoolValue)Convert(node, Constant.Type.Bool);
         return(BoolValue.OpNot(n));
     }
     catch (TypeConversionError exc)
     {
         throw new ModelInterpreterException($"Операция \"НЕ\" не определена для типов \"{exc.Src}\" и \"{exc.Dst}\"")
               {
                   Line     = exp.Line,
                   Position = exp.Position
               };
     }
     catch (Exception exc)
     {
         throw new ModelInterpreterException(exc.Message)
               {
                   Line     = exp.Line,
                   Position = exp.Position
               };
     }
 }