From 0e3c9b9531d10efe478aa5d71847c7e49d9d9ecc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Van=20Canneyt?= Date: Wed, 29 Jan 2025 20:52:09 +0100 Subject: [PATCH] * Fix parsing of system unit --- packages/fcl-passrc/src/pparser.pp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/fcl-passrc/src/pparser.pp b/packages/fcl-passrc/src/pparser.pp index 4981b6486f..f0d0fadf6d 100644 --- a/packages/fcl-passrc/src/pparser.pp +++ b/packages/fcl-passrc/src/pparser.pp @@ -1837,7 +1837,7 @@ Type Var Ref: TPasType; K : TSimpleTypeKind; - Name : String; + lName,Name : String; Expr: TPasExpr; MustBeSpecialize: Boolean; @@ -1865,6 +1865,7 @@ begin NextToken; end; end; + lName:=LowerCase(Name); if MustBeSpecialize and (CurToken<>tkLessThan) then ParseExcTokenError('<'); @@ -1877,7 +1878,7 @@ begin end else if IsFull and (CurToken=tkSquaredBraceOpen) then begin - if LowerCase(Name)='string' then // Type A = String[12]; shortstring + if lName='string' then // Type A = String[12]; shortstring K:=stkString else ParseExcSyntaxError; @@ -1891,10 +1892,10 @@ begin end else if (CurToken in [tkBraceOpen,tkDotDot]) then // A: B..C or A: string(CP); begin - if not (LowerCase(Name)='string') then - K:=stkRange + if (lName='string') or (lName='ansistring') then + K:=stkString else - K:=stkString; + K:=stkRange; UnGetToken; end else