* String of length 1 is character (bug ID 30723)

git-svn-id: trunk@34883 -
This commit is contained in:
michael 2016-11-12 22:59:18 +00:00
parent 58d0239558
commit 1415d86f86
4 changed files with 20 additions and 5 deletions

View File

@ -1315,7 +1315,10 @@ begin
Inc(TokenStr);
end;
Inc(TokenStr);
Result := tkString;
if ((TokenStr - TokenStart)=3) then // 'z'
Result := tkChar
else
Result := tkString;
end;
else
Break;

View File

@ -82,6 +82,7 @@ type
procedure TestString;
procedure TestNumber;
procedure TestChar;
procedure TestCharString;
procedure TestBraceOpen;
procedure TestBraceClose;
procedure TestMul;
@ -515,6 +516,11 @@ begin
TestToken(pscanner.tkString,'''A string''');
end;
procedure TTestScanner.TestCharString;
begin
TestToken(pscanner.tkChar,'''A''');
end;
procedure TTestScanner.TestNumber;

View File

@ -129,6 +129,7 @@ type
Procedure TestFileTypePlatform;
Procedure TestRangeType;
Procedure TestCharRangeType;
Procedure TestCharRangeType2;
Procedure TestRangeTypeDeprecated;
Procedure TestRangeTypePlatform;
Procedure TestIdentifierRangeType;
@ -3040,6 +3041,11 @@ begin
DoTestRangeType('#1','#4','');
end;
procedure TTestTypeParser.TestCharRangeType2;
begin
DoTestRangeType('''A''','''B''','');
end;
procedure TTestTypeParser.TestRangeTypeDeprecated;
begin
DoTestRangeType('1','4','deprecated');

View File

@ -279,10 +279,10 @@ end;
procedure TTestVarParser.TestVarExternalLibName;
begin
ParseVar('integer; external ''mylib'' name ''d''','');
ParseVar('integer; external ''mylib'' name ''de''','');
AssertEquals('Variable modifiers',[vmexternal],TheVar.VarModifiers);
AssertEquals('Library name','''mylib''',TheVar.LibraryName);
AssertEquals('Library name','''d''',TheVar.ExportName);
AssertEquals('Library name','''de''',TheVar.ExportName);
end;
procedure TTestVarParser.TestVarCVar;
@ -305,9 +305,9 @@ end;
procedure TTestVarParser.TestVarPublicName;
begin
ParseVar('integer; public name ''c''','');
ParseVar('integer; public name ''ce''','');
AssertEquals('Variable modifiers',[vmpublic],TheVar.VarModifiers);
AssertEquals('Public export name','''c''',TheVar.ExportName);
AssertEquals('Public export name','''ce''',TheVar.ExportName);
end;
procedure TTestVarParser.TestVarDeprecatedExternalName;