Beispiel #1
0
 public override void WriteCallCast(CallCast s, ExpressionUsage u)
 {
     WriteStaticType(s.Source, s.ReturnType);
     Write("(");
     WriteExpression(s.Operand);
     Write(")");
 }
Beispiel #2
0
        public override void WriteCallCast(CallCast s, ExpressionUsage u)
        {
            if (Environment.GetBool(s.Operand.ReturnType, "IsIntrinsic"))
            {
                // Cast to integer
                if (s.ReturnType.IsIntegralType && s.Operand.ReturnType.IsFloatingPointType)
                {
                    if (u >= ExpressionUsage.Operand)
                    {
                        Write("(");
                    }

                    WriteExpression(s.Operand, ExpressionUsage.Operand);
                    Write(" | 0");

                    if (u >= ExpressionUsage.Operand)
                    {
                        Write(")");
                    }

                    return;
                }

                WriteExpression(s.Operand, ExpressionUsage.Object);

                if (s.ReturnType == Essentials.SByte && s.Operand.ReturnType == Essentials.Byte)
                {
                    Write(".ByteToSByte()");
                }
                else if (s.ReturnType == Essentials.Byte && s.Operand.ReturnType == Essentials.SByte)
                {
                    Write(".SByteToByte()");
                }

                return;
            }

            base.WriteCallCast(s, u);
        }
Beispiel #3
0
 public virtual void WriteCallCast(CallCast s, ExpressionUsage u)
 {
     WriteCast(s.Source, s.ReturnType, s.Operand, u);
 }