parsers/java/PJArrayTypeNode.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 21 Apr 2015 14:57:16 +0100
changeset 435 3bc08fb90133
child 436 e1c44b571db9
permissions -rw-r--r--
Initial commit of PetitJava Name: PetitJava-JanKurs.160 Author: JanKurs Time: 19-12-2014, 01:00:18.354 PM UUID: 1cb1b46d-8c68-4751-9720-f0dd742f3e16
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
435
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/petitparser/parsers/java' }"
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: Smalltalk }"
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
PJTypeNode subclass:#PJArrayTypeNode
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:'dimensions elementType'
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'PetitJava-AST'
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
PJArrayTypeNode comment:''
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
!
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
!PJArrayTypeNode class methodsFor:'instance creation'!
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
elementType: aTypeNode dimensions: aNumber
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
	^(self new) elementType: aTypeNode; dimensions: aNumber; yourself
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
! !
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
!PJArrayTypeNode methodsFor:'accessing'!
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
dimensions
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
	^ dimensions
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
!
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
dimensions: anObject
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
	dimensions := anObject
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
!
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
elementType
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
	^ elementType
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
!
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
elementType: anObject
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
	elementType := anObject
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
!
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
type 
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
	^type ifNil: [type := 
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
			((1 to: dimensions) 
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
				inject: elementType type 
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
				into: [:current :parenthesis |
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
					(current , '[]')]) ]
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
! !
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48