parsers/java/PJIntegerLiteralNode.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 17 Jun 2015 16:49:28 +0100
changeset 492 fc3dbe5654c5
parent 435 3bc08fb90133
permissions -rw-r--r--
Use #deepCopy instead of #copy when copying RB parse tree ...because #copy make a copy if child nodes but does not set their parents properly. Therefore node replacing does not work because it replaces it in wrong tree (original, not the copy).

"{ Package: 'stx:goodies/petitparser/parsers/java' }"

"{ NameSpace: Smalltalk }"

PJExpressionNode subclass:#PJIntegerLiteralNode
	instanceVariableNames:'literalValue isLong'
	classVariableNames:''
	poolDictionaries:''
	category:'PetitJava-AST'
!

PJIntegerLiteralNode comment:'A literal node of an integer valuse'
!

!PJIntegerLiteralNode class methodsFor:'as yet unclassified'!

newFrom: literalString
	| instanse |
	instanse := super new.
	instanse isLong: literalString last asUppercase = $L.
	instanse literalValue: (
		Integer readFromJavaString: (
			instanse isLong ifTrue: [ literalString allButLast ] ifFalse: [ literalString ])).
	^ instanse
! !

!PJIntegerLiteralNode methodsFor:'accessing'!

isLong
	^ isLong
!

isLong: anObject
	isLong := anObject
!

literalValue
	^ literalValue
!

literalValue: aBoolean
	literalValue := aBoolean
! !

!PJIntegerLiteralNode methodsFor:'visiting'!

acceptVisitor: aVisitor

	^ aVisitor visitIntegerLiteralNode: self
! !