performance improvements in intellisense
This commit is contained in:
parent
0d34318378
commit
05eb6c0a31
|
|
@ -2584,6 +2584,7 @@ namespace PascalABCCompiler.Parsers
|
||||||
{
|
{
|
||||||
keyword = KeywordKind.CommonKeyword;
|
keyword = KeywordKind.CommonKeyword;
|
||||||
}
|
}
|
||||||
|
|
||||||
else keyword = KeywordKind.None;
|
else keyword = KeywordKind.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2680,6 +2681,12 @@ namespace PascalABCCompiler.Parsers
|
||||||
{
|
{
|
||||||
bound = i + 1;
|
bound = i + 1;
|
||||||
TestForKeyword(Text, i, ref bound, punkt_sym, out keyw);
|
TestForKeyword(Text, i, ref bound, punkt_sym, out keyw);
|
||||||
|
for (int j = tmp; j > bound; j--)
|
||||||
|
{
|
||||||
|
sb.Insert(0, Text[j]);
|
||||||
|
}
|
||||||
|
i = bound;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
else if (i >= 0 && Text[i] == '\'') return "";
|
else if (i >= 0 && Text[i] == '\'') return "";
|
||||||
i = tmp;
|
i = tmp;
|
||||||
|
|
|
||||||
114
TestSuite/intellisense_tests/arrays6.pas
Normal file
114
TestSuite/intellisense_tests/arrays6.pas
Normal file
|
|
@ -0,0 +1,114 @@
|
||||||
|
|
||||||
|
procedure Test;
|
||||||
|
var b1 : set of byte := [-1..3];
|
||||||
|
b2 : array[1..5] of integer := (1,2,3,4,5);
|
||||||
|
b3 : array of real := (2.4,3.5,1.2);
|
||||||
|
b4 : array[1..3] of set of char := (['a','j'],['l','b','c'],[]);
|
||||||
|
|
||||||
|
begin
|
||||||
|
var a1 : set of byte := [-1..3];
|
||||||
|
assert(a1=[0..3]);
|
||||||
|
assert(2 in a1);
|
||||||
|
var a2 : array[1..5] of integer := (1,2,3,4,5);
|
||||||
|
assert(a2[3] = 3);
|
||||||
|
var a3 : array of real := (2.4,3.5,1.2);
|
||||||
|
assert(a3[1] = 3.5);
|
||||||
|
var a4 : array[1..3,1..2] of integer := ((1,2),(2,3),(3,4));
|
||||||
|
assert(a4[2,2] = 3);
|
||||||
|
var a5 : array[0..2] of set of char := (['a','j'],['l','b','c'],[]);
|
||||||
|
assert(a5[0] = ['a','j']);
|
||||||
|
assert(a5[2]=[]);
|
||||||
|
assert(b1 = [0..3]);
|
||||||
|
assert(1 in b1);
|
||||||
|
assert(b2[2] = 2);
|
||||||
|
assert(b3[2] = 1.2);
|
||||||
|
assert(b4[1] = ['a','j']);
|
||||||
|
Include(b1,4); assert(b1=[0..4]);
|
||||||
|
Exclude(b1,4); assert(b1=[0..3]);
|
||||||
|
assert(2 in b1);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure Test2;
|
||||||
|
var b1 : set of byte := [-1..3];
|
||||||
|
b2 : array[1..5] of integer := (1,2,3,4,5);
|
||||||
|
b3 : array of real := (2.4,3.5,1.2);
|
||||||
|
b4 : array[1..3] of set of char := (['a','j'],['l','b','c'],[]);
|
||||||
|
|
||||||
|
procedure Nested;
|
||||||
|
begin
|
||||||
|
var a1 : set of byte := [-1..3];
|
||||||
|
assert(a1=[0..3]);
|
||||||
|
assert(2 in a1);
|
||||||
|
var a2 : array[1..5] of integer := (1,2,3,4,5);
|
||||||
|
assert(a2[3] = 3);
|
||||||
|
var a3 : array of real := (2.4,3.5,1.2);
|
||||||
|
assert(a3[1] = 3.5);
|
||||||
|
var a4 : array[1..3,1..2] of integer := ((1,2),(2,3),(3,4));
|
||||||
|
assert(a4{@var a4: array[1..3,1..2] of integer;@}[2,2] = 3);
|
||||||
|
var a5 : array[0..2] of set of char := (['a','j'],['l','b','c'],[]);
|
||||||
|
assert(a5[0] = ['a','j']);
|
||||||
|
assert(a5[2]=[]);
|
||||||
|
assert(b1{@var b1: set of byte;@} = [0..3]);
|
||||||
|
assert(1 in b1);
|
||||||
|
assert(b2[2] = 2);
|
||||||
|
assert(b3[2] = 1.2);
|
||||||
|
assert(b4{@var b4: array[1..3] of set of char;@}[1] = ['a','j']);
|
||||||
|
Include(b1,4); assert(b1=[0..4]);
|
||||||
|
Exclude(b1,4); assert(b1=[0..3]);
|
||||||
|
assert(2 in b1);
|
||||||
|
end;
|
||||||
|
|
||||||
|
begin
|
||||||
|
var a1 : set of byte := [-1..3];
|
||||||
|
assert(a1=[0..3]);
|
||||||
|
assert(2 in a1);
|
||||||
|
var a2 : array[1..5] of integer := (1,2,3,4,5);
|
||||||
|
assert(a2[3] = 3);
|
||||||
|
var a3 : array of real := (2.4,3.5,1.2);
|
||||||
|
assert(a3[1] = 3.5);
|
||||||
|
var a4 : array[1..3,1..2] of integer := ((1,2),(2,3),(3,4));
|
||||||
|
assert(a4[2,2] = 3);
|
||||||
|
var a5 : array[0..2] of set of char := (['a','j'],['l','b','c'],[]);
|
||||||
|
assert(a5[0] = ['a','j']);
|
||||||
|
assert(a5[2]=[]);
|
||||||
|
assert(b1 = [0..3]);
|
||||||
|
assert(1 in b1);
|
||||||
|
assert(b2[2] = 2);
|
||||||
|
assert(b3[2] = 1.2);
|
||||||
|
assert(b4[1] = ['a','j']);
|
||||||
|
Include(b1,4); assert(b1=[0..4]);
|
||||||
|
Exclude(b1,4); assert(b1=[0..3]);
|
||||||
|
assert(2 in b1);
|
||||||
|
Nested{@procedure Nested();@};
|
||||||
|
end;
|
||||||
|
|
||||||
|
var b1 : set of byte := [-1..3];
|
||||||
|
b2 : array[1..5] of integer := (1,2,3,4,5);
|
||||||
|
b3 : array of real := (2.4,3.5,1.2);
|
||||||
|
b4 : array[1..3] of set of char := (['a','j'],['l','b','c'],[]);
|
||||||
|
|
||||||
|
begin
|
||||||
|
var a5 : array[0..2] of set of char := (['a','j'],['l','b','c'],[]);
|
||||||
|
assert(a5[0] = ['a','j']);
|
||||||
|
assert(a5[2]=[]);
|
||||||
|
var a1 : set of byte := [-1..3];
|
||||||
|
assert(a1=[0..3]);
|
||||||
|
assert(2 in a1);
|
||||||
|
var a2 : array[1..5] of integer := (1,2,3,4,5);
|
||||||
|
assert(a2[3] = 3);
|
||||||
|
var a3 : array of real := (2.4,3.5,1.2);
|
||||||
|
assert(a3[1] = 3.5);
|
||||||
|
var a4 : array[1..3,1..2] of integer := ((1,2),(2,3),(3,4));
|
||||||
|
assert(a4[2,2] = 3);
|
||||||
|
|
||||||
|
assert(b1 = [0..3]);
|
||||||
|
assert(1 in b1);
|
||||||
|
assert(b2[2] = 2);
|
||||||
|
assert(b3[2] = 1.2);
|
||||||
|
assert(b4[1] = ['a','j']);
|
||||||
|
Include(b1,4); assert(b1=[0..4]);
|
||||||
|
Exclude(b1,4); assert(b1=[0..3]);
|
||||||
|
assert(2 in b1);
|
||||||
|
Test;
|
||||||
|
Test2;
|
||||||
|
end.
|
||||||
Loading…
Reference in a new issue