SyntaxElement.st
branchjv
changeset 12123 4bde08cebd48
parent 10632 9e4b40a83d6a
child 12125 0c49a3b13e43
equal deleted inserted replaced
11227:3d57003855a7 12123:4bde08cebd48
    94     "Created: / 14-02-2010 / 17:41:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    94     "Created: / 14-02-2010 / 17:41:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    95 ! !
    95 ! !
    96 
    96 
    97 !SyntaxElement methodsFor:'accessing'!
    97 !SyntaxElement methodsFor:'accessing'!
    98 
    98 
    99 firstElementInChain
       
   100     |first prev|
       
   101 
       
   102     first := self.
       
   103     [ (prev := first previousElement) notNil ] whileTrue:[
       
   104         first := prev.
       
   105     ].
       
   106     ^ first
       
   107 
       
   108     "Created: / 21-08-2011 / 09:51:35 / cg"
       
   109 !
       
   110 
       
   111 next
    99 next
   112     ^ next
   100     ^ next
   113 !
   101 !
   114 
   102 
   115 next:aSyntaxElement
   103 next:aSyntaxElement
   117     next prev: self.
   105     next prev: self.
   118 
   106 
   119     "Modified: / 14-02-2010 / 17:44:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   107     "Modified: / 14-02-2010 / 17:44:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   120 !
   108 !
   121 
   109 
   122 nextElement
       
   123     ^ next
       
   124 
       
   125     "Created: / 21-08-2011 / 09:47:11 / cg"
       
   126 !
       
   127 
       
   128 nextElement:aSyntaxElement
       
   129     next := aSyntaxElement.
       
   130     next prev: self.
       
   131 
       
   132     "Modified: / 14-02-2010 / 17:44:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
   133     "Created: / 21-08-2011 / 09:47:15 / cg"
       
   134 !
       
   135 
       
   136 prev
   110 prev
   137     ^ prev
   111     ^ prev
   138 !
   112 !
   139 
   113 
   140 prev:aSyntaxElement
   114 prev:aSyntaxElement
   141     prev := aSyntaxElement.
   115     prev := aSyntaxElement.
   142 !
       
   143 
       
   144 previousElement
       
   145     ^ prev
       
   146 
       
   147     "Created: / 21-08-2011 / 09:47:23 / cg"
       
   148 !
       
   149 
       
   150 previousElement:aSyntaxElement
       
   151     prev := aSyntaxElement.
       
   152 
       
   153     "Created: / 21-08-2011 / 09:47:28 / cg"
       
   154 !
   116 !
   155 
   117 
   156 start
   118 start
   157     ^ start
   119     ^ start
   158 !
   120 !
   228 
   190 
   229 printOn:aStream
   191 printOn:aStream
   230     "append a printed representation if the receiver to the argument, aStream"
   192     "append a printed representation if the receiver to the argument, aStream"
   231 
   193 
   232     super printOn:aStream.
   194     super printOn:aStream.
   233     aStream nextPutAll:'('.
   195     aStream nextPut:$(.
   234     type printOn: aStream.
   196     type printOn: aStream.
   235     aStream nextPutAll:' -> '.    
   197     aStream nextPut:$:.    
   236     value printOn:aStream.
   198     value printOn:aStream.
   237     aStream nextPut:$).
   199     aStream nextPut:$).
   238 
   200 
   239     "Modified: / 25-06-2010 / 13:20:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   201     "Modified: / 25-06-2010 / 13:20:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   240     "Modified: / 21-08-2011 / 09:33:51 / cg"
       
   241 ! !
       
   242 
       
   243 !SyntaxElement methodsFor:'queries'!
       
   244 
       
   245 isSelector
       
   246     ^ type == #selector
       
   247 
       
   248     "Created: / 21-08-2011 / 09:09:19 / cg"
       
   249 !
       
   250 
       
   251 isSelf
       
   252     ^ type == #self
       
   253 
       
   254     "Created: / 21-08-2011 / 09:31:20 / cg"
       
   255 !
       
   256 
       
   257 isVariable
       
   258     ^ type == #variable
       
   259 
       
   260     "Created: / 21-08-2011 / 09:09:00 / cg"
       
   261 !
       
   262 
       
   263 isVariableOrSelf
       
   264     ^ self isVariable or:[self isSelf]
       
   265 
       
   266     "Created: / 21-08-2011 / 09:31:33 / cg"
       
   267 ! !
   202 ! !
   268 
   203 
   269 !SyntaxElement class methodsFor:'documentation'!
   204 !SyntaxElement class methodsFor:'documentation'!
   270 
   205 
   271 version_CVS
   206 version_CVS
   272     ^ '$Header: /cvs/stx/stx/libtool/SyntaxElement.st,v 1.3 2011-08-21 10:25:36 cg Exp $'
   207     ^ '§Header: /cvs/stx/stx/libtool/SyntaxElement.st,v 1.2 2011/07/03 17:48:11 cg Exp §'
   273 !
   208 !
   274 
   209 
   275 version_SVN
   210 version_SVN
   276     ^ '§Id: SyntaxElement.st 7582 2010-06-25 13:26:33Z vranyj1 §'
   211     ^ '$Id: SyntaxElement.st 7582 2010-06-25 13:26:33Z vranyj1 $'
   277 ! !
   212 ! !