From 58f6f93cfeac4f656d0f15b1c4293a8defa70581 Mon Sep 17 00:00:00 2001 From: florian Date: Sat, 30 Jul 2005 19:34:57 +0000 Subject: [PATCH] * packed can be used in variable declarations git-svn-id: trunk@768 - --- fcl/passrc/pparser.pp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/fcl/passrc/pparser.pp b/fcl/passrc/pparser.pp index 53504f8f83..92d58f3415 100644 --- a/fcl/passrc/pparser.pp +++ b/fcl/passrc/pparser.pp @@ -314,9 +314,19 @@ var Name, s: String; EnumValue: TPasEnumValue; Ref: TPasElement; + HadPackedModifier : Boolean; // 12/04/04 - Dave - Added begin Result := nil; // !!!: Remove in the future + HadPackedModifier := False; { Assume not present } NextToken; + if CurToken = tkPacked then { If PACKED modifier } + begin { Handle PACKED modifier for all situations } + NextToken; { Move to next token for rest of parse } + if CurToken in [tkArray, tkRecord, tkObject, tkClass] then { If allowed } + HadPackedModifier := True { rememeber for later } + else { otherwise, syntax error } + ParseExc(Format(SParserExpectTokenError,['ARRAY, RECORD, OBJECT or CLASS'])) + end; case CurToken of tkIdentifier: begin @@ -376,6 +386,7 @@ begin tkArray: begin Result := TPasArrayType(CreateElement(TPasArrayType, '', Parent)); + TPasArrayType(Result).IsPacked := HadPackedModifier; ParseArrayType(TPasArrayType(Result)); end; tkBraceOpen: @@ -417,6 +428,7 @@ begin tkRecord: begin Result := TPasRecordType(CreateElement(TPasRecordType, '', Parent)); + TPasArrayType(Result).IsPacked := HadPackedModifier; try ParseRecordDecl(TPasRecordType(Result), False); except