2424interface
2525
2626uses
27- SysUtils, Classes, TypInfo,
28- dwsTokenTypes, dwsScriptSource, dwsErrors, dwsStrings, dwsXPlatform, dwsUtils, dwsXXHash
27+ System. SysUtils, System. Classes, System. TypInfo,
28+ dwsTokenTypes, dwsScriptSource, dwsErrors, dwsUtils
2929 { $ifdef FPC} ,lazutf8{ $endif} ;
3030
3131type
@@ -200,13 +200,13 @@ TTokenizerRules = class
200200 end ;
201201
202202 TTokenizerSourceInfo = record
203+ FHotPos : TScriptPos;
204+ FCurPos : TScriptPos;
205+ FPosPtr : PChar;
203206 FPathName : TFileName;
204207 FLocation : TFileName;
205208 FText : String;
206209 FDefaultPos : TScriptPos;
207- FHotPos : TScriptPos;
208- FCurPos : TScriptPos;
209- FPosPtr : PChar;
210210 end ;
211211 PTokenizerSourceInfo = ^TTokenizerSourceInfo;
212212
@@ -222,23 +222,27 @@ TTokenizerConditionalInfo = record
222222 TTokenizer = class
223223 private
224224 FTokenBuf : TTokenBuffer;
225- FNextToken : TToken;
226- FRules : TTokenizerRules;
225+ FOnBeforeAction : TTokenizerActionEvent;
227226 FStartState : TState;
228- FToken : TToken;
229227 FSource : TTokenizerSourceInfo;
228+
229+ FOnEndSourceFile : TTokenizerEndSourceFileEvent;
230+
231+ FToken : TToken;
232+ FNextToken : TToken;
233+
234+ FRules : TTokenizerRules;
235+ FTokenPool : TToken;
236+
230237 FSwitchHandler : TSwitchHandler;
231238 FSwitchProcessor : TSwitchHandler;
239+
240+ FSourceStack : array of TTokenizerSourceInfo;
241+
232242 FMsgs : TdwsCompileMessageList;
233243 FConditionalDefines : IAutoStrings;
234244 FConditionalDepth : TSimpleStack<TTokenizerConditionalInfo>;
235245
236- FTokenPool : TToken;
237-
238- FSourceStack : array of TTokenizerSourceInfo;
239- FOnEndSourceFile : TTokenizerEndSourceFileEvent;
240- FOnBeforeAction : TTokenizerActionEvent;
241-
242246 procedure AllocateToken ;
243247 procedure ReleaseToken ;
244248
@@ -315,6 +319,8 @@ implementation
315319// ------------------------------------------------------------------
316320// ------------------------------------------------------------------
317321
322+ uses dwsXPlatform, dwsStrings;
323+
318324const
319325 cFormatSettings : TFormatSettings = ( DecimalSeparator : { %H-} ' .' );
320326
@@ -327,12 +333,14 @@ function TTokenRecord.EmptyString : Boolean;
327333
328334// AppendChar
329335//
336+ { $IFOPT R+}{ $DEFINE RANGEON}{ $R-}{ $ELSE}{ $UNDEF RANGEON}{ $ENDIF}
330337procedure TTokenBuffer.AppendChar (c : Char);
331338begin
332- if Len>= Capacity then Grow;
333- Buffer[Len]:= c;
339+ if Len >= Capacity then Grow;
340+ Buffer[Len] := c;
334341 Inc(Len);
335342end ;
343+ { $IFDEF RANGEON}{ $R+}{ $UNDEF RANGEON}{ $ENDIF}
336344
337345// Grow
338346//
@@ -927,45 +935,42 @@ procedure PrepareAlphaToTokenType;
927935// UpperMatchLen
928936//
929937function TTokenBuffer.UpperMatchLen (const str : String) : Boolean;
930- var
931- i : Integer;
932- p : PChar;
933- ch : Char;
934938begin
935- p:= PChar(Pointer(str));
936- for i:= 1 to Len-1 do begin
937- ch:= Buffer[i];
939+ var p := PChar(Pointer(str));
940+ for var i := 1 to Len-1 do begin
941+ var ch := Buffer[i];
938942 case ch of
939- ' a' ..' z' : if Char(Word(ch) xor $0020 )<> p[i] then Exit(False);
943+ ' a' ..' z' : if Char(Word(ch) xor $0020 ) <> p[i] then Exit(False);
940944 else
941- if ch<> p[i] then Exit(False);
945+ if ch <> p[i] then Exit(False);
942946 end ;
943947 end ;
944- Result:= True;
948+ Result := True;
945949end ;
946950
947951// ToAlphaType
948952//
953+ { $IFOPT R+}{ $DEFINE RANGEON}{ $R-}{ $ELSE}{ $UNDEF RANGEON}{ $ENDIF}
949954function TTokenBuffer.ToAlphaType : TTokenType;
950955var
951- ch : Char;
952- i : Integer;
953- lookups : PTokenAlphaLookups;
956+ lookups : Pointer;
954957begin
955958 if (Len<2 ) or (Len>14 ) then Exit(ttNAME);
956- ch:= Buffer[0 ];
959+ var ch := Buffer[0 ];
957960 case ch of
958- ' a' ..' x' : lookups:= @vAlphaToTokenType[Len][Char(Word(ch) xor $0020 )];
959- ' A' ..' X' : lookups:= @vAlphaToTokenType[Len][ch];
961+ ' a' ..' x' : lookups := @vAlphaToTokenType[Len][Char(Word(ch) xor $0020 )];
962+ ' A' ..' X' : lookups := @vAlphaToTokenType[Len][ch];
960963 else
961964 Exit(ttNAME);
962965 end ;
963- for i:=0 to High(lookups^) do begin
964- if UpperMatchLen(lookups^[i].Alpha) then
965- Exit(lookups^[i].Token);
966+ lookups := PPointer(lookups)^;
967+ for var i := 0 to High(TTokenAlphaLookups(lookups)) do begin
968+ if UpperMatchLen(TTokenAlphaLookups(lookups)[i].Alpha) then
969+ Exit(TTokenAlphaLookups(lookups)[i].Token);
966970 end ;
967- Result:= ttNAME;
971+ Result := ttNAME;
968972end ;
973+ { $IFDEF RANGEON}{ $R+}{ $UNDEF RANGEON}{ $ENDIF}
969974
970975// MatchLen
971976//
0 commit comments