Browse Source

* Fixed bug #8303

git-svn-id: trunk@6985 -
michael 18 years ago
parent
commit
dc4cb7170c
1 changed files with 18 additions and 12 deletions
  1. 18 12
      packages/fcl-passrc/src/pparser.pp

+ 18 - 12
packages/fcl-passrc/src/pparser.pp

@@ -1552,20 +1552,27 @@ end;
 
 procedure TPasParser.ParseProperty(Element:TPasElement);
 
-  function GetAccessorName: String;
+  procedure MaybeReadFullyQualifiedIdentifier(Var r : String);
+  
   begin
-    ExpectIdentifier;
-    Result := CurTokenString;
-
-    while True do begin
+    while True do 
+      begin
       NextToken;
-      if CurToken = tkDot then begin
+      if CurToken = tkDot then 
+        begin
         ExpectIdentifier;
-        Result := Result + '.' + CurTokenString;
-      end else
+        R:=R + '.' + CurTokenString;
+        end 
+      else
         break;
-    end;
-	
+      end;
+  end;
+
+  function GetAccessorName: String;
+  begin
+    ExpectIdentifier;
+    Result := CurTokenString;
+    MaybeReadFullyQualifiedIdentifier(Result);
     if CurToken = tkSquaredBraceOpen then begin
       Result := Result + '[';
       NextToken;
@@ -1576,9 +1583,8 @@ procedure TPasParser.ParseProperty(Element:TPasElement);
       Result := Result + ']';
     end else 
       UngetToken;
-  
+    MaybeReadFullyQualifiedIdentifier(Result);  
 //    writeln(Result);
-
   end;
 
 begin