"
COPYRIGHT (c) 2006 by eXept Software AG
All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
inclusion of the above copyright notice. This software may not
be provided or otherwise made available to, or used by, any
other person. No title to or ownership of the software is
hereby transferred.
"
"{ Package: 'stx:libtool' }"
Magnitude subclass:#SyntaxElement
instanceVariableNames:'start stop type value next prev'
classVariableNames:''
poolDictionaries:''
category:'Interface-CodeView-Syntax'
!
!SyntaxElement class methodsFor:'documentation'!
copyright
"
COPYRIGHT (c) 2006 by eXept Software AG
All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
inclusion of the above copyright notice. This software may not
be provided or otherwise made available to, or used by, any
other person. No title to or ownership of the software is
hereby transferred.
"
! !
!SyntaxElement class methodsFor:'instance creation'!
from: start to: stop
^self new
start: start;
stop: stop.
"Created: / 14-02-2010 / 13:13:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
from: start to: stop type: type
^self new
start: start;
stop: stop;
type: type
"Created: / 14-02-2010 / 14:09:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
from: start to: stop type: type value: value
^self new
start: start;
stop: stop;
type: type;
value: value
"Created: / 14-02-2010 / 17:41:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!SyntaxElement methodsFor:'accessing'!
next
^ next
!
next:aSyntaxElement
next := aSyntaxElement.
next prev: self.
"Modified: / 14-02-2010 / 17:44:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
prev
^ prev
!
prev:aSyntaxElement
prev := aSyntaxElement.
!
start
^ start
!
start:anInteger
start := anInteger.
!
stop
^ stop
!
stop:anInteger
stop := anInteger.
!
type
^ type
!
type:aSymbol
type := aSymbol.
!
value
^ value
!
value:anObject
value := anObject.
! !
!SyntaxElement methodsFor:'comparing'!
< anObject
anObject isNumber ifTrue:[^stop < anObject].
anObject class == self class ifFalse:[^false].
^stop < anObject start
"Created: / 14-02-2010 / 13:39:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
= anObject
anObject class == self class ifFalse:[^false].
^start == (anObject start) and:
[stop == (anObject stop) and:
[type == (anObject type)]].
"Created: / 14-02-2010 / 13:33:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
hash
^start hash bitXor:[stop hash bitXor:[type hash]].
"Created: / 14-02-2010 / 13:30:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!SyntaxElement methodsFor:'double dispatching'!
lessFromInteger:anInteger
^stop < anInteger
"Created: / 14-02-2010 / 13:49:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!SyntaxElement methodsFor:'printing & storing'!
printOn:aStream
"append a printed representation if the receiver to the argument, aStream"
super printOn:aStream.
aStream nextPut:$(.
type printOn: aStream.
aStream nextPut:$:.
value printOn:aStream.
aStream nextPut:$).
"Modified: / 25-06-2010 / 13:20:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!SyntaxElement class methodsFor:'documentation'!
version_CVS
^ '$Header: /cvs/stx/stx/libtool/SyntaxElement.st,v 1.1 2011-07-01 14:19:26 cg Exp $'
!
version_SVN
^ '§Id: SyntaxElement.st 7582 2010-06-25 13:26:33Z vranyj1 §'
! !