performance improvements in intellisense
This commit is contained in:
parent
0d34318378
commit
05eb6c0a31
|
|
@ -2584,6 +2584,7 @@ namespace PascalABCCompiler.Parsers
|
|||
{
|
||||
keyword = KeywordKind.CommonKeyword;
|
||||
}
|
||||
|
||||
else keyword = KeywordKind.None;
|
||||
}
|
||||
|
||||
|
|
@ -2680,6 +2681,12 @@ namespace PascalABCCompiler.Parsers
|
|||
{
|
||||
bound = i + 1;
|
||||
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 "";
|
||||
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