parsers/java/PJArrayTypeNode.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 23 Nov 2015 11:14:30 +0100
changeset 551 00ebb1b85f53
parent 436 e1c44b571db9
permissions -rw-r--r--
Fixed CI scripts on Windows For an unknown reason, unzip on Windows reports status code 50 (presumably "the disk is (or was) full during extraction.") even if there's plenty of space. To workaround this, simply ignore status code 50 on Windows. Sigh.
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 class methodsFor:'instance creation'!
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
elementType: aTypeNode dimensions: aNumber
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
	^(self new) elementType: aTypeNode; dimensions: aNumber; yourself
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
! !
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
!PJArrayTypeNode methodsFor:'accessing'!
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
dimensions
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
	^ dimensions
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
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
dimensions: anObject
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
	dimensions := anObject
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
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
elementType
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
	^ elementType
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
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
elementType: anObject
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
	elementType := anObject
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
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
type 
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
	^type ifNil: [type := 
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
			((1 to: dimensions) 
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
				inject: elementType type 
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
				into: [:current :parenthesis |
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
					(current , '[]')]) ]
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
! !
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45