--- 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