+messagesDo: enumerator
authorClaus Gittinger <cg@exept.de>
Mon, 29 Mar 2004 15:43:51 +0200
changeset 1504 eb26e6d08d71
parent 1503 5feba91aa28a
child 1505 e9b4b835bc21
+messagesDo: enumerator
StatementNode.st
--- a/StatementNode.st	Mon Mar 29 15:41:03 2004 +0200
+++ b/StatementNode.st	Mon Mar 29 15:43:51 2004 +0200
@@ -79,7 +79,10 @@
 lineNumber
     "return lineNr"
 
-    ^ lineNr
+    lineNr notNil ifTrue:[^ lineNr].
+    expression notNil ifTrue:[ ^ expression lineNumber ].
+    nextStatement notNil ifTrue:[^ nextStatement lineNumber].
+    ^ nil
 
     "Created: / 14.5.1998 / 19:31:06 / cg"
 !
@@ -92,6 +95,14 @@
     "Created: / 14.5.1998 / 19:31:11 / cg"
 !
 
+lineNumberOfFirstMessage
+    |lno|
+
+    lno := self lineNumber.
+    self messagesDo:[:m | lno := lno min:(m lineNumber)].
+    ^ lno
+!
+
 nextStatement
     ^ nextStatement
 !
@@ -147,6 +158,17 @@
 
 !StatementNode methodsFor:'enumerating'!
 
+messagesDo:aBlock
+    |s e|
+
+    s := self.
+    [s notNil] whileTrue:[
+        e := s expression.
+        e notNil ifTrue:[e messagesDo:aBlock].
+        s := s nextStatement
+    ].
+!
+
 nodeDo:anEnumerator
     "helper for parse tree walking"
 
@@ -252,5 +274,5 @@
 !StatementNode class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libcomp/StatementNode.st,v 1.28 2003-03-28 14:41:25 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libcomp/StatementNode.st,v 1.29 2004-03-29 13:43:51 cg Exp $'
 ! !