From 5e8728b932d91e80ad5466163c0ce39433c72bc1 Mon Sep 17 00:00:00 2001 From: Jose Sebastian Battig Date: Tue, 5 May 2015 23:13:02 -0500 Subject: [PATCH 1/3] B-0 made compatible with Delphi XE8 --- CastaliaPasLex.pas | 52 ++++++++++++++++++++--------------------- CastaliaPasLexTypes.pas | 2 +- __history/.gitignore | 1 + 3 files changed, 28 insertions(+), 27 deletions(-) create mode 100644 __history/.gitignore diff --git a/CastaliaPasLex.pas b/CastaliaPasLex.pas index 69ebf38..cb51df3 100644 --- a/CastaliaPasLex.pas +++ b/CastaliaPasLex.pas @@ -67,7 +67,7 @@ TDefineRec = record TmwBasePasLex = class(TObject) private fCommentState: TCommentState; - fOrigin: PChar; + fOrigin: PAnsiChar; fProcTable: array[#0..#255] of procedure of object; Run: Integer; RunAhead: Integer; @@ -92,7 +92,7 @@ TmwBasePasLex = class(TObject) fOnIfEndDirect: TDirectiveEvent; fOnElseIfDirect: TDirectiveEvent; fOnUnDefDirect: TDirectiveEvent; - FDirectiveParamOrigin: PChar; + FDirectiveParamOrigin: PAnsiChar; fAsmCode : Boolean; // DR 2002-01-14 @@ -268,12 +268,12 @@ TmwBasePasLex = class(TObject) procedure ExitDefineBlock; procedure CloneDefinesFrom(ALexer: TmwBasePasLex); - procedure DoProcTable(AChar: Char); - function IsIdentifiers(AChar: Char): Boolean; - function HashValue(AChar: Char): Integer; + procedure DoProcTable(AChar: AnsiChar); + function IsIdentifiers(AChar: AnsiChar): Boolean; + function HashValue(AChar: AnsiChar): Integer; protected procedure SetLine(const Value: string); virtual; - procedure SetOrigin(NewValue: PChar); virtual; + procedure SetOrigin(NewValue: PAnsiChar); virtual; procedure SetOnCompDirect(const Value: TDirectiveEvent); virtual; procedure SetOnDefineDirect(const Value: TDirectiveEvent); virtual; procedure SetOnElseDirect(const Value: TDirectiveEvent); virtual; @@ -290,7 +290,7 @@ TmwBasePasLex = class(TObject) public constructor Create; destructor Destroy; override; - function CharAhead: Char; + function CharAhead: AnsiChar; procedure Next; procedure NextID(ID: TptTokenKind); procedure NextNoJunk; @@ -313,7 +313,7 @@ TmwBasePasLex = class(TObject) //Note: setting the following two properties does not GO to that line, it just sets the internal counters property LineNumber: Integer read fLineNumber write fLineNumber; property LinePos: Integer read fLinePos write fLinePos; - property Origin: PChar read fOrigin write SetOrigin; + property Origin: PAnsiChar read fOrigin write SetOrigin; property PosXY: TTokenPoint read GetPosXY; // !! changed to TokenPoint //jdj 7/18/1999 property RunPos: Integer read Run write SetRunPos; property Token: string read GetToken; @@ -350,7 +350,7 @@ TmwBasePasLex = class(TObject) property OnUnDefDirect: TDirectiveEvent read fOnUnDefDirect write SetOnUnDefDirect; property AsmCode : Boolean read fAsmCode write fAsmCode; // DR 2002-01-14 - property DirectiveParamOrigin: pchar read FDirectiveParamOrigin; + property DirectiveParamOrigin: PAnsiChar read FDirectiveParamOrigin; property UseDefines: Boolean read FUseDefines write FUseDefines; @@ -367,7 +367,7 @@ TmwPasLex = class(TmwBasePasLex) procedure SetStatus(const Value: TmwPasLexStatus); protected procedure SetLine(const Value: string); override; - procedure SetOrigin(NewValue: PChar); override; + procedure SetOrigin(NewValue: PAnsiChar); override; procedure SetOnCompDirect(const Value: TDirectiveEvent); override; procedure SetOnDefineDirect(const Value: TDirectiveEvent); override; procedure SetOnElseDirect(const Value: TDirectiveEvent); override; @@ -393,11 +393,11 @@ TmwPasLex = class(TmwBasePasLex) implementation -uses Windows; +uses Windows, AnsiStrings; procedure MakeIdentTable; var - I, J: Char; + I, J: AnsiChar; begin for I := #0 to #255 do begin @@ -408,12 +408,12 @@ procedure MakeIdentTable; J := UpperCase(I)[1]; case I of 'a'..'z', 'A'..'Z', '_': mHashTable[I] := Ord(J) - 64; - else mHashTable[Char(I)] := 0; + else mHashTable[AnsiChar(I)] := 0; end; end; end; -function TmwBasePasLex.CharAhead: Char; +function TmwBasePasLex.CharAhead: AnsiChar; begin RunAhead := Run; // while fOrigin[RunAhead] in [#1..#32] do @@ -602,7 +602,7 @@ function TmwBasePasLex.KeyHash: Integer; function TmwBasePasLex.KeyComp(const aKey: string): Boolean; var I: Integer; - Temp: PChar; + Temp: PAnsiChar; begin if Length(aKey) = TokenLen then begin @@ -690,7 +690,7 @@ function TmwBasePasLex.Func29: TptTokenKind; function TmwBasePasLex.Func30: TptTokenKind; begin Result := ptIdentifier; - if KeyComp('Char') then fExID := ptChar; + if KeyComp('AnsiChar') then fExID := ptChar; end; function TmwBasePasLex.Func32: TptTokenKind; @@ -790,7 +790,7 @@ function TmwBasePasLex.Func45: TptTokenKind; function TmwBasePasLex.Func46: TptTokenKind; begin Result := ptIdentifier; - if KeyComp('PChar') then fExId := ptPChar + if KeyComp('PAnsiChar') then fExId := ptPChar {$IFDEF D8_NEWER} //JThurman 2004-03-19 else if KeyComp('Sealed') then Result := ptSealed; @@ -1276,7 +1276,7 @@ function TmwBasePasLex.IdentKind: TptTokenKind; procedure TmwBasePasLex.MakeMethodTables; var - I: Char; + I: AnsiChar; begin for I := #0 to #255 do case I of @@ -1346,7 +1346,7 @@ destructor TmwBasePasLex.Destroy; inherited Destroy; end; -procedure TmwBasePasLex.DoProcTable(AChar: Char); +procedure TmwBasePasLex.DoProcTable(AChar: AnsiChar); begin if AChar <= #255 then fProcTable[AChar] @@ -1358,7 +1358,7 @@ procedure TmwBasePasLex.DoProcTable(AChar: Char); { Destroy } -procedure TmwBasePasLex.SetOrigin(NewValue: PChar); +procedure TmwBasePasLex.SetOrigin(NewValue: PAnsiChar); begin fOrigin := NewValue; Init; @@ -1716,7 +1716,7 @@ procedure TmwBasePasLex.GreaterProc; end; end; -function TmwBasePasLex.HashValue(AChar: Char): Integer; +function TmwBasePasLex.HashValue(AChar: AnsiChar): Integer; begin if AChar <= #255 then Result := mHashTable[fOrigin[Run]] @@ -1742,7 +1742,7 @@ function TmwBasePasLex.IsDefined(const ADefine: string): Boolean; Result := FDefines.IndexOf(ADefine) > -1; end; -function TmwBasePasLex.IsIdentifiers(AChar: Char): Boolean; +function TmwBasePasLex.IsIdentifiers(AChar: AnsiChar): Boolean; begin if AChar <= #255 then Result := Identifiers[AChar] @@ -1822,7 +1822,7 @@ procedure TmwBasePasLex.PointerSymbolProc; fTokenID := ptPointerSymbol; //This is a wierd Pascal construct that rarely appears, but needs to be - //supported. ^M is a valid char reference (#13, in this case) + //supported. ^M is a valid AnsiChar reference (#13, in this case) if FOrigin[Run] in ['a'..'z','A'..'Z'] then begin inc(Run); @@ -2138,7 +2138,7 @@ procedure TmwBasePasLex.Next; (*{$IFDEF D10_NEWER} if fOrigin[Run] < #256 then fProcTable[fOrigin[Run]] - else //non-ASCII unicode char + else //non-ASCII unicode AnsiChar IdentProc; {$ELSE} fProcTable[fOrigin[Run]]; @@ -2440,7 +2440,7 @@ procedure TmwBasePasLex.SetCommentState(const Value: Pointer); procedure TmwBasePasLex.SetLine(const Value: string); begin - fOrigin := PChar(Value); + fOrigin := PAnsiChar(Value); InitLine; Next; end; @@ -2545,7 +2545,7 @@ destructor TmwPasLex.Destroy; inherited Destroy; end; -procedure TmwPasLex.SetOrigin(NewValue: PChar); +procedure TmwPasLex.SetOrigin(NewValue: PAnsiChar); begin inherited SetOrigin(NewValue); fAheadLex.SetOrigin(NewValue); diff --git a/CastaliaPasLexTypes.pas b/CastaliaPasLexTypes.pas index d7d8ec1..0387779 100644 --- a/CastaliaPasLexTypes.pas +++ b/CastaliaPasLexTypes.pas @@ -277,7 +277,7 @@ TmwPasLexStatus = record ExID: TptTokenKind; LineNumber: Integer; LinePos: Integer; - Origin: PChar; + Origin: PAnsiChar; RunPos: Integer; TokenPos: Integer; TokenID: TptTokenKind; diff --git a/__history/.gitignore b/__history/.gitignore new file mode 100644 index 0000000..14c0366 --- /dev/null +++ b/__history/.gitignore @@ -0,0 +1 @@ +*.~* From 7cb8aa08b32f7571d35303921143a1d55adcf93f Mon Sep 17 00:00:00 2001 From: Jose Sebastian Battig Date: Tue, 5 May 2015 23:25:08 -0500 Subject: [PATCH 2/3] B-0 removed hints and warnings --- CastaliaPasLex.pas | 8 ++++---- CastaliaSimplePasPar.pas | 24 +++++++++--------------- 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/CastaliaPasLex.pas b/CastaliaPasLex.pas index cb51df3..4b480f0 100644 --- a/CastaliaPasLex.pas +++ b/CastaliaPasLex.pas @@ -103,7 +103,7 @@ TmwBasePasLex = class(TObject) function KeyHash: Integer; function KeyComp(const aKey: string): Boolean; - function Func9: tptTokenKind; + //function Func9: tptTokenKind; function Func15: TptTokenKind; function Func19: TptTokenKind; function Func20: TptTokenKind; @@ -621,12 +621,12 @@ function TmwBasePasLex.KeyComp(const aKey: string): Boolean; else Result := False; end; { KeyComp } -function TmwBasePasLex.Func9: tptTokenKind; +{function TmwBasePasLex.Func9: tptTokenKind; begin Result := ptIdentifier; if KeyComp('Add') then FExID := ptAdd; -end; +end;} function TmwBasePasLex.Func15: TptTokenKind; begin @@ -2440,7 +2440,7 @@ procedure TmwBasePasLex.SetCommentState(const Value: Pointer); procedure TmwBasePasLex.SetLine(const Value: string); begin - fOrigin := PAnsiChar(Value); + fOrigin := PAnsiChar(AnsiString(Value)); InitLine; Next; end; diff --git a/CastaliaSimplePasPar.pas b/CastaliaSimplePasPar.pas index 385ef1d..b0e15c5 100644 --- a/CastaliaSimplePasPar.pas +++ b/CastaliaSimplePasPar.pas @@ -209,11 +209,11 @@ TmwSimplePasPar = class(TObject) FTopDefineRec: PDefineRec; - procedure EnterDefineBlock(ADefined: Boolean); - procedure ExitDefineBlock; + //procedure EnterDefineBlock(ADefined: Boolean); + //procedure ExitDefineBlock; procedure ClearDefines; - procedure InitAhead; + //procedure InitAhead; protected FDefineStack: Integer; @@ -801,9 +801,6 @@ procedure TmwSimplePasPar.HandlePtElseDirect(Sender: TmwBasePasLex); end; procedure TmwSimplePasPar.HandlePtElseIfDirect(Sender: TmwBasePasLex); -var - Param: string; - Def: string; begin // if FUseDefines then // begin @@ -869,9 +866,6 @@ procedure TmwSimplePasPar.HandlePtIfDefDirect(Sender: TmwBasePasLex); end; procedure TmwSimplePasPar.HandlePtIfDirect(Sender: TmwBasePasLex); -var - Def: string; - Param: string; begin // Param := Sender.DirectiveParam; // if FUseDefines then @@ -5930,12 +5924,12 @@ procedure TmwSimplePasPar.ClearDefines; end; end; -procedure TmwSimplePasPar.InitAhead; +{procedure TmwSimplePasPar.InitAhead; begin if AheadParse = nil then AheadParse := TmwSimplePasPar.Create; AheadParse.Lexer.InitFrom(Lexer); -end; +end;} procedure TmwSimplePasPar.InitDefines; begin @@ -5985,7 +5979,7 @@ procedure TmwSimplePasPar.InitDefines; // {$ENDIF} end; -procedure TmwSimplePasPar.EnterDefineBlock(ADefined: Boolean); +{procedure TmwSimplePasPar.EnterDefineBlock(ADefined: Boolean); var StackFrame: PDefineRec; begin @@ -6015,9 +6009,9 @@ procedure TmwSimplePasPar.EnterDefineBlock(ADefined: Boolean); // if TokenID = ptNull then // Break; // end; -end; +end;} -procedure TmwSimplePasPar.ExitDefineBlock; +{procedure TmwSimplePasPar.ExitDefineBlock; var StackFrame: PDefineRec; begin @@ -6029,7 +6023,7 @@ procedure TmwSimplePasPar.ExitDefineBlock; FTopDefineRec := StackFrame^.Next; Dispose(StackFrame); end; -end; +end;} {$IFDEF D8_NEWER} //JThurman 2004-03-03 From 04e1425c6cf36272e3759722920de2ee272f7ef5 Mon Sep 17 00:00:00 2001 From: Jose Sebastian Battig Date: Tue, 5 May 2015 23:59:44 -0500 Subject: [PATCH 3/3] B-0 fixed for DElphi 2007 --- CastaliaPasLex.pas | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CastaliaPasLex.pas b/CastaliaPasLex.pas index 4b480f0..77ed9c7 100644 --- a/CastaliaPasLex.pas +++ b/CastaliaPasLex.pas @@ -103,7 +103,7 @@ TmwBasePasLex = class(TObject) function KeyHash: Integer; function KeyComp(const aKey: string): Boolean; - //function Func9: tptTokenKind; + function Func9: tptTokenKind; function Func15: TptTokenKind; function Func19: TptTokenKind; function Func20: TptTokenKind; @@ -393,7 +393,7 @@ TmwPasLex = class(TmwBasePasLex) implementation -uses Windows, AnsiStrings; +uses Windows; procedure MakeIdentTable; var @@ -621,12 +621,12 @@ function TmwBasePasLex.KeyComp(const aKey: string): Boolean; else Result := False; end; { KeyComp } -{function TmwBasePasLex.Func9: tptTokenKind; +function TmwBasePasLex.Func9: tptTokenKind; begin Result := ptIdentifier; if KeyComp('Add') then FExID := ptAdd; -end;} +end; function TmwBasePasLex.Func15: TptTokenKind; begin