diff --git a/CodeCompletion/Testing.cs b/CodeCompletion/Testing.cs index 63c2fa62c..89514295f 100644 --- a/CodeCompletion/Testing.cs +++ b/CodeCompletion/Testing.cs @@ -394,7 +394,9 @@ namespace CodeCompletion off = test_str.Length - 3; s = parser.LanguageInformation.FindExpression(off, test_str, line, col, out keyw); assert(s.Trim('\n', ' ', '\t') == "s0"); + + int num_param = 0; //testirovanie nazhatija skobki test_str = "writeln"; @@ -778,6 +780,21 @@ namespace CodeCompletion s = parser.LanguageInformation.FindExpressionFromAnyPosition(off,test_str,line,col,out keyw,out str); assert(s.Trim('\n',' ','\t')==test_str); + test_str = "new t1(2)"; + off = 5; + s = parser.LanguageInformation.FindExpressionFromAnyPosition(off, test_str, line, col, out keyw, out str); + assert(s.Trim('\n', ' ', '\t') == "new t1(2)"); + + test_str = "new t1>(2)"; + off = 5; + s = parser.LanguageInformation.FindExpressionFromAnyPosition(off, test_str, line, col, out keyw, out str); + assert(s.Trim('\n', ' ', '\t') == "new t1>(2)"); + + test_str = "t1&.x"; + off = test_str.Length; + s = parser.LanguageInformation.FindExpressionFromAnyPosition(off, test_str, line, col, out keyw, out str); + assert(s.Trim('\n', ' ', '\t') == "t1&.x"); + //---- Type[] types = typeof(int).Assembly.GetExportedTypes(); int i = 0; diff --git a/ParserTools/ParserTools/DefaultLanguageInformation.cs b/ParserTools/ParserTools/DefaultLanguageInformation.cs index e30c26c3c..fb409c409 100644 --- a/ParserTools/ParserTools/DefaultLanguageInformation.cs +++ b/ParserTools/ParserTools/DefaultLanguageInformation.cs @@ -3068,7 +3068,7 @@ namespace PascalABCCompiler.Parsers } if (generic) { - break; + //break; } } else if (c == '[' && !in_comment)