bug fix #478
This commit is contained in:
parent
fd05a1ebd0
commit
f2341f845c
|
|
@ -444,206 +444,206 @@ namespace CodeCompletion
|
||||||
|
|
||||||
eval_stack.Push(res);
|
eval_stack.Push(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void EvalMult()
|
public void EvalMult()
|
||||||
{
|
{
|
||||||
RetValue right = eval_stack.Pop();
|
RetValue right = eval_stack.Pop();
|
||||||
RetValue left = eval_stack.Pop();
|
RetValue left = eval_stack.Pop();
|
||||||
RetValue res = new RetValue();
|
RetValue res = new RetValue();
|
||||||
if (left.prim_val != null && right.prim_val != null)
|
if (left.prim_val != null && right.prim_val != null)
|
||||||
{
|
{
|
||||||
TypeCode lcode = Type.GetTypeCode(left.prim_val.GetType());
|
TypeCode lcode = Type.GetTypeCode(left.prim_val.GetType());
|
||||||
TypeCode rcode = Type.GetTypeCode(right.prim_val.GetType());
|
TypeCode rcode = Type.GetTypeCode(right.prim_val.GetType());
|
||||||
switch (lcode)
|
switch (lcode)
|
||||||
{
|
{
|
||||||
case TypeCode.Int32:
|
case TypeCode.Int32:
|
||||||
{
|
{
|
||||||
switch(rcode)
|
switch (rcode)
|
||||||
{
|
{
|
||||||
case TypeCode.Byte : res.prim_val = (int)left.prim_val * (byte)right.prim_val; break;
|
case TypeCode.Byte: res.prim_val = (int)left.prim_val * (byte)right.prim_val; break;
|
||||||
case TypeCode.Int32 : res.prim_val = (int)left.prim_val * (int)right.prim_val; break;
|
case TypeCode.Int32: res.prim_val = (int)left.prim_val * (int)right.prim_val; break;
|
||||||
case TypeCode.Double : res.prim_val = (int)left.prim_val * (double)right.prim_val; break;
|
case TypeCode.Double: res.prim_val = (int)left.prim_val * (double)right.prim_val; break;
|
||||||
case TypeCode.Int64 : res.prim_val = (int)left.prim_val * (long)right.prim_val; break;
|
case TypeCode.Int64: res.prim_val = (int)left.prim_val * (long)right.prim_val; break;
|
||||||
//case TypeCode.String : res.prim_val = ((int)left.prim_val).ToString() + (string)right.prim_val; break;
|
//case TypeCode.String : res.prim_val = ((int)left.prim_val).ToString() + (string)right.prim_val; break;
|
||||||
case TypeCode.Int16 : res.prim_val = (int)left.prim_val * (System.Int16)right.prim_val; break;
|
case TypeCode.Int16: res.prim_val = (int)left.prim_val * (System.Int16)right.prim_val; break;
|
||||||
case TypeCode.SByte : res.prim_val = (int)left.prim_val * (sbyte)right.prim_val; break;
|
case TypeCode.SByte: res.prim_val = (int)left.prim_val * (sbyte)right.prim_val; break;
|
||||||
case TypeCode.UInt16 : res.prim_val = (int)left.prim_val * (System.UInt16)right.prim_val; break;
|
case TypeCode.UInt16: res.prim_val = (int)left.prim_val * (System.UInt16)right.prim_val; break;
|
||||||
case TypeCode.UInt32 : res.prim_val = (int)left.prim_val * (System.UInt32)right.prim_val; break;
|
case TypeCode.UInt32: res.prim_val = (int)left.prim_val * (System.UInt32)right.prim_val; break;
|
||||||
case TypeCode.UInt64 : res.prim_val = (System.UInt64)((int)left.prim_val) * (System.UInt64)right.prim_val; break;
|
case TypeCode.UInt64: res.prim_val = (System.UInt64)((int)left.prim_val) * (System.UInt64)right.prim_val; break;
|
||||||
case TypeCode.Single : res.prim_val = (int)left.prim_val * (System.Single)right.prim_val; break;
|
case TypeCode.Single: res.prim_val = (int)left.prim_val * (System.Single)right.prim_val; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case TypeCode.Double:
|
case TypeCode.Double:
|
||||||
{
|
{
|
||||||
switch(rcode)
|
switch (rcode)
|
||||||
{
|
{
|
||||||
case TypeCode.Byte : res.prim_val = (double)left.prim_val * (byte)right.prim_val; break;
|
case TypeCode.Byte: res.prim_val = (double)left.prim_val * (byte)right.prim_val; break;
|
||||||
case TypeCode.Int32 : res.prim_val = (double)left.prim_val * (int)right.prim_val; break;
|
case TypeCode.Int32: res.prim_val = (double)left.prim_val * (int)right.prim_val; break;
|
||||||
case TypeCode.Double : res.prim_val = (double)left.prim_val * (double)right.prim_val; break;
|
case TypeCode.Double: res.prim_val = (double)left.prim_val * (double)right.prim_val; break;
|
||||||
case TypeCode.Int64 : res.prim_val = (double)left.prim_val * (long)right.prim_val; break;
|
case TypeCode.Int64: res.prim_val = (double)left.prim_val * (long)right.prim_val; break;
|
||||||
//case TypeCode.String : res.prim_val = ((double)left.prim_val).ToString() + (string)right.prim_val; break;
|
//case TypeCode.String : res.prim_val = ((double)left.prim_val).ToString() + (string)right.prim_val; break;
|
||||||
case TypeCode.Int16 : res.prim_val = (double)left.prim_val * (System.Int16)right.prim_val; break;
|
case TypeCode.Int16: res.prim_val = (double)left.prim_val * (System.Int16)right.prim_val; break;
|
||||||
case TypeCode.SByte : res.prim_val = (double)left.prim_val * (sbyte)right.prim_val; break;
|
case TypeCode.SByte: res.prim_val = (double)left.prim_val * (sbyte)right.prim_val; break;
|
||||||
case TypeCode.UInt16 : res.prim_val = (double)left.prim_val * (System.UInt16)right.prim_val; break;
|
case TypeCode.UInt16: res.prim_val = (double)left.prim_val * (System.UInt16)right.prim_val; break;
|
||||||
case TypeCode.UInt32 : res.prim_val = (double)left.prim_val * (System.UInt32)right.prim_val; break;
|
case TypeCode.UInt32: res.prim_val = (double)left.prim_val * (System.UInt32)right.prim_val; break;
|
||||||
case TypeCode.UInt64 : res.prim_val = (double)left.prim_val * (System.UInt64)right.prim_val; break;
|
case TypeCode.UInt64: res.prim_val = (double)left.prim_val * (System.UInt64)right.prim_val; break;
|
||||||
case TypeCode.Single : res.prim_val = (double)left.prim_val * (System.Single)right.prim_val; break;
|
case TypeCode.Single: res.prim_val = (double)left.prim_val * (System.Single)right.prim_val; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case TypeCode.Byte:
|
case TypeCode.Byte:
|
||||||
{
|
{
|
||||||
switch(rcode)
|
switch (rcode)
|
||||||
{
|
{
|
||||||
case TypeCode.Byte : res.prim_val = (byte)left.prim_val * (byte)right.prim_val; break;
|
case TypeCode.Byte: res.prim_val = (byte)left.prim_val * (byte)right.prim_val; break;
|
||||||
case TypeCode.Int32 : res.prim_val = (byte)left.prim_val * (int)right.prim_val; break;
|
case TypeCode.Int32: res.prim_val = (byte)left.prim_val * (int)right.prim_val; break;
|
||||||
case TypeCode.Double : res.prim_val = (byte)left.prim_val * (double)right.prim_val; break;
|
case TypeCode.Double: res.prim_val = (byte)left.prim_val * (double)right.prim_val; break;
|
||||||
case TypeCode.Int64 : res.prim_val = (byte)left.prim_val * (long)right.prim_val; break;
|
case TypeCode.Int64: res.prim_val = (byte)left.prim_val * (long)right.prim_val; break;
|
||||||
//case TypeCode.String : res.prim_val = ((byte)left.prim_val).ToString() + (string)right.prim_val; break;
|
//case TypeCode.String : res.prim_val = ((byte)left.prim_val).ToString() + (string)right.prim_val; break;
|
||||||
case TypeCode.Int16 : res.prim_val = (byte)left.prim_val * (System.Int16)right.prim_val; break;
|
case TypeCode.Int16: res.prim_val = (byte)left.prim_val * (System.Int16)right.prim_val; break;
|
||||||
case TypeCode.SByte : res.prim_val = (byte)left.prim_val * (sbyte)right.prim_val; break;
|
case TypeCode.SByte: res.prim_val = (byte)left.prim_val * (sbyte)right.prim_val; break;
|
||||||
case TypeCode.UInt16 : res.prim_val = (byte)left.prim_val * (System.UInt16)right.prim_val; break;
|
case TypeCode.UInt16: res.prim_val = (byte)left.prim_val * (System.UInt16)right.prim_val; break;
|
||||||
case TypeCode.UInt32 : res.prim_val = (byte)left.prim_val * (System.UInt32)right.prim_val; break;
|
case TypeCode.UInt32: res.prim_val = (byte)left.prim_val * (System.UInt32)right.prim_val; break;
|
||||||
case TypeCode.UInt64 : res.prim_val = (byte)left.prim_val * (System.UInt64)right.prim_val; break;
|
case TypeCode.UInt64: res.prim_val = (byte)left.prim_val * (System.UInt64)right.prim_val; break;
|
||||||
case TypeCode.Single : res.prim_val = (byte)left.prim_val * (System.Single)right.prim_val; break;
|
case TypeCode.Single: res.prim_val = (byte)left.prim_val * (System.Single)right.prim_val; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case TypeCode.Int16:
|
case TypeCode.Int16:
|
||||||
{
|
{
|
||||||
switch(rcode)
|
switch (rcode)
|
||||||
{
|
{
|
||||||
case TypeCode.Byte : res.prim_val = (System.Int16)left.prim_val * (byte)right.prim_val; break;
|
case TypeCode.Byte: res.prim_val = (System.Int16)left.prim_val * (byte)right.prim_val; break;
|
||||||
case TypeCode.Int32 : res.prim_val = (System.Int16)left.prim_val * (int)right.prim_val; break;
|
case TypeCode.Int32: res.prim_val = (System.Int16)left.prim_val * (int)right.prim_val; break;
|
||||||
case TypeCode.Double : res.prim_val = (System.Int16)left.prim_val * (double)right.prim_val; break;
|
case TypeCode.Double: res.prim_val = (System.Int16)left.prim_val * (double)right.prim_val; break;
|
||||||
case TypeCode.Int64 : res.prim_val = (System.Int16)left.prim_val * (long)right.prim_val; break;
|
case TypeCode.Int64: res.prim_val = (System.Int16)left.prim_val * (long)right.prim_val; break;
|
||||||
//case TypeCode.String : res.prim_val = ((System.Int16)left.prim_val).ToString() + (string)right.prim_val; break;
|
//case TypeCode.String : res.prim_val = ((System.Int16)left.prim_val).ToString() + (string)right.prim_val; break;
|
||||||
case TypeCode.Int16 : res.prim_val = (System.Int16)left.prim_val * (System.Int16)right.prim_val; break;
|
case TypeCode.Int16: res.prim_val = (System.Int16)left.prim_val * (System.Int16)right.prim_val; break;
|
||||||
case TypeCode.SByte : res.prim_val = (System.Int16)left.prim_val * (sbyte)right.prim_val; break;
|
case TypeCode.SByte: res.prim_val = (System.Int16)left.prim_val * (sbyte)right.prim_val; break;
|
||||||
case TypeCode.UInt16 : res.prim_val = (System.Int16)left.prim_val * (System.UInt16)right.prim_val; break;
|
case TypeCode.UInt16: res.prim_val = (System.Int16)left.prim_val * (System.UInt16)right.prim_val; break;
|
||||||
case TypeCode.UInt32 : res.prim_val = (System.Int16)left.prim_val * (System.UInt32)right.prim_val; break;
|
case TypeCode.UInt32: res.prim_val = (System.Int16)left.prim_val * (System.UInt32)right.prim_val; break;
|
||||||
case TypeCode.UInt64 : res.prim_val = (System.UInt64)((System.Int16)left.prim_val) * (System.UInt64)right.prim_val; break;
|
case TypeCode.UInt64: res.prim_val = (System.UInt64)((System.Int16)left.prim_val) * (System.UInt64)right.prim_val; break;
|
||||||
case TypeCode.Single : res.prim_val = (System.Int16)left.prim_val * (System.Single)right.prim_val; break;
|
case TypeCode.Single: res.prim_val = (System.Int16)left.prim_val * (System.Single)right.prim_val; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case TypeCode.Int64:
|
case TypeCode.Int64:
|
||||||
{
|
{
|
||||||
switch(rcode)
|
switch (rcode)
|
||||||
{
|
{
|
||||||
case TypeCode.Byte : res.prim_val = (System.Int64)left.prim_val * (byte)right.prim_val; break;
|
case TypeCode.Byte: res.prim_val = (System.Int64)left.prim_val * (byte)right.prim_val; break;
|
||||||
case TypeCode.Int32 : res.prim_val = (System.Int64)left.prim_val * (int)right.prim_val; break;
|
case TypeCode.Int32: res.prim_val = (System.Int64)left.prim_val * (int)right.prim_val; break;
|
||||||
case TypeCode.Double : res.prim_val = (System.Int64)left.prim_val * (double)right.prim_val; break;
|
case TypeCode.Double: res.prim_val = (System.Int64)left.prim_val * (double)right.prim_val; break;
|
||||||
case TypeCode.Int64 : res.prim_val = (System.Int64)left.prim_val * (long)right.prim_val; break;
|
case TypeCode.Int64: res.prim_val = (System.Int64)left.prim_val * (long)right.prim_val; break;
|
||||||
//case TypeCode.String : res.prim_val = ((System.Int64)left.prim_val).ToString() + (string)right.prim_val; break;
|
//case TypeCode.String : res.prim_val = ((System.Int64)left.prim_val).ToString() + (string)right.prim_val; break;
|
||||||
case TypeCode.Int16 : res.prim_val = (System.Int64)left.prim_val * (System.Int16)right.prim_val; break;
|
case TypeCode.Int16: res.prim_val = (System.Int64)left.prim_val * (System.Int16)right.prim_val; break;
|
||||||
case TypeCode.SByte : res.prim_val = (System.Int64)left.prim_val * (sbyte)right.prim_val; break;
|
case TypeCode.SByte: res.prim_val = (System.Int64)left.prim_val * (sbyte)right.prim_val; break;
|
||||||
case TypeCode.UInt16 : res.prim_val = (System.Int64)left.prim_val * (System.UInt16)right.prim_val; break;
|
case TypeCode.UInt16: res.prim_val = (System.Int64)left.prim_val * (System.UInt16)right.prim_val; break;
|
||||||
case TypeCode.UInt32 : res.prim_val = (System.Int64)left.prim_val * (System.UInt32)right.prim_val; break;
|
case TypeCode.UInt32: res.prim_val = (System.Int64)left.prim_val * (System.UInt32)right.prim_val; break;
|
||||||
case TypeCode.UInt64 : res.prim_val = (System.Int64)left.prim_val * (System.Int64)((System.UInt64)right.prim_val); break;
|
case TypeCode.UInt64: res.prim_val = (System.Int64)left.prim_val * (System.Int64)((System.UInt64)right.prim_val); break;
|
||||||
case TypeCode.Single : res.prim_val = (System.Int64)left.prim_val * (System.Single)right.prim_val; break;
|
case TypeCode.Single: res.prim_val = (System.Int64)left.prim_val * (System.Single)right.prim_val; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TypeCode.SByte:
|
case TypeCode.SByte:
|
||||||
{
|
{
|
||||||
switch(rcode)
|
switch (rcode)
|
||||||
{
|
{
|
||||||
case TypeCode.Byte : res.prim_val = (System.SByte)left.prim_val * (byte)right.prim_val; break;
|
case TypeCode.Byte: res.prim_val = (System.SByte)left.prim_val * (byte)right.prim_val; break;
|
||||||
case TypeCode.Int32 : res.prim_val = (System.SByte)left.prim_val * (int)right.prim_val; break;
|
case TypeCode.Int32: res.prim_val = (System.SByte)left.prim_val * (int)right.prim_val; break;
|
||||||
case TypeCode.Double : res.prim_val = (System.SByte)left.prim_val * (double)right.prim_val; break;
|
case TypeCode.Double: res.prim_val = (System.SByte)left.prim_val * (double)right.prim_val; break;
|
||||||
case TypeCode.Int64 : res.prim_val = (System.SByte)left.prim_val * (long)right.prim_val; break;
|
case TypeCode.Int64: res.prim_val = (System.SByte)left.prim_val * (long)right.prim_val; break;
|
||||||
//case TypeCode.String : res.prim_val = ((System.SByte)left.prim_val).ToString() + (string)right.prim_val; break;
|
//case TypeCode.String : res.prim_val = ((System.SByte)left.prim_val).ToString() + (string)right.prim_val; break;
|
||||||
case TypeCode.Int16 : res.prim_val = (System.SByte)left.prim_val * (System.Int16)right.prim_val; break;
|
case TypeCode.Int16: res.prim_val = (System.SByte)left.prim_val * (System.Int16)right.prim_val; break;
|
||||||
case TypeCode.SByte : res.prim_val = (System.SByte)left.prim_val * (sbyte)right.prim_val; break;
|
case TypeCode.SByte: res.prim_val = (System.SByte)left.prim_val * (sbyte)right.prim_val; break;
|
||||||
case TypeCode.UInt16 : res.prim_val = (System.SByte)left.prim_val * (System.UInt16)right.prim_val; break;
|
case TypeCode.UInt16: res.prim_val = (System.SByte)left.prim_val * (System.UInt16)right.prim_val; break;
|
||||||
case TypeCode.UInt32 : res.prim_val = (System.SByte)left.prim_val * (System.UInt32)right.prim_val; break;
|
case TypeCode.UInt32: res.prim_val = (System.SByte)left.prim_val * (System.UInt32)right.prim_val; break;
|
||||||
case TypeCode.UInt64 : res.prim_val = (System.UInt64)((System.SByte)left.prim_val) * (System.UInt64)right.prim_val; break;
|
case TypeCode.UInt64: res.prim_val = (System.UInt64)((System.SByte)left.prim_val) * (System.UInt64)right.prim_val; break;
|
||||||
case TypeCode.Single : res.prim_val = (System.SByte)left.prim_val * (System.Single)right.prim_val; break;
|
case TypeCode.Single: res.prim_val = (System.SByte)left.prim_val * (System.Single)right.prim_val; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case TypeCode.UInt16:
|
case TypeCode.UInt16:
|
||||||
{
|
{
|
||||||
switch(rcode)
|
switch (rcode)
|
||||||
{
|
{
|
||||||
case TypeCode.Byte : res.prim_val = (System.UInt16)left.prim_val * (byte)right.prim_val; break;
|
case TypeCode.Byte: res.prim_val = (System.UInt16)left.prim_val * (byte)right.prim_val; break;
|
||||||
case TypeCode.Int32 : res.prim_val = (System.UInt16)left.prim_val * (int)right.prim_val; break;
|
case TypeCode.Int32: res.prim_val = (System.UInt16)left.prim_val * (int)right.prim_val; break;
|
||||||
case TypeCode.Double : res.prim_val = (System.UInt16)left.prim_val * (double)right.prim_val; break;
|
case TypeCode.Double: res.prim_val = (System.UInt16)left.prim_val * (double)right.prim_val; break;
|
||||||
case TypeCode.Int64 : res.prim_val = (System.UInt16)left.prim_val * (long)right.prim_val; break;
|
case TypeCode.Int64: res.prim_val = (System.UInt16)left.prim_val * (long)right.prim_val; break;
|
||||||
//case TypeCode.String : res.prim_val = ((System.UInt16)left.prim_val).ToString() + (string)right.prim_val; break;
|
//case TypeCode.String : res.prim_val = ((System.UInt16)left.prim_val).ToString() + (string)right.prim_val; break;
|
||||||
case TypeCode.Int16 : res.prim_val = (System.UInt16)left.prim_val * (System.Int16)right.prim_val; break;
|
case TypeCode.Int16: res.prim_val = (System.UInt16)left.prim_val * (System.Int16)right.prim_val; break;
|
||||||
case TypeCode.SByte : res.prim_val = (System.UInt16)left.prim_val * (sbyte)right.prim_val; break;
|
case TypeCode.SByte: res.prim_val = (System.UInt16)left.prim_val * (sbyte)right.prim_val; break;
|
||||||
case TypeCode.UInt16 : res.prim_val = (System.UInt16)left.prim_val * (System.UInt16)right.prim_val; break;
|
case TypeCode.UInt16: res.prim_val = (System.UInt16)left.prim_val * (System.UInt16)right.prim_val; break;
|
||||||
case TypeCode.UInt32 : res.prim_val = (System.UInt16)left.prim_val * (System.UInt32)right.prim_val; break;
|
case TypeCode.UInt32: res.prim_val = (System.UInt16)left.prim_val * (System.UInt32)right.prim_val; break;
|
||||||
case TypeCode.UInt64 : res.prim_val = (System.UInt16)left.prim_val * (System.UInt64)right.prim_val; break;
|
case TypeCode.UInt64: res.prim_val = (System.UInt16)left.prim_val * (System.UInt64)right.prim_val; break;
|
||||||
case TypeCode.Single : res.prim_val = (System.UInt16)left.prim_val * (System.Single)right.prim_val; break;
|
case TypeCode.Single: res.prim_val = (System.UInt16)left.prim_val * (System.Single)right.prim_val; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case TypeCode.UInt32:
|
case TypeCode.UInt32:
|
||||||
{
|
{
|
||||||
switch(rcode)
|
switch (rcode)
|
||||||
{
|
{
|
||||||
case TypeCode.Byte : res.prim_val = (System.UInt32)left.prim_val * (byte)right.prim_val; break;
|
case TypeCode.Byte: res.prim_val = (System.UInt32)left.prim_val * (byte)right.prim_val; break;
|
||||||
case TypeCode.Int32 : res.prim_val = (System.UInt32)left.prim_val * (int)right.prim_val; break;
|
case TypeCode.Int32: res.prim_val = (System.UInt32)left.prim_val * (int)right.prim_val; break;
|
||||||
case TypeCode.Double : res.prim_val = (System.UInt32)left.prim_val * (double)right.prim_val; break;
|
case TypeCode.Double: res.prim_val = (System.UInt32)left.prim_val * (double)right.prim_val; break;
|
||||||
case TypeCode.Int64 : res.prim_val = (System.UInt32)left.prim_val * (long)right.prim_val; break;
|
case TypeCode.Int64: res.prim_val = (System.UInt32)left.prim_val * (long)right.prim_val; break;
|
||||||
//case TypeCode.String : res.prim_val = ((System.UInt32)left.prim_val).ToString() + (string)right.prim_val; break;
|
//case TypeCode.String : res.prim_val = ((System.UInt32)left.prim_val).ToString() + (string)right.prim_val; break;
|
||||||
case TypeCode.Int16 : res.prim_val = (System.UInt32)left.prim_val * (System.Int16)right.prim_val; break;
|
case TypeCode.Int16: res.prim_val = (System.UInt32)left.prim_val * (System.Int16)right.prim_val; break;
|
||||||
case TypeCode.SByte : res.prim_val = (System.UInt32)left.prim_val * (sbyte)right.prim_val; break;
|
case TypeCode.SByte: res.prim_val = (System.UInt32)left.prim_val * (sbyte)right.prim_val; break;
|
||||||
case TypeCode.UInt16 : res.prim_val = (System.UInt32)left.prim_val * (System.UInt16)right.prim_val; break;
|
case TypeCode.UInt16: res.prim_val = (System.UInt32)left.prim_val * (System.UInt16)right.prim_val; break;
|
||||||
case TypeCode.UInt32 : res.prim_val = (System.UInt32)left.prim_val * (System.UInt32)right.prim_val; break;
|
case TypeCode.UInt32: res.prim_val = (System.UInt32)left.prim_val * (System.UInt32)right.prim_val; break;
|
||||||
case TypeCode.UInt64 : res.prim_val = (System.UInt32)left.prim_val * (System.UInt64)right.prim_val; break;
|
case TypeCode.UInt64: res.prim_val = (System.UInt32)left.prim_val * (System.UInt64)right.prim_val; break;
|
||||||
case TypeCode.Single : res.prim_val = (System.UInt32)left.prim_val * (System.Single)right.prim_val; break;
|
case TypeCode.Single: res.prim_val = (System.UInt32)left.prim_val * (System.Single)right.prim_val; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case TypeCode.UInt64:
|
case TypeCode.UInt64:
|
||||||
{
|
{
|
||||||
switch(rcode)
|
switch (rcode)
|
||||||
{
|
{
|
||||||
case TypeCode.Byte : res.prim_val = (System.UInt64)left.prim_val * (byte)right.prim_val; break;
|
case TypeCode.Byte: res.prim_val = (System.UInt64)left.prim_val * (byte)right.prim_val; break;
|
||||||
case TypeCode.Int32 : res.prim_val = (System.UInt64)left.prim_val * (System.UInt64)((int)right.prim_val); break;
|
case TypeCode.Int32: res.prim_val = (System.UInt64)left.prim_val * (System.UInt64)((int)right.prim_val); break;
|
||||||
case TypeCode.Double : res.prim_val = (System.UInt64)left.prim_val * (double)right.prim_val; break;
|
case TypeCode.Double: res.prim_val = (System.UInt64)left.prim_val * (double)right.prim_val; break;
|
||||||
case TypeCode.Int64 : res.prim_val = (long)((System.UInt64)left.prim_val) * (long)right.prim_val; break;
|
case TypeCode.Int64: res.prim_val = (long)((System.UInt64)left.prim_val) * (long)right.prim_val; break;
|
||||||
//case TypeCode.String : res.prim_val = ((System.UInt64)left.prim_val).ToString() + (string)right.prim_val; break;
|
//case TypeCode.String : res.prim_val = ((System.UInt64)left.prim_val).ToString() + (string)right.prim_val; break;
|
||||||
case TypeCode.Int16 : res.prim_val = (System.UInt64)left.prim_val * (System.UInt64)((System.Int16)right.prim_val); break;
|
case TypeCode.Int16: res.prim_val = (System.UInt64)left.prim_val * (System.UInt64)((System.Int16)right.prim_val); break;
|
||||||
case TypeCode.SByte : res.prim_val = (System.UInt64)left.prim_val * (System.UInt64)((sbyte)right.prim_val); break;
|
case TypeCode.SByte: res.prim_val = (System.UInt64)left.prim_val * (System.UInt64)((sbyte)right.prim_val); break;
|
||||||
case TypeCode.UInt16 : res.prim_val = (System.UInt64)left.prim_val * (System.UInt16)right.prim_val; break;
|
case TypeCode.UInt16: res.prim_val = (System.UInt64)left.prim_val * (System.UInt16)right.prim_val; break;
|
||||||
case TypeCode.UInt32 : res.prim_val = (System.UInt64)left.prim_val * (System.UInt32)right.prim_val; break;
|
case TypeCode.UInt32: res.prim_val = (System.UInt64)left.prim_val * (System.UInt32)right.prim_val; break;
|
||||||
case TypeCode.UInt64 : res.prim_val = (System.UInt64)left.prim_val * (System.UInt64)right.prim_val; break;
|
case TypeCode.UInt64: res.prim_val = (System.UInt64)left.prim_val * (System.UInt64)right.prim_val; break;
|
||||||
case TypeCode.Single : res.prim_val = (System.UInt64)left.prim_val * (System.Single)right.prim_val; break;
|
case TypeCode.Single: res.prim_val = (System.UInt64)left.prim_val * (System.Single)right.prim_val; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case TypeCode.Single:
|
case TypeCode.Single:
|
||||||
{
|
{
|
||||||
switch(rcode)
|
switch (rcode)
|
||||||
{
|
{
|
||||||
case TypeCode.Byte : res.prim_val = (System.Single)left.prim_val * (byte)right.prim_val; break;
|
case TypeCode.Byte: res.prim_val = (System.Single)left.prim_val * (byte)right.prim_val; break;
|
||||||
case TypeCode.Int32 : res.prim_val = (System.Single)left.prim_val * (int)right.prim_val; break;
|
case TypeCode.Int32: res.prim_val = (System.Single)left.prim_val * (int)right.prim_val; break;
|
||||||
case TypeCode.Double : res.prim_val = (System.Single)left.prim_val * (double)right.prim_val; break;
|
case TypeCode.Double: res.prim_val = (System.Single)left.prim_val * (double)right.prim_val; break;
|
||||||
case TypeCode.Int64 : res.prim_val = (System.Single)left.prim_val * (long)right.prim_val; break;
|
case TypeCode.Int64: res.prim_val = (System.Single)left.prim_val * (long)right.prim_val; break;
|
||||||
//case TypeCode.String : res.prim_val = ((System.Single)left.prim_val).ToString() + (string)right.prim_val; break;
|
//case TypeCode.String : res.prim_val = ((System.Single)left.prim_val).ToString() + (string)right.prim_val; break;
|
||||||
case TypeCode.Int16 : res.prim_val = (System.Single)left.prim_val * (System.Int16)right.prim_val; break;
|
case TypeCode.Int16: res.prim_val = (System.Single)left.prim_val * (System.Int16)right.prim_val; break;
|
||||||
case TypeCode.SByte : res.prim_val = (System.Single)left.prim_val * (sbyte)right.prim_val; break;
|
case TypeCode.SByte: res.prim_val = (System.Single)left.prim_val * (sbyte)right.prim_val; break;
|
||||||
case TypeCode.UInt16 : res.prim_val = (System.Single)left.prim_val * (System.UInt16)right.prim_val; break;
|
case TypeCode.UInt16: res.prim_val = (System.Single)left.prim_val * (System.UInt16)right.prim_val; break;
|
||||||
case TypeCode.UInt32 : res.prim_val = (System.Single)left.prim_val * (System.UInt32)right.prim_val; break;
|
case TypeCode.UInt32: res.prim_val = (System.Single)left.prim_val * (System.UInt32)right.prim_val; break;
|
||||||
case TypeCode.UInt64 : res.prim_val = (System.Single)left.prim_val * (System.UInt64)right.prim_val; break;
|
case TypeCode.UInt64: res.prim_val = (System.Single)left.prim_val * (System.UInt64)right.prim_val; break;
|
||||||
case TypeCode.Single : res.prim_val = (System.Single)left.prim_val * (System.Single)right.prim_val; break;
|
case TypeCode.Single: res.prim_val = (System.Single)left.prim_val * (System.Single)right.prim_val; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
eval_stack.Push(res);
|
eval_stack.Push(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void EvalDiv()
|
public void EvalDiv()
|
||||||
{
|
{
|
||||||
|
|
@ -652,192 +652,7 @@ namespace CodeCompletion
|
||||||
RetValue res = new RetValue();
|
RetValue res = new RetValue();
|
||||||
if (left.prim_val != null && right.prim_val != null)
|
if (left.prim_val != null && right.prim_val != null)
|
||||||
{
|
{
|
||||||
TypeCode lcode = Type.GetTypeCode(left.prim_val.GetType());
|
res.prim_val = Convert.ToDouble(left.prim_val) / Convert.ToDouble(right.prim_val);
|
||||||
TypeCode rcode = Type.GetTypeCode(right.prim_val.GetType());
|
|
||||||
switch (lcode)
|
|
||||||
{
|
|
||||||
case TypeCode.Int32:
|
|
||||||
{
|
|
||||||
switch(rcode)
|
|
||||||
{
|
|
||||||
case TypeCode.Byte : res.prim_val = (int)left.prim_val / (byte)right.prim_val; break;
|
|
||||||
case TypeCode.Int32 : res.prim_val = (int)left.prim_val / (int)right.prim_val; break;
|
|
||||||
case TypeCode.Double : res.prim_val = (int)left.prim_val / (double)right.prim_val; break;
|
|
||||||
case TypeCode.Int64 : res.prim_val = (int)left.prim_val / (long)right.prim_val; break;
|
|
||||||
//case TypeCode.String : res.prim_val = ((int)left.prim_val).ToString() + (string)right.prim_val; break;
|
|
||||||
case TypeCode.Int16 : res.prim_val = (int)left.prim_val / (System.Int16)right.prim_val; break;
|
|
||||||
case TypeCode.SByte : res.prim_val = (int)left.prim_val / (sbyte)right.prim_val; break;
|
|
||||||
case TypeCode.UInt16 : res.prim_val = (int)left.prim_val / (System.UInt16)right.prim_val; break;
|
|
||||||
case TypeCode.UInt32 : res.prim_val = (int)left.prim_val / (System.UInt32)right.prim_val; break;
|
|
||||||
case TypeCode.UInt64 : res.prim_val = (System.UInt64)((int)left.prim_val) / (System.UInt64)right.prim_val; break;
|
|
||||||
case TypeCode.Single : res.prim_val = (int)left.prim_val / (System.Single)right.prim_val; break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case TypeCode.Double:
|
|
||||||
{
|
|
||||||
switch(rcode)
|
|
||||||
{
|
|
||||||
case TypeCode.Byte : res.prim_val = (double)left.prim_val / (byte)right.prim_val; break;
|
|
||||||
case TypeCode.Int32 : res.prim_val = (double)left.prim_val / (int)right.prim_val; break;
|
|
||||||
case TypeCode.Double : res.prim_val = (double)left.prim_val / (double)right.prim_val; break;
|
|
||||||
case TypeCode.Int64 : res.prim_val = (double)left.prim_val / (long)right.prim_val; break;
|
|
||||||
//case TypeCode.String : res.prim_val = ((double)left.prim_val).ToString() + (string)right.prim_val; break;
|
|
||||||
case TypeCode.Int16 : res.prim_val = (double)left.prim_val / (System.Int16)right.prim_val; break;
|
|
||||||
case TypeCode.SByte : res.prim_val = (double)left.prim_val / (sbyte)right.prim_val; break;
|
|
||||||
case TypeCode.UInt16 : res.prim_val = (double)left.prim_val / (System.UInt16)right.prim_val; break;
|
|
||||||
case TypeCode.UInt32 : res.prim_val = (double)left.prim_val / (System.UInt32)right.prim_val; break;
|
|
||||||
case TypeCode.UInt64 : res.prim_val = (double)left.prim_val / (System.UInt64)right.prim_val; break;
|
|
||||||
case TypeCode.Single : res.prim_val = (double)left.prim_val / (System.Single)right.prim_val; break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case TypeCode.Byte:
|
|
||||||
{
|
|
||||||
switch(rcode)
|
|
||||||
{
|
|
||||||
case TypeCode.Byte : res.prim_val = (byte)left.prim_val / (byte)right.prim_val; break;
|
|
||||||
case TypeCode.Int32 : res.prim_val = (byte)left.prim_val / (int)right.prim_val; break;
|
|
||||||
case TypeCode.Double : res.prim_val = (byte)left.prim_val / (double)right.prim_val; break;
|
|
||||||
case TypeCode.Int64 : res.prim_val = (byte)left.prim_val / (long)right.prim_val; break;
|
|
||||||
//case TypeCode.String : res.prim_val = ((byte)left.prim_val).ToString() + (string)right.prim_val; break;
|
|
||||||
case TypeCode.Int16 : res.prim_val = (byte)left.prim_val / (System.Int16)right.prim_val; break;
|
|
||||||
case TypeCode.SByte : res.prim_val = (byte)left.prim_val / (sbyte)right.prim_val; break;
|
|
||||||
case TypeCode.UInt16 : res.prim_val = (byte)left.prim_val / (System.UInt16)right.prim_val; break;
|
|
||||||
case TypeCode.UInt32 : res.prim_val = (byte)left.prim_val / (System.UInt32)right.prim_val; break;
|
|
||||||
case TypeCode.UInt64 : res.prim_val = (byte)left.prim_val / (System.UInt64)right.prim_val; break;
|
|
||||||
case TypeCode.Single : res.prim_val = (byte)left.prim_val / (System.Single)right.prim_val; break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case TypeCode.Int16:
|
|
||||||
{
|
|
||||||
switch(rcode)
|
|
||||||
{
|
|
||||||
case TypeCode.Byte : res.prim_val = (System.Int16)left.prim_val / (byte)right.prim_val; break;
|
|
||||||
case TypeCode.Int32 : res.prim_val = (System.Int16)left.prim_val / (int)right.prim_val; break;
|
|
||||||
case TypeCode.Double : res.prim_val = (System.Int16)left.prim_val / (double)right.prim_val; break;
|
|
||||||
case TypeCode.Int64 : res.prim_val = (System.Int16)left.prim_val / (long)right.prim_val; break;
|
|
||||||
//case TypeCode.String : res.prim_val = ((System.Int16)left.prim_val).ToString() + (string)right.prim_val; break;
|
|
||||||
case TypeCode.Int16 : res.prim_val = (System.Int16)left.prim_val / (System.Int16)right.prim_val; break;
|
|
||||||
case TypeCode.SByte : res.prim_val = (System.Int16)left.prim_val / (sbyte)right.prim_val; break;
|
|
||||||
case TypeCode.UInt16 : res.prim_val = (System.Int16)left.prim_val / (System.UInt16)right.prim_val; break;
|
|
||||||
case TypeCode.UInt32 : res.prim_val = (System.Int16)left.prim_val / (System.UInt32)right.prim_val; break;
|
|
||||||
case TypeCode.UInt64 : res.prim_val = (System.UInt64)((System.Int16)left.prim_val) / (System.UInt64)right.prim_val; break;
|
|
||||||
case TypeCode.Single : res.prim_val = (System.Int16)left.prim_val / (System.Single)right.prim_val; break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case TypeCode.Int64:
|
|
||||||
{
|
|
||||||
switch(rcode)
|
|
||||||
{
|
|
||||||
case TypeCode.Byte : res.prim_val = (System.Int64)left.prim_val / (byte)right.prim_val; break;
|
|
||||||
case TypeCode.Int32 : res.prim_val = (System.Int64)left.prim_val / (int)right.prim_val; break;
|
|
||||||
case TypeCode.Double : res.prim_val = (System.Int64)left.prim_val / (double)right.prim_val; break;
|
|
||||||
case TypeCode.Int64 : res.prim_val = (System.Int64)left.prim_val / (long)right.prim_val; break;
|
|
||||||
//case TypeCode.String : res.prim_val = ((System.Int64)left.prim_val).ToString() + (string)right.prim_val; break;
|
|
||||||
case TypeCode.Int16 : res.prim_val = (System.Int64)left.prim_val / (System.Int16)right.prim_val; break;
|
|
||||||
case TypeCode.SByte : res.prim_val = (System.Int64)left.prim_val / (sbyte)right.prim_val; break;
|
|
||||||
case TypeCode.UInt16 : res.prim_val = (System.Int64)left.prim_val / (System.UInt16)right.prim_val; break;
|
|
||||||
case TypeCode.UInt32 : res.prim_val = (System.Int64)left.prim_val / (System.UInt32)right.prim_val; break;
|
|
||||||
case TypeCode.UInt64 : res.prim_val = (System.Int64)left.prim_val / (System.Int64)((System.UInt64)right.prim_val); break;
|
|
||||||
case TypeCode.Single : res.prim_val = (System.Int64)left.prim_val / (System.Single)right.prim_val; break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case TypeCode.SByte:
|
|
||||||
{
|
|
||||||
switch(rcode)
|
|
||||||
{
|
|
||||||
case TypeCode.Byte : res.prim_val = (System.SByte)left.prim_val / (byte)right.prim_val; break;
|
|
||||||
case TypeCode.Int32 : res.prim_val = (System.SByte)left.prim_val / (int)right.prim_val; break;
|
|
||||||
case TypeCode.Double : res.prim_val = (System.SByte)left.prim_val / (double)right.prim_val; break;
|
|
||||||
case TypeCode.Int64 : res.prim_val = (System.SByte)left.prim_val / (long)right.prim_val; break;
|
|
||||||
//case TypeCode.String : res.prim_val = ((System.SByte)left.prim_val).ToString() + (string)right.prim_val; break;
|
|
||||||
case TypeCode.Int16 : res.prim_val = (System.SByte)left.prim_val / (System.Int16)right.prim_val; break;
|
|
||||||
case TypeCode.SByte : res.prim_val = (System.SByte)left.prim_val / (sbyte)right.prim_val; break;
|
|
||||||
case TypeCode.UInt16 : res.prim_val = (System.SByte)left.prim_val / (System.UInt16)right.prim_val; break;
|
|
||||||
case TypeCode.UInt32 : res.prim_val = (System.SByte)left.prim_val / (System.UInt32)right.prim_val; break;
|
|
||||||
case TypeCode.UInt64 : res.prim_val = (System.UInt64)((System.SByte)left.prim_val) / (System.UInt64)right.prim_val; break;
|
|
||||||
case TypeCode.Single : res.prim_val = (System.SByte)left.prim_val / (System.Single)right.prim_val; break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case TypeCode.UInt16:
|
|
||||||
{
|
|
||||||
switch(rcode)
|
|
||||||
{
|
|
||||||
case TypeCode.Byte : res.prim_val = (System.UInt16)left.prim_val / (byte)right.prim_val; break;
|
|
||||||
case TypeCode.Int32 : res.prim_val = (System.UInt16)left.prim_val / (int)right.prim_val; break;
|
|
||||||
case TypeCode.Double : res.prim_val = (System.UInt16)left.prim_val / (double)right.prim_val; break;
|
|
||||||
case TypeCode.Int64 : res.prim_val = (System.UInt16)left.prim_val / (long)right.prim_val; break;
|
|
||||||
//case TypeCode.String : res.prim_val = ((System.UInt16)left.prim_val).ToString() + (string)right.prim_val; break;
|
|
||||||
case TypeCode.Int16 : res.prim_val = (System.UInt16)left.prim_val / (System.Int16)right.prim_val; break;
|
|
||||||
case TypeCode.SByte : res.prim_val = (System.UInt16)left.prim_val / (sbyte)right.prim_val; break;
|
|
||||||
case TypeCode.UInt16 : res.prim_val = (System.UInt16)left.prim_val / (System.UInt16)right.prim_val; break;
|
|
||||||
case TypeCode.UInt32 : res.prim_val = (System.UInt16)left.prim_val / (System.UInt32)right.prim_val; break;
|
|
||||||
case TypeCode.UInt64 : res.prim_val = (System.UInt16)left.prim_val / (System.UInt64)right.prim_val; break;
|
|
||||||
case TypeCode.Single : res.prim_val = (System.UInt16)left.prim_val / (System.Single)right.prim_val; break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case TypeCode.UInt32:
|
|
||||||
{
|
|
||||||
switch(rcode)
|
|
||||||
{
|
|
||||||
case TypeCode.Byte : res.prim_val = (System.UInt32)left.prim_val / (byte)right.prim_val; break;
|
|
||||||
case TypeCode.Int32 : res.prim_val = (System.UInt32)left.prim_val / (int)right.prim_val; break;
|
|
||||||
case TypeCode.Double : res.prim_val = (System.UInt32)left.prim_val / (double)right.prim_val; break;
|
|
||||||
case TypeCode.Int64 : res.prim_val = (System.UInt32)left.prim_val / (long)right.prim_val; break;
|
|
||||||
//case TypeCode.String : res.prim_val = ((System.UInt32)left.prim_val).ToString() + (string)right.prim_val; break;
|
|
||||||
case TypeCode.Int16 : res.prim_val = (System.UInt32)left.prim_val / (System.Int16)right.prim_val; break;
|
|
||||||
case TypeCode.SByte : res.prim_val = (System.UInt32)left.prim_val / (sbyte)right.prim_val; break;
|
|
||||||
case TypeCode.UInt16 : res.prim_val = (System.UInt32)left.prim_val / (System.UInt16)right.prim_val; break;
|
|
||||||
case TypeCode.UInt32 : res.prim_val = (System.UInt32)left.prim_val / (System.UInt32)right.prim_val; break;
|
|
||||||
case TypeCode.UInt64 : res.prim_val = (System.UInt32)left.prim_val / (System.UInt64)right.prim_val; break;
|
|
||||||
case TypeCode.Single : res.prim_val = (System.UInt32)left.prim_val / (System.Single)right.prim_val; break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case TypeCode.UInt64:
|
|
||||||
{
|
|
||||||
switch(rcode)
|
|
||||||
{
|
|
||||||
case TypeCode.Byte : res.prim_val = (System.UInt64)left.prim_val / (byte)right.prim_val; break;
|
|
||||||
case TypeCode.Int32 : res.prim_val = (System.UInt64)left.prim_val / (System.UInt64)((int)right.prim_val); break;
|
|
||||||
case TypeCode.Double : res.prim_val = (System.UInt64)left.prim_val / (double)right.prim_val; break;
|
|
||||||
case TypeCode.Int64 : res.prim_val = (long)((System.UInt64)left.prim_val) / (long)right.prim_val; break;
|
|
||||||
//case TypeCode.String : res.prim_val = ((System.UInt64)left.prim_val).ToString() + (string)right.prim_val; break;
|
|
||||||
case TypeCode.Int16 : res.prim_val = (System.UInt64)left.prim_val / (System.UInt64)((System.Int16)right.prim_val); break;
|
|
||||||
case TypeCode.SByte : res.prim_val = (System.UInt64)left.prim_val / (System.UInt64)((sbyte)right.prim_val); break;
|
|
||||||
case TypeCode.UInt16 : res.prim_val = (System.UInt64)left.prim_val / (System.UInt16)right.prim_val; break;
|
|
||||||
case TypeCode.UInt32 : res.prim_val = (System.UInt64)left.prim_val / (System.UInt32)right.prim_val; break;
|
|
||||||
case TypeCode.UInt64 : res.prim_val = (System.UInt64)left.prim_val / (System.UInt64)right.prim_val; break;
|
|
||||||
case TypeCode.Single : res.prim_val = (System.UInt64)left.prim_val / (System.Single)right.prim_val; break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case TypeCode.Single:
|
|
||||||
{
|
|
||||||
switch(rcode)
|
|
||||||
{
|
|
||||||
case TypeCode.Byte : res.prim_val = (System.Single)left.prim_val / (byte)right.prim_val; break;
|
|
||||||
case TypeCode.Int32 : res.prim_val = (System.Single)left.prim_val / (int)right.prim_val; break;
|
|
||||||
case TypeCode.Double : res.prim_val = (System.Single)left.prim_val / (double)right.prim_val; break;
|
|
||||||
case TypeCode.Int64 : res.prim_val = (System.Single)left.prim_val / (long)right.prim_val; break;
|
|
||||||
//case TypeCode.String : res.prim_val = ((System.Single)left.prim_val).ToString() + (string)right.prim_val; break;
|
|
||||||
case TypeCode.Int16 : res.prim_val = (System.Single)left.prim_val / (System.Int16)right.prim_val; break;
|
|
||||||
case TypeCode.SByte : res.prim_val = (System.Single)left.prim_val / (sbyte)right.prim_val; break;
|
|
||||||
case TypeCode.UInt16 : res.prim_val = (System.Single)left.prim_val / (System.UInt16)right.prim_val; break;
|
|
||||||
case TypeCode.UInt32 : res.prim_val = (System.Single)left.prim_val / (System.UInt32)right.prim_val; break;
|
|
||||||
case TypeCode.UInt64 : res.prim_val = (System.Single)left.prim_val / (System.UInt64)right.prim_val; break;
|
|
||||||
case TypeCode.Single : res.prim_val = (System.Single)left.prim_val / (System.Single)right.prim_val; break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
eval_stack.Push(res);
|
eval_stack.Push(res);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5124,6 +5124,10 @@ namespace CodeCompletion
|
||||||
|
|
||||||
if (this.ctn.IsSubclassOf(cs.ctn))
|
if (this.ctn.IsSubclassOf(cs.ctn))
|
||||||
return true;
|
return true;
|
||||||
|
if (implemented_interfaces != null)
|
||||||
|
foreach (TypeScope interf in implemented_interfaces)
|
||||||
|
if (interf.IsEqual(ts))
|
||||||
|
return true;
|
||||||
TypeCode code1 = Type.GetTypeCode(this.ctn);
|
TypeCode code1 = Type.GetTypeCode(this.ctn);
|
||||||
TypeCode code2 = Type.GetTypeCode(cs.ctn);
|
TypeCode code2 = Type.GetTypeCode(cs.ctn);
|
||||||
bool left = false;
|
bool left = false;
|
||||||
|
|
|
||||||
|
|
@ -119,7 +119,8 @@ namespace CodeCompletion
|
||||||
private static ProcScope char_smeq;
|
private static ProcScope char_smeq;
|
||||||
private static ProcScope char_gr;
|
private static ProcScope char_gr;
|
||||||
private static ProcScope char_greq;
|
private static ProcScope char_greq;
|
||||||
|
private static ProcScope char_plus;
|
||||||
|
|
||||||
private static ProcScope string_plus;
|
private static ProcScope string_plus;
|
||||||
private static ProcScope string_eq;
|
private static ProcScope string_eq;
|
||||||
private static ProcScope string_noteq;
|
private static ProcScope string_noteq;
|
||||||
|
|
@ -798,7 +799,7 @@ namespace CodeCompletion
|
||||||
int_type.AddName(PascalABCCompiler.TreeConverter.compiler_string_consts.plus_name, int64_plus);
|
int_type.AddName(PascalABCCompiler.TreeConverter.compiler_string_consts.plus_name, int64_plus);
|
||||||
int_type.AddName(PascalABCCompiler.TreeConverter.compiler_string_consts.minus_name, int64_minus);
|
int_type.AddName(PascalABCCompiler.TreeConverter.compiler_string_consts.minus_name, int64_minus);
|
||||||
int_type.AddName(PascalABCCompiler.TreeConverter.compiler_string_consts.mul_name, int64_mul);
|
int_type.AddName(PascalABCCompiler.TreeConverter.compiler_string_consts.mul_name, int64_mul);
|
||||||
int_type.AddName(PascalABCCompiler.TreeConverter.compiler_string_consts.div_name, int64_div);
|
int_type.AddName(PascalABCCompiler.TreeConverter.compiler_string_consts.idiv_name, int64_div);
|
||||||
int_type.AddName(PascalABCCompiler.TreeConverter.compiler_string_consts.mod_name, int64_mod);
|
int_type.AddName(PascalABCCompiler.TreeConverter.compiler_string_consts.mod_name, int64_mod);
|
||||||
int_type.AddName(PascalABCCompiler.TreeConverter.compiler_string_consts.shl_name, int64_shl);
|
int_type.AddName(PascalABCCompiler.TreeConverter.compiler_string_consts.shl_name, int64_shl);
|
||||||
int_type.AddName(PascalABCCompiler.TreeConverter.compiler_string_consts.shr_name, int64_shr);
|
int_type.AddName(PascalABCCompiler.TreeConverter.compiler_string_consts.shr_name, int64_shr);
|
||||||
|
|
@ -968,6 +969,23 @@ namespace CodeCompletion
|
||||||
ps.AddParameter(right);
|
ps.AddParameter(right);
|
||||||
char_type.AddName(PascalABCCompiler.TreeConverter.compiler_string_consts.gr_name, ps);
|
char_type.AddName(PascalABCCompiler.TreeConverter.compiler_string_consts.gr_name, ps);
|
||||||
|
|
||||||
|
ps = new ProcScope(PascalABCCompiler.TreeConverter.compiler_string_consts.plus_name, char_type);
|
||||||
|
char_plus = ps;
|
||||||
|
left = new ElementScope(new SymInfo("", SymbolKind.Parameter, ""), char_type, char_type);
|
||||||
|
right = new ElementScope(new SymInfo("", SymbolKind.Parameter, ""), char_type, char_type);
|
||||||
|
ps.return_type = string_type;
|
||||||
|
ps.AddParameter(left);
|
||||||
|
ps.AddParameter(right);
|
||||||
|
char_type.AddName(PascalABCCompiler.TreeConverter.compiler_string_consts.plus_name, ps);
|
||||||
|
|
||||||
|
ps = new ProcScope(PascalABCCompiler.TreeConverter.compiler_string_consts.plus_name, char_type);
|
||||||
|
left = new ElementScope(new SymInfo("", SymbolKind.Parameter, ""), char_type, char_type);
|
||||||
|
right = new ElementScope(new SymInfo("", SymbolKind.Parameter, ""), string_type, char_type);
|
||||||
|
ps.return_type = string_type;
|
||||||
|
ps.AddParameter(left);
|
||||||
|
ps.AddParameter(right);
|
||||||
|
char_type.AddName(PascalABCCompiler.TreeConverter.compiler_string_consts.plus_name, ps);
|
||||||
|
|
||||||
//string type
|
//string type
|
||||||
ps = new ProcScope(PascalABCCompiler.TreeConverter.compiler_string_consts.plus_name, string_type);
|
ps = new ProcScope(PascalABCCompiler.TreeConverter.compiler_string_consts.plus_name, string_type);
|
||||||
string_plus = ps;
|
string_plus = ps;
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,6 @@
|
||||||
|
type TRec = record
|
||||||
|
end;
|
||||||
|
|
||||||
type
|
type
|
||||||
myint{@type myint = integer@} = integer;
|
myint{@type myint = integer@} = integer;
|
||||||
myptr{@type myptr = ^real@} = ^real;
|
myptr{@type myptr = ^real@} = ^real;
|
||||||
|
|
@ -5,6 +8,7 @@ type
|
||||||
myset{@type myset = set of char@} = set of char;
|
myset{@type myset = set of char@} = set of char;
|
||||||
myarr{@type myarr = array of (integer,integer)@} = array of (integer, integer);
|
myarr{@type myarr = array of (integer,integer)@} = array of (integer, integer);
|
||||||
myarr2{@type myarr2 = array[,] of List<string>@} = array[,] of List<string>;
|
myarr2{@type myarr2 = array[,] of List<string>@} = array[,] of List<string>;
|
||||||
|
myrec = TRec;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,16 @@ begin
|
||||||
var a7{@var a7: string[5];@}: string[5];
|
var a7{@var a7: string[5];@}: string[5];
|
||||||
var a8{@var a8: List<integer>;@} := new List<integer>;
|
var a8{@var a8: List<integer>;@} := new List<integer>;
|
||||||
var a9{@var a9: real;@} := 2+3.4;
|
var a9{@var a9: real;@} := 2+3.4;
|
||||||
var a10{@var a10: List<integer>;@} := a8+2;
|
var a10{@var a10: sequence of integer;@} := a8+2;
|
||||||
var a11{@var a11: integer;@} := a8[2];
|
var a11{@var a11: integer;@} := a8[2];
|
||||||
var a12 := sin{@function Sin(x: real): real;@}(2);
|
var a12 := sin{@function Sin(x: real): real;@}(2);
|
||||||
|
var a14{@var a14: real;@} := 5/5;
|
||||||
|
var a15{@var a15: integer;@} := 5 div 5;
|
||||||
|
var a16{@var a16: int64;@} := int64(5) div 5;
|
||||||
|
var a17{@var a17: string;@} := 'a'+'b';
|
||||||
|
var a18{@var a18: string;@} := a3+a2;
|
||||||
|
var a19{@var a19: string;@} := a2+a3;
|
||||||
|
var a20{@var a20: List<integer>;@} := a8 + a8;
|
||||||
|
var a21{@var a21: boolean;@} := 2 in a8;
|
||||||
writeln(a1{@var a1: integer;@}+a4);
|
writeln(a1{@var a1: integer;@}+a4);
|
||||||
end.
|
end.
|
||||||
Loading…
Reference in a new issue