remember global accesses
authorClaus Gittinger <cg@exept.de>
Mon, 07 Jan 2008 14:50:13 +0100
changeset 2053 5bf23d84c6ac
parent 2052 8460eb468d03
child 2054 cee21c519bd0
remember global accesses
Parser.st
--- a/Parser.st	Wed Dec 19 16:36:13 2007 +0100
+++ b/Parser.st	Mon Jan 07 14:50:13 2008 +0100
@@ -6402,19 +6402,13 @@
             ].
 
             parseForCode ifFalse:[
-                modifiedInstVars isNil ifTrue:[
-                    modifiedInstVars := Set new
-                ].
-                modifiedInstVars add:varName
+                self rememberInstVarModified:varName
             ]
         ] ifFalse:[ (t == #ClassVariable) ifTrue:[
             varName := var name.
             varName := varName copyFrom:((varName indexOf:$:) + 1).
             parseForCode ifFalse:[
-                modifiedClassVars isNil ifTrue:[
-                    modifiedClassVars := Set new
-                ].
-                modifiedClassVars add:varName
+                self rememberClassVarModified:varName
             ]
         ] ifFalse:[ (t == #GlobalVariable) ifTrue:[
             (cls := Smalltalk classNamed:var name) notNil ifTrue:[
@@ -6423,10 +6417,7 @@
                 ]
             ].
             parseForCode ifFalse:[
-                modifiedGlobals isNil ifTrue:[
-                    modifiedGlobals := Set new
-                ].
-                modifiedGlobals add:var name
+                self rememberGlobalModified:var name
             ]
         ] ifFalse:[ 
             (t == #PrivateClass) ifTrue:[
@@ -8254,6 +8245,14 @@
     "Modified: 19.6.1997 / 17:54:38 / cg"
 !
 
+readGlobals
+    "return a collection with global varNames read by method (valid after parsing)"
+
+    ^ readGlobals ? #()
+
+    "Modified: 19.6.1997 / 17:54:38 / cg"
+!
+
 readInstVars
     "return a collection with instvariablenames read by method (valid after parsing)"
 
@@ -8420,6 +8419,14 @@
 
 !Parser methodsFor:'statistic'!
 
+rememberClassVarModified:name 
+    modifiedClassVars isNil ifTrue:[
+        modifiedClassVars := Set new
+    ].
+    modifiedClassVars add:name.
+    self rememberClassVarUsed:name
+!
+
 rememberClassVarRead:name 
     readClassVars isNil ifTrue:[
         readClassVars := Set new
@@ -8436,6 +8443,22 @@
     self rememberVariableUsed:name
 !
 
+rememberGlobalModified:name 
+    modifiedGlobals isNil ifTrue:[
+        modifiedGlobals := Set new
+    ].
+    modifiedGlobals add:name.
+    self rememberGlobalUsed:name.
+!
+
+rememberGlobalRead:name 
+    readGlobals isNil ifTrue:[
+        readGlobals := Set new
+    ].
+    readGlobals add:name.
+    self rememberGlobalUsed:name
+!
+
 rememberGlobalUsed:name 
     usedGlobals isNil ifTrue:[
         usedGlobals := Set new
@@ -8444,6 +8467,14 @@
     self rememberVariableUsed:name
 !
 
+rememberInstVarModified:name 
+    modifiedInstVars isNil ifTrue:[
+        modifiedInstVars := Set new
+    ].
+    modifiedInstVars add:name.
+    self rememberInstVarUsed:name.
+!
+
 rememberInstVarRead:name 
     readInstVars isNil ifTrue:[
         readInstVars := Set new
@@ -9082,7 +9113,7 @@
 !Parser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libcomp/Parser.st,v 1.556 2007-12-19 15:36:13 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libcomp/Parser.st,v 1.557 2008-01-07 13:50:13 cg Exp $'
 ! !
 
 Parser initialize!