added:9 methods
authorClaus Gittinger <cg@exept.de>
Sun, 21 Aug 2011 12:25:36 +0200
changeset 10632 9e4b40a83d6a
parent 10631 7639ba8f13da
child 10633 48c904090606
added:9 methods changed: #printOn:
SyntaxElement.st
--- a/SyntaxElement.st	Sun Aug 21 12:23:54 2011 +0200
+++ b/SyntaxElement.st	Sun Aug 21 12:25:36 2011 +0200
@@ -96,6 +96,18 @@
 
 !SyntaxElement methodsFor:'accessing'!
 
+firstElementInChain
+    |first prev|
+
+    first := self.
+    [ (prev := first previousElement) notNil ] whileTrue:[
+        first := prev.
+    ].
+    ^ first
+
+    "Created: / 21-08-2011 / 09:51:35 / cg"
+!
+
 next
     ^ next
 !
@@ -107,6 +119,20 @@
     "Modified: / 14-02-2010 / 17:44:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+nextElement
+    ^ next
+
+    "Created: / 21-08-2011 / 09:47:11 / cg"
+!
+
+nextElement:aSyntaxElement
+    next := aSyntaxElement.
+    next prev: self.
+
+    "Modified: / 14-02-2010 / 17:44:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Created: / 21-08-2011 / 09:47:15 / cg"
+!
+
 prev
     ^ prev
 !
@@ -115,6 +141,18 @@
     prev := aSyntaxElement.
 !
 
+previousElement
+    ^ prev
+
+    "Created: / 21-08-2011 / 09:47:23 / cg"
+!
+
+previousElement:aSyntaxElement
+    prev := aSyntaxElement.
+
+    "Created: / 21-08-2011 / 09:47:28 / cg"
+!
+
 start
     ^ start
 !
@@ -192,19 +230,46 @@
     "append a printed representation if the receiver to the argument, aStream"
 
     super printOn:aStream.
-    aStream nextPut:$(.
+    aStream nextPutAll:'('.
     type printOn: aStream.
-    aStream nextPut:$:.    
+    aStream nextPutAll:' -> '.    
     value printOn:aStream.
     aStream nextPut:$).
 
     "Modified: / 25-06-2010 / 13:20:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 21-08-2011 / 09:33:51 / cg"
+! !
+
+!SyntaxElement methodsFor:'queries'!
+
+isSelector
+    ^ type == #selector
+
+    "Created: / 21-08-2011 / 09:09:19 / cg"
+!
+
+isSelf
+    ^ type == #self
+
+    "Created: / 21-08-2011 / 09:31:20 / cg"
+!
+
+isVariable
+    ^ type == #variable
+
+    "Created: / 21-08-2011 / 09:09:00 / cg"
+!
+
+isVariableOrSelf
+    ^ self isVariable or:[self isSelf]
+
+    "Created: / 21-08-2011 / 09:31:33 / cg"
 ! !
 
 !SyntaxElement class methodsFor:'documentation'!
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/SyntaxElement.st,v 1.2 2011-07-03 17:48:11 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/SyntaxElement.st,v 1.3 2011-08-21 10:25:36 cg Exp $'
 !
 
 version_SVN