This commit is contained in:
2018-10-29 14:52:41 +02:00
parent 886cbb2974
commit 2e07350571
2 changed files with 61 additions and 67 deletions

View File

@@ -3,15 +3,17 @@ unit AG.PascalTokenizer;
interface interface
uses uses
{$IFDEF FPC}fgl,SysUtils,Classes{$ELSE}System.Generics.Collections,System.SysUtils,System.Classes{$ENDIF}; {$IFDEF FPC}
SysUtils,Classes
{$ELSE}
System.Generics.Collections,System.SysUtils,System.Classes
{$ENDIF};
{$IFDEF FPC} {$IFDEF FPC}
{$mode Delphi} {$mode Delphi}
{$ENDIF} {$ENDIF}
type type
{$IFDEF FPC}TFpcList=specialize TFPGList<String>;{$ENDIF}
TAGTokenizerPos = record TAGTokenizerPos = record
x, y: integer; x, y: integer;
end; end;
@@ -81,7 +83,7 @@ const
fix = {$IFDEF NEXTGEN}-1{$ELSE}0{$ENDIF}; fix = {$IFDEF NEXTGEN}-1{$ELSE}0{$ENDIF};
var var
SYMS2:{$IFDEF FPC}TFpcList{$ELSE}TList<string>{$ENDIF}; // array[0..8]of string=(); SYMS2:{$IFDEF FPC}TStringList{$ELSE}TList<string>{$ENDIF}; // array[0..8]of string=();
function IsComment(s:string):boolean; function IsComment(s:string):boolean;
begin begin
@@ -233,18 +235,11 @@ begin
begin begin
ss := now_sym; ss := now_sym;
inc(x); inc(x);
{$IFDEF FPC} if SYMS2.{$IFDEF FPC}
ff:=false; IndexOf(now_sym+next_sym)<>-1
for i:=0 to SYMS2.Count-1 do
if SYMS2[i]=now_sym+next_sym then
begin
ff:=true;
break;
end;
if ff then
{$ELSE} {$ELSE}
if SYMS2.Contains(now_sym+next_sym) then Contains(now_sym+next_sym)
{$ENDIF} {$ENDIF}then
begin begin
inc(x); inc(x);
ss := ss + next_sym; ss := ss + next_sym;
@@ -328,7 +323,7 @@ begin
end; end;
initialization initialization
SYMS2 := {$IFDEF FPC}TFpcList{$ELSE}TList<string>{$ENDIF}.Create(); SYMS2 := {$IFDEF FPC}TStringList{$ELSE}TList<string>{$ENDIF}.Create();
SYMS2.Add('>='); SYMS2.Add('>=');
SYMS2.Add('<='); SYMS2.Add('<=');
SYMS2.Add('<>'); SYMS2.Add('<>');

View File

@@ -16,7 +16,6 @@
<Filename Value="testcase1.pas"/> <Filename Value="testcase1.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="TestCase1"/> <UnitName Value="TestCase1"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="1"/> <EditorIndex Value="1"/>
<TopLine Value="13"/> <TopLine Value="13"/>
<CursorPos X="23" Y="31"/> <CursorPos X="23" Y="31"/>
@@ -24,151 +23,151 @@
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit1> </Unit1>
<Unit2> <Unit2>
<Filename Value="..\AG.PascalTokenizer.pas"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="2"/>
<TopLine Value="232"/>
<CursorPos X="13" Y="242"/>
<UsageCount Value="20"/>
<Loaded Value="True"/>
</Unit2>
<Unit3>
<Filename Value="C:\lazarus\components\fpcunit\guitestrunner.pas"/> <Filename Value="C:\lazarus\components\fpcunit\guitestrunner.pas"/>
<UnitName Value="GuiTestRunner"/> <UnitName Value="GuiTestRunner"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<TopLine Value="44"/> <TopLine Value="44"/>
<CursorPos X="12" Y="54"/> <CursorPos X="12" Y="54"/>
<UsageCount Value="10"/> <UsageCount Value="10"/>
</Unit2>
<Unit3>
<Filename Value="..\AG.PascalTokenizer.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="2"/>
<TopLine Value="299"/>
<CursorPos X="20" Y="313"/>
<UsageCount Value="20"/>
<Loaded Value="True"/>
</Unit3> </Unit3>
<Unit4> <Unit4>
<Filename Value="C:\lazarus\fpc\3.0.4\source\rtl\objpas\classes\classesh.inc"/> <Filename Value="C:\lazarus\fpc\3.0.4\source\rtl\objpas\classes\classesh.inc"/>
<EditorIndex Value="3"/> <EditorIndex Value="-1"/>
<TopLine Value="715"/> <TopLine Value="715"/>
<CursorPos X="47" Y="732"/> <CursorPos X="47" Y="732"/>
<UsageCount Value="10"/> <UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit4> </Unit4>
</Units> </Units>
<JumpHistory Count="30" HistoryIndex="29"> <JumpHistory Count="30" HistoryIndex="29">
<Position1> <Position1>
<Filename Value="..\AG.PascalTokenizer.pas"/> <Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="189" TopLine="171"/> <Caret Line="191" TopLine="171"/>
</Position1> </Position1>
<Position2> <Position2>
<Filename Value="..\AG.PascalTokenizer.pas"/> <Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="190" TopLine="171"/> <Caret Line="192" TopLine="171"/>
</Position2> </Position2>
<Position3> <Position3>
<Filename Value="..\AG.PascalTokenizer.pas"/> <Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="191" TopLine="171"/> <Caret Line="193" TopLine="171"/>
</Position3> </Position3>
<Position4> <Position4>
<Filename Value="..\AG.PascalTokenizer.pas"/> <Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="192" TopLine="171"/> <Caret Line="196" TopLine="171"/>
</Position4> </Position4>
<Position5> <Position5>
<Filename Value="..\AG.PascalTokenizer.pas"/> <Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="193" TopLine="171"/> <Caret Line="295" TopLine="278"/>
</Position5> </Position5>
<Position6> <Position6>
<Filename Value="..\AG.PascalTokenizer.pas"/> <Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="196" TopLine="171"/> <Caret Line="300" TopLine="278"/>
</Position6> </Position6>
<Position7> <Position7>
<Filename Value="..\AG.PascalTokenizer.pas"/> <Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="295" TopLine="278"/> <Caret Line="312" TopLine="284"/>
</Position7> </Position7>
<Position8> <Position8>
<Filename Value="..\AG.PascalTokenizer.pas"/> <Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="300" TopLine="278"/> <Caret Line="189" TopLine="171"/>
</Position8> </Position8>
<Position9> <Position9>
<Filename Value="..\AG.PascalTokenizer.pas"/> <Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="312" TopLine="284"/> <Caret Line="190" TopLine="171"/>
</Position9> </Position9>
<Position10> <Position10>
<Filename Value="..\AG.PascalTokenizer.pas"/> <Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="189" TopLine="171"/> <Caret Line="191" TopLine="171"/>
</Position10> </Position10>
<Position11> <Position11>
<Filename Value="..\AG.PascalTokenizer.pas"/> <Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="190" TopLine="171"/> <Caret Line="192" TopLine="171"/>
</Position11> </Position11>
<Position12> <Position12>
<Filename Value="..\AG.PascalTokenizer.pas"/> <Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="191" TopLine="171"/> <Caret Line="193" TopLine="171"/>
</Position12> </Position12>
<Position13> <Position13>
<Filename Value="..\AG.PascalTokenizer.pas"/> <Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="192" TopLine="171"/> <Caret Line="196" TopLine="171"/>
</Position13> </Position13>
<Position14> <Position14>
<Filename Value="..\AG.PascalTokenizer.pas"/> <Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="193" TopLine="171"/> <Caret Line="295" TopLine="278"/>
</Position14> </Position14>
<Position15> <Position15>
<Filename Value="..\AG.PascalTokenizer.pas"/> <Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="196" TopLine="171"/> <Caret Line="300" TopLine="278"/>
</Position15> </Position15>
<Position16> <Position16>
<Filename Value="..\AG.PascalTokenizer.pas"/> <Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="295" TopLine="278"/> <Caret Line="312" TopLine="284"/>
</Position16> </Position16>
<Position17> <Position17>
<Filename Value="..\AG.PascalTokenizer.pas"/> <Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="300" TopLine="278"/> <Caret Line="189" TopLine="171"/>
</Position17> </Position17>
<Position18> <Position18>
<Filename Value="..\AG.PascalTokenizer.pas"/> <Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="312" TopLine="284"/> <Caret Line="190" TopLine="171"/>
</Position18> </Position18>
<Position19> <Position19>
<Filename Value="..\AG.PascalTokenizer.pas"/> <Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="189" TopLine="171"/> <Caret Line="191" TopLine="171"/>
</Position19> </Position19>
<Position20> <Position20>
<Filename Value="..\AG.PascalTokenizer.pas"/> <Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="190" TopLine="171"/> <Caret Line="192" TopLine="171"/>
</Position20> </Position20>
<Position21> <Position21>
<Filename Value="..\AG.PascalTokenizer.pas"/> <Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="191" TopLine="171"/> <Caret Line="193" TopLine="171"/>
</Position21> </Position21>
<Position22> <Position22>
<Filename Value="..\AG.PascalTokenizer.pas"/> <Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="192" TopLine="171"/> <Caret Line="196" TopLine="171"/>
</Position22> </Position22>
<Position23> <Position23>
<Filename Value="..\AG.PascalTokenizer.pas"/> <Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="193" TopLine="171"/> <Caret Line="295" Column="7" TopLine="278"/>
</Position23> </Position23>
<Position24> <Position24>
<Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="196" TopLine="171"/>
</Position24>
<Position25>
<Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="295" Column="7" TopLine="278"/>
</Position25>
<Position26>
<Filename Value="testcase1.pas"/> <Filename Value="testcase1.pas"/>
<Caret Line="28" Column="11" TopLine="4"/> <Caret Line="28" Column="11" TopLine="4"/>
</Position26> </Position24>
<Position27> <Position25>
<Filename Value="testcase1.pas"/> <Filename Value="testcase1.pas"/>
<Caret Line="29" Column="15" TopLine="4"/> <Caret Line="29" Column="15" TopLine="4"/>
</Position27> </Position25>
<Position28> <Position26>
<Filename Value="..\AG.PascalTokenizer.pas"/> <Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="295" Column="9"/> <Caret Line="295" Column="9"/>
</Position26>
<Position27>
<Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="313" Column="20" TopLine="299"/>
</Position27>
<Position28>
<Filename Value="testcase1.pas"/>
<Caret Line="23" Column="12" TopLine="8"/>
</Position28> </Position28>
<Position29> <Position29>
<Filename Value="..\AG.PascalTokenizer.pas"/> <Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="313" Column="20" TopLine="299"/> <Caret Line="110" Column="34" TopLine="106"/>
</Position29> </Position29>
<Position30> <Position30>
<Filename Value="testcase1.pas"/> <Filename Value="..\AG.PascalTokenizer.pas"/>
<Caret Line="23" Column="12" TopLine="8"/> <Caret Line="86" Column="32" TopLine="72"/>
</Position30> </Position30>
</JumpHistory> </JumpHistory>
</ProjectSession> </ProjectSession>