tools/JavaParseNode.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 06 Sep 2013 00:16:38 +0100
branchdevelopment
changeset 2711 a00302fe5083
parent 2697 d5110c6822c6
child 2731 13f5be2bf83b
permissions -rw-r--r--
Added version_CVS to all classes and build files regenerated & cleaned. This is necessary step before updating CVS.

"
 COPYRIGHT (c) 1996-2011 by Claus Gittinger

 New code and modifications done at SWING Research Group [1]:

 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
                            SWING Research Group, Czech Technical University in Prague

 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.

 [1] Code written at SWING Research Group contains a signature
     of one of the above copright owners. For exact set of such code,
     see the differences between this version and version stx:libjava
     as of 1.9.2010
"
"{ Package: 'stx:libjava/tools' }"

ParseNode subclass:#JavaParseNode
	instanceVariableNames:'line'
	classVariableNames:''
	poolDictionaries:''
	category:'Languages-Java-Parser-AST'
!

!JavaParseNode class methodsFor:'documentation'!

copyright
"
 COPYRIGHT (c) 1996-2011 by Claus Gittinger

 New code and modifications done at SWING Research Group [1]:

 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
                            SWING Research Group, Czech Technical University in Prague

 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.

 [1] Code written at SWING Research Group contains a signature
     of one of the above copright owners. For exact set of such code,
     see the differences between this version and version stx:libjava
     as of 1.9.2010

"
! !

!JavaParseNode class methodsFor:'instance creation'!

from: start to: end

    ^self new startPosition: start endPosition: end.

    "Created: / 08-03-2012 / 21:44:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!JavaParseNode methodsFor:'accessing'!

line
    ^ line
!

line:something
    line := something.
!

stopPosition
    ^self endPosition

    "Created: / 22-04-2013 / 18:20:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

stopPosition: anInteger
    ^self endPosition: anInteger

    "Created: / 22-04-2013 / 18:20:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!JavaParseNode methodsFor:'code generation'!

codeOn:aStream inBlock:codeBlock for:aCompiler
    "superclass ParseNode says that I am responsible to implement this method"

    ^ self shouldNotImplement

    "Modified: / 25-08-2013 / 10:30:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!JavaParseNode methodsFor:'enumeration'!

childNamesAndValuesDo:aBlock
    "Enumerates all direct children and evaluates a block
     with its name (usually instVar name) and the node itself"

    self class allInstVarNames withIndexDo:[:n :i|
        | v |

        v := self instVarAt: i.
        (v isKindOf: JavaParseNode) ifTrue:[
            aBlock value: n value: v
        ] ifFalse:[
            (v isSequenceable) ifTrue:[
                v withIndexDo:[ :v2 :i2|
                    (v2 isKindOf: JavaParseNode) ifTrue:[
                        aBlock value: (n, '[' , i2 printString , ']') value: v2.
                    ]
                ]
            ]
        ]
    ]

    "Modified: / 25-08-2013 / 10:50:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!JavaParseNode methodsFor:'evaluation'!

evaluateIn:anEnvironment
    "superclass ParseNode says that I am responsible to implement this method"

    ^ self shouldNotImplement

    "Modified: / 25-08-2013 / 10:30:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!JavaParseNode methodsFor:'printing & storing'!

printOn:aStream indent:indent
    "append a user printed representation of the receiver to aStream.
     The format is suitable for a human - not meant to be read back."

    ^ self subclassResponsibility

    "Modified: / 25-08-2013 / 10:48:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!JavaParseNode methodsFor:'queries'!

isMethodDeclaration
    ^ false.

    "Created: / 13-12-2010 / 14:34:14 / Jan Kurs <kurs.jan@post.cz>"
! !

!JavaParseNode methodsFor:'testing'!

isJavaDeclarationNode
    ^ false
! !

!JavaParseNode class methodsFor:'documentation'!

version_CVS
    ^ '$Header$'
!

version_HG

    ^ '$Changeset: <not expanded> $'
!

version_SVN
    ^ '§Id§'
! !