From 0a2868b45062f0a9382d77ddf403618f8f90f9cd Mon Sep 17 00:00:00 2001 From: michael Date: Tue, 14 Mar 2017 10:52:12 +0000 Subject: [PATCH] * Fix from Mattias Gaertner to catch EScannerError and setting FLast* fields git-svn-id: trunk@35580 - --- packages/fcl-passrc/src/pparser.pp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/packages/fcl-passrc/src/pparser.pp b/packages/fcl-passrc/src/pparser.pp index 83984d6fed..841c2f4fe3 100644 --- a/packages/fcl-passrc/src/pparser.pp +++ b/packages/fcl-passrc/src/pparser.pp @@ -832,8 +832,20 @@ begin until not (FCurToken in WhitespaceTokensToIgnore); except on e: EScannerError do - raise EParserError.Create(e.Message, - Scanner.CurFilename, Scanner.CurRow, Scanner.CurColumn); + begin + if po_KeepScannerError in Options then + raise e + else + begin + FLastMsgType := mtError; + FLastMsgNumber := Scanner.LastMsgNumber; + FLastMsgPattern := Scanner.LastMsgPattern; + FLastMsg := Scanner.LastMsg; + FLastMsgArgs := Scanner.LastMsgArgs; + raise EParserError.Create(e.Message, + Scanner.CurFilename, Scanner.CurRow, Scanner.CurColumn); + end; + end; end; FCurTokenString := Scanner.CurTokenString; FTokenBuffer[FTokenBufferSize] := FCurToken; @@ -3562,7 +3574,6 @@ Var PM : TProcedureModifier; Done: Boolean; ResultEl: TPasResultElement; - I : Integer; OK : Boolean; begin