This commit is contained in:
parent
a1160f993d
commit
05e4198ab4
|
|
@ -17,6 +17,21 @@ namespace CodeCompletion
|
|||
public struct RetValue
|
||||
{
|
||||
public object prim_val;
|
||||
|
||||
public string string_val
|
||||
{
|
||||
get
|
||||
{
|
||||
string s = (string)prim_val;
|
||||
if (s != null && s.StartsWith("'") && s.EndsWith("'"))
|
||||
s = s.Substring(1, s.Length - 2);
|
||||
return s;
|
||||
}
|
||||
set
|
||||
{
|
||||
prim_val = "'" + value + "'";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class DomConverter : ICodeCompletionDomConverter
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ namespace CodeCompletion
|
|||
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.String : res.string_val = ((int)left.prim_val).ToString() + right.string_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;
|
||||
|
|
@ -55,7 +55,7 @@ namespace CodeCompletion
|
|||
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.String : res.string_val = ((double)left.prim_val).ToString() + right.string_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;
|
||||
|
|
@ -73,7 +73,7 @@ namespace CodeCompletion
|
|||
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.String : res.string_val = ((byte)left.prim_val).ToString() + right.string_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;
|
||||
|
|
@ -91,7 +91,7 @@ namespace CodeCompletion
|
|||
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.String : res.string_val = ((System.Int16)left.prim_val).ToString() + right.string_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;
|
||||
|
|
@ -109,7 +109,7 @@ namespace CodeCompletion
|
|||
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.String : res.string_val = ((System.Int64)left.prim_val).ToString() + right.string_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;
|
||||
|
|
@ -123,18 +123,18 @@ namespace CodeCompletion
|
|||
{
|
||||
switch(rcode)
|
||||
{
|
||||
case TypeCode.Byte : res.prim_val = (string)left.prim_val + right.prim_val.ToString(); break;
|
||||
case TypeCode.Int32 : res.prim_val = (string)left.prim_val + right.prim_val.ToString(); break;
|
||||
case TypeCode.Double : res.prim_val = (string)left.prim_val + right.prim_val.ToString(); break;
|
||||
case TypeCode.Int64 : res.prim_val = (string)left.prim_val + right.prim_val.ToString(); break;
|
||||
case TypeCode.String : res.prim_val = (string)left.prim_val + right.prim_val.ToString(); break;
|
||||
case TypeCode.Int16 : res.prim_val = (string)left.prim_val + right.prim_val.ToString(); break;
|
||||
case TypeCode.SByte : res.prim_val = (string)left.prim_val + right.prim_val.ToString(); break;
|
||||
case TypeCode.UInt16 : res.prim_val = (string)left.prim_val + right.prim_val.ToString(); break;
|
||||
case TypeCode.UInt32 : res.prim_val = (string)left.prim_val + right.prim_val.ToString(); break;
|
||||
case TypeCode.UInt64 : res.prim_val = (string)left.prim_val + right.prim_val.ToString(); break;
|
||||
case TypeCode.Single : res.prim_val = (string)left.prim_val + right.prim_val.ToString(); break;
|
||||
case TypeCode.Char : res.prim_val = (string)left.prim_val + right.prim_val.ToString(); break;
|
||||
case TypeCode.Byte : res.string_val = left.string_val + right.prim_val.ToString(); break;
|
||||
case TypeCode.Int32 : res.string_val = left.string_val + right.prim_val.ToString(); break;
|
||||
case TypeCode.Double : res.string_val = left.string_val + right.prim_val.ToString(); break;
|
||||
case TypeCode.Int64 : res.string_val = left.string_val + right.prim_val.ToString(); break;
|
||||
case TypeCode.String : res.string_val = left.string_val + right.string_val; break;
|
||||
case TypeCode.Int16 : res.string_val = left.string_val + right.prim_val.ToString(); break;
|
||||
case TypeCode.SByte : res.string_val = left.string_val + right.prim_val.ToString(); break;
|
||||
case TypeCode.UInt16 : res.string_val = left.string_val + right.prim_val.ToString(); break;
|
||||
case TypeCode.UInt32 : res.string_val = left.string_val + right.prim_val.ToString(); break;
|
||||
case TypeCode.UInt64 : res.string_val = left.string_val + right.prim_val.ToString(); break;
|
||||
case TypeCode.Single : res.string_val = left.string_val + right.prim_val.ToString(); break;
|
||||
case TypeCode.Char : res.string_val = left.string_val + right.prim_val.ToString(); break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -146,7 +146,7 @@ namespace CodeCompletion
|
|||
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.String : res.string_val = ((System.SByte)left.prim_val).ToString() + right.string_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;
|
||||
|
|
@ -164,7 +164,7 @@ namespace CodeCompletion
|
|||
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.String : res.string_val = ((System.UInt16)left.prim_val).ToString() + right.string_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;
|
||||
|
|
@ -182,7 +182,7 @@ namespace CodeCompletion
|
|||
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.String : res.string_val = ((System.UInt32)left.prim_val).ToString() + right.string_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;
|
||||
|
|
@ -200,7 +200,7 @@ namespace CodeCompletion
|
|||
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 = (System.UInt64)left.prim_val + (System.UInt64)((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.string_val = ((System.UInt64)left.prim_val).ToString() + right.string_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;
|
||||
|
|
@ -218,7 +218,7 @@ namespace CodeCompletion
|
|||
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.String : res.string_val = ((System.Single)left.prim_val).ToString() + right.string_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;
|
||||
|
|
@ -232,8 +232,8 @@ namespace CodeCompletion
|
|||
{
|
||||
switch(rcode)
|
||||
{
|
||||
case TypeCode.Char : res.prim_val = (string)left.prim_val + (string)right.prim_val; break;
|
||||
case TypeCode.String : res.prim_val = left.prim_val.ToString() + (string)right.prim_val; break;
|
||||
case TypeCode.Char : res.string_val = left.string_val + right.string_val; break;
|
||||
case TypeCode.String : res.string_val = left.prim_val.ToString() + right.string_val; break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
17
TestSuite/intellisense_tests/stringconst1.pas
Normal file
17
TestSuite/intellisense_tests/stringconst1.pas
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
const
|
||||
s1 = 'abc';
|
||||
s2 = 'def';
|
||||
s3 = s1+s2;
|
||||
s4 = s1+'d';
|
||||
s5 = s1+6;
|
||||
i = 6;
|
||||
s6 = s1 + i;
|
||||
s7 = s1 + s2 + 'gh';
|
||||
|
||||
begin
|
||||
writeln(s3{@const s3: string = 'abcdef';@});
|
||||
writeln(s4{@const s4: string = 'abcd';@});
|
||||
writeln(s5{@const s5: string = 'abc6';@});
|
||||
writeln(s6{@const s6: string = 'abc6';@});
|
||||
writeln(s7{@const s7: string = 'abcdefgh';@});
|
||||
end.
|
||||
Loading…
Reference in a new issue