--- 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 $'
! !